Sistemas Gestores de Bases de Datos
PostgreSQL
Instalación
Los siguientes pasos son ejecutados como usuario root.
Instala el servidor y las utilidades (clientes) de PostgreSQL:
root@servidor:~ $ zypper install postgresql96-server postgresql96
Para determinar la versión de PostgreSQL que será (o ya está) instalada ejecuta el comando
zypper info postgresql96-server
.openSUSE ofrece varios paquetes relacionados a PostgreSQL, ejecuta el comando
zypper search postgresql
para obtener una lista de dichos paquetes.
Instancia
Es posible crear una instancia personal o instancia local de PostgreSQL al usuario alumno en su directorio personal.
Los siguientes pasos son ejecutados como usuario alumno.
Crea un directorio donde mantendrás los archivos propios de la instancia de PostgreSQL, por ejemplo
$HOME/.local/var/pgsql/instancia01/data
:alumno@servidor:~ $ mkdir -p $HOME/.local/var/pgsql/instancia01/data alumno@servidor:~ $ initdb --locale=es_MX.UTF-8 --auth=md5 -U alumno -W -D $HOME/.local/var/pgsql/instancia01/data The files belonging to this database system will be owned by user "antonio". This user must also own the server process. The database cluster will be initialized with locale "es_MX.UTF-8". The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "spanish". Data page checksums are disabled. Enter new superuser password: Enter it again:
En este punto se te solicitará una contraseña para asignarla a la cuenta de usuario que será el administrador de esta instancia.
creating directory data ... ok creating subdirectories ... ok selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting dynamic shared memory implementation ... posix creating configuration files ... ok running bootstrap script ... ok performing post-bootstrap initialization ... ok syncing data to disk ... ok Success. You can now start the database server using: pg_ctl -D /home/alumno/.local/var/pgsql/instancia01/data -l logfile start
NOTAS:
- La instancia (o proceso) de PostgreSQL le pertenecerá al usuario alumno (sistema operativo) por lo tanto es el único quien puede iniciarla.
- Las opciones --auth=md5 -U alumno -W dadas a initdb le indican que el modo de autenticación es mediante una contraseña (en MD5), que el administrador de esta instancia de PostgreSQL será alumno y que solicite una nueva contraseña para dicha cuenta de usuario.
Inicia la instancia recien creada de PostgreSQL:
alumno@servidor:~ $ cd $HOME/.local/var/pgsql/instancia01 alumno@servidor:~/.local/var/pgsql/instancia01 $ pg_ctl -D data --log postgresql.log start
Verifica la ejecución de PostgreSQL:
alumno@servidor:~/.local/var/pgsql/instancia01 $ ss -plutn | grep postgres tcp LISTEN 0 128 127.0.0.1:5432 *:* users:(("postgres",pid=2493,fd=4)) tcp LISTEN 0 128 ::1:5432 :::* users:(("postgres",pid=2493,fd=3))
Cambio de puerto TCP
Para cambiar el puerto TCP de PostgreSQL se edita el archivo de configuración de la instancia, en este
caso $HOME/.local/var/pgsql/instancia01/data/postgresql.conf
.
Suponiendo que se desea usar el puerto TCP 9696, la línea a editar es #port = 5432
(línea 63 aprox.), se
descomenta (se borra el #
al inicio) y se indica el puerto: port = 9696
.
Al hacer esta modificación en el archivo de configuración de la instancia es necesario reiniciarla.
alumno@servidor:~/.local/var/pgsql/instancia01 $ pg_ctl -D data stop
alumno@servidor:~/.local/var/pgsql/instancia01 $ pg_ctl -D data --log postgresql.log start
Verifica la ejecución de PostgreSQL:
Con el comando ss:
alumno@servidor:~/.local/var/pgsql/instancia01 $ ss -plutn | grep postgres tcp LISTEN 0 128 127.0.0.1:9696 *:* users:(("postgres",pid=2493,fd=4)) tcp LISTEN 0 128 ::1:9696 :::* users:(("postgres",pid=2493,fd=3))
Con el comando ps:
alumno@servidor:~/.local/var/pgsql/instancia01 $ ps aux | grep -i postgres alumno 2347 0.0 0.5 213396 19348 ? S 22:00 0:00 /usr/lib/postgresql96/bin/postgres -D data alumno 2351 0.0 0.0 68540 3104 ? Ss 22:00 0:00 postgres: logger process alumno 2353 0.0 0.0 213396 3084 ? Ss 22:00 0:00 postgres: checkpointer process alumno 2354 0.0 0.1 213396 5580 ? Ss 22:00 0:00 postgres: writer process alumno 2355 0.0 0.0 213396 3084 ? Ss 22:00 0:00 postgres: wal writer process alumno 2356 0.0 0.1 213804 6464 ? Ss 22:00 0:00 postgres: autovacuum launcher process alumno 2357 0.0 0.1 68676 4316 ? Ss 22:00 0:00 postgres: stats collector process
Inicio de la instancia
Los siguientes pasos son para crear un script de shell que mediante el parámetro start o stop inicie
la instancia personal de PostgreSQL: postgresql-instancia01
.
Crea el script de shell (archivo)
$HOME/.local/bin/postgresql-instancia01
con el siguiente contenido: postgresql-instancia01.txtAsigna permisos de ejecución al script de shell creado:
alumno@servidor: $ chmod +x $HOME/.local/bin/postgresql-instancia01
OBSERVACIÓN: el script de shell postgresql-instancia01
puede aceptar los siguientes parámetros para administrar a la
instancia-proceso de PostgreSQL:
- start: para iniciar la instancia.
- stop: para detener la instancia.
- restart: para reiniciar la instancia.
- reload: para recargar el archivo de configuración sin reiniciar a esta.
- status: para determinar si está en ejecución o detenida la instancia.
- config: para obtener algunos parámetros de configuración del archivo de configuración de la instancia.
pgAdmin
Para la instalación de pgAdmin, como usuario root ejecuta el comando zypper install pgadmin3
.
En caso de error
Si durante el inicio de la instancia de PostgreSQL se obtiene algún mensaje de error o el proceso no es detectado
mediante el comando postgresql-instancia01 status
es posible encontrar el motivo por la cual la instancia no puede
ser iniciada en el archivo $HOME/.local/var/pgsql/instancia01/postgresql.log
.
En el directorio $HOME/.local/var/pgsql/instancia01/data/pg_log
es posible encontrar varios archivos de registros, cada uno
con un nombre del tipo postgresql-AÑO-MES-DÍA_HORA.log que corresponde a registros por parte de PostgreSQL durante
su tiempo de ejecución
Borrando y recreando la instancia de PostgreSQL
Si por alguna razón se desea borrar la instancia, perdiendo la configuración y datos existentes en ella, se
detiene la instancia (comando postgresql-instancia01 stop
), se borra el directorio $HOME/.local/var/pgsql/instancia01
y los pasos indicados en el apartado Instancia se vuelven a llevar a cabo.
MariaDB
Instalación
MariaDB posiblemente ya se encuentre instalado, puedes de cualquier forma ejecutar lo siguiente para confirmar su instalación:
root@servidor:~ $ zypper search -i 'mariadb*'
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
--+-----------------------+---------------------------------------------------------------+--------
i | mariadb | Server part of MariaDB | package
i | mariadb-client | Client for MariaDB | package
i | mariadb-errormessages | MySQL Community Server development header files and libraries | package
La columna S (status) indica que ya se encuentra instalado.
De no encontrarse instalado, ejecuta como root el comando zypper install mariadb mariadb-client
para
instalar el servidor y los clientes (utilidades) de MariaDB.
Para determinar la versión de MariaDB disponible ejecuta el comando zypper info mariadb
.
Aún cuando MariaDB surgió a partir de MySQL, MySQL Workbench solo contempla su uso con MySQL por lo que se tienen los siguientes clientes gráficos alternativos para MariaDB:
MySQL
MySQL se encuentra disponible de igual forma, puedes ejecutar zypper search 'mysql*'
. La versión disponible
de MySQL la puedes determinar con el comando zypper info mysql-community-server
RECOMENDACIÓN: lee lo siguiente:
- MariaDB, el software libre y el lucro cesante por Enrique Dans
- Que es MariaDB y ventajas frente a MySQL y Novedades de MariaDB 10 en vozidea.com
Apache Cassandra
Los siguientes pasos serán llevados a cabo como usuario alumno.
Verifica la instalación de JAVA (JRE/JDK):
which java
,java -version
yjavac -version
.Accede a http://cassandra.apache.org/download/ y descarga la última versión disponible de Apache Cassandra.
En este caso se ha descargado el archivo
apache-cassandra-3.5-bin.tar.gz
en el directorio$HOME/Downloads
.Crea el directorio
$HOME/.local/opt/apache-cassandra
y en él descomprime el archivo descargado en formato tar.gz de Apache Cassandra:alumno@servidor:~ $ mkdir -p $HOME/.local/opt/apache-cassandra alumno@servidor:~ $ cd $HOME/.local/opt/apache-cassandra alumno@servidor:~/.local/opt/apache-cassandra $ tar xf $HOME/Downloads/apache-cassandra-3.5-bin.tar.gz
Al terminar obtendrás el directorio
apache-cassandra-3.5
.Ingresa al directorio
apache-cassandra-3.5
e inicia a Apache Cassandra:alumno@servidor:~/.local/opt/apache-cassandra/apache-cassandra-3.5 $ ./bin/cassandra -p cassandra.pid
Durante su ejecución Apache Cassandra estará en segundo plano.
Puedes observar la ejecución de Apache Cassandra con:
alumno@servidor:~/.local/opt/apache-cassandra/apache-cassandra-3.5 $ ss -plutn | grep java tcp 0 0 127.0.0.1:7000 0.0.0.0:* LISTEN 9270/java tcp 0 0 127.0.0.1:7199 0.0.0.0:* LISTEN 9270/java tcp 0 0 127.0.0.1:41735 0.0.0.0:* LISTEN 9270/java tcp 0 0 127.0.0.1:9042 :::* LISTEN 9270/java
Los puertos TCP usados por Apache Cassandra pueden ser alterados en el archivo de configuración de Apache Cassandra:
conf/cassandra.yaml
. Para encontrarlos:alumno@servidor:~/.local/opt/apache-cassandra/apache-cassandra-3.5 $ grep _port conf/cassandra.yaml | grep -v '#' storage_port: 7000 ssl_storage_port: 7001 native_transport_port: 9042 rpc_port: 9160
Mientras se encuentre en ejecución puedes hacer uso de su cliente:
cqlsh
alumno@servidor:~/.local/opt/apache-cassandra/apache-cassandra-3.5 $ ./bin/cqlsh Connected to Test Cluster at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.5 | CQL spec 3.4.0 | Native protocol v4] Use HELP for help. cqlsh> cqlsh> exit
Para detener a Apache Cassandra ejecuta el comando kill -9 $(cat cassandra.pid)
estando dentro del
directorio $HOME/.local/opt/apache-cassandra/apache-cassandra-3.5
. Al archivo cassandra.pid
mantiene
el PID de la instancia en ejecución.
Redis
The suggested way of installing Redis is compiling it from sources as Redis has no dependencies other than a working GCC compiler and libc. Installing it using the package manager of your Linux distribution is somewhat discouraged as usually the available version is not the latest. - Installing Redis
Los siguientes pasos serán llevados a cabo como usuario alumno.
NOTA: Redis será compilado e instalado desde su código fuente por lo que es importante que ya se hayan instalado los paquetes de build-essentials.
Crea el directorio
$HOME/.local/opt/redis
y accede a él:alumno@servidor:~ $ mkdir -p $HOME/.local/opt/redis alumno@servidor:~ $ cd $HOME/.local/opt/redis
Accede a http://redis.io/download y descarga la versión estable ofrecida de Redis, en este caso ha sido la versión 3.2.0.
alumno@servidor:~/.local/opt/redis $ wget http://download.redis.io/releases/redis-3.2.0.tar.gz alumno@servidor:~/.local/opt/redis $ tar xf redis-3.2.0.tar.gz
Al finalizar obtendrás el directorio
redis-3.2.0
.Ingresa al directorio
redis-3.2.0
e inicia su compilación con el comando make:alumno@servidor:~/.local/opt/redis $ cd redis-3.2.0 alumno@servidor:~/.local/opt/redis/redis-3.2.0 $ make PREFIX=$(pwd)/local clean install
Al terminar, Redis estará instalado en
$HOME/.local/opt/redis/redis-3.2.0/local
.Crea el directorio
local/etc
y en él copia los archivos de configuración de Redis:alumno@servidor:~/.local/opt/redis/redis-3.2.0 $ mkdir -p local/etc alumno@servidor:~/.local/opt/redis/redis-3.2.0 $ cp *.conf local/etc/
Al terminar contarás con la siguiente estructura en
$HOME/.local/opt/redis/redis-3.2.0/local
:alumno@servidor:~/.local/opt/redis/redis-3.2.0 $ tree local local/ ├── bin │ ├── redis-benchmark │ ├── redis-check-aof │ ├── redis-check-rdb │ ├── redis-cli │ ├── redis-sentinel -> redis-server │ └── redis-server └── etc ├── redis.conf └── sentinel.conf 2 directories, 8 files
Ingresa al directorio
local/bin
e inicia a Redis:alumno@servidor:~/.local/opt/redis/redis-3.2.0 $ cd local/bin alumno@servidor:~/.local/opt/redis/redis-3.2.0/local/bin $ ./redis-server ../etc/redis.conf --loglevel verbose _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 3.2.0 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 18118 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | http://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 18118:M 19 Feb 03:06:37.179 # Server started, Redis version 3.2.0
Durante su ejecución obtendrás algunos mensajes de advertencia (WARNING) con sugerencias a problemas detectados.
Para detener la instancia de Redis aprieta el juego de teclas Ctrl + c.
Accede a la instancia en ejecución de Redis con:
alumno@servidor:~/.local/opt/redis/redis-3.2.0/local/bin $ ./redis-cli -h localhost -p 6379 localhost:6379>
MongoDB
Los siguientes pasos serán llevados a cabo como usuario alumno.
Crea el directorio
$HOME/.local/opt/mongodb
y accede a él:alumno@servidor:~ $ mkdir -p $HOME/.local/opt/mongodb alumno@servidor:~ $ cd $HOME/.local/opt/mongodb
Accede a https://www.mongodb.com/download-center?jmp=nav#community y descarga la versión estable ofrecida de MongoDB, en este caso ha sido la versión 3.2.6.
alumno@servidor:~/.local/opt/mongodb $ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.6.tgz alumno@servidor:~/.local/opt/mongodb $ tar xf mongodb-linux-x86_64-3.2.6.tgz
Al finalizar obtendrás el directorio
mongodb-linux-x86_64-3.2.6
.Ingresa al directorio
mongodb-linux-x86_64-3.2.6/bin
y ejecuta al demonio principal de MongoDB (mongod
) para determinar si es posible su ejecución:alumno@servidor:~/.local/opt/mongodb $ cd mongodb-linux-x86_64-3.2.6/bin alumno@servidor:~/.local/opt/mongodb/mongodb-linux-x86_64-3.2.6/bin $ ./mongod --version db version v3.2.6 git version: 05552b562c7a0b3143a729aaa0838e558dc49b25 allocator: tcmalloc modules: none build environment: distarch: x86_64 target_arch: x86_64