Cómo instalar MariaDB en openSUSE Leap 15.1

En esta entrada veremos cómo instalar MariaDB en openSUSE Leap 15.1 paso a paso, de modo que puedas hacer funcionar este servicio de bases de datos de código libre en tu servidor o VPS openSUSE y dar soporte a complejas aplicaciones o desarrollos propios.

Antes de instalar MariaDB en openSUSE Leap 15.1

Si quieres seguir esta breve guía de instalación y configuración de MariaDB en openSUSE Leap 15.1 sólo tendrás que cumplir estos requisitos:

  • Una instalación actualizada de openSUSE Leap 15.1.
  • Acceso a línea de comandos con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Cómo instalar MariaDB en openSUSE Leap 15.1

A la hora de instalar MariaDB en openSUSE Leap 15.1 tenemos dos alternativas, o bien usar los repositorios de la distribución, que incluyen MariaDB 10.2, o bien añadir los repositorios oficiales de mariadb.org y así instalar la última versión, MariaDB 10.5.

MariaDB 10.2 desde los repositorios de openSUSE Leap 15.1

Actualizamos la información de los repositorios:

~> sudo zypper refresh

El paquete que debemos instalar es mariadb:

~> sudo zypper install -y mariadb

MariaDB 10.5 desde los repositorios de mariadb.org

Si prefieres instalar MariaDB 10.5 en openSUSE Leap 15.1 (o alguna otra versión intermedia, como la 10.4 ó la 10.3) hay que añadir el repositorio oficial de esta versión en el sistema. En primer lugar añadimos la clave pública con la que se firma el repositorio:

~> sudo rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

Seguidamente añadimos el nuevo repositorio al sistema:

~> sudo zypper addrepo --gpgcheck --refresh https://yum.mariadb.org/10.5/opensuse/15/x86_64 mariadb

E indicaremos que se añadan todas las claves públicas necesarias:

~> sudo zypper --gpg-auto-import-keys refresh

El paquete que necesitamos es MariaDB-server (importan las mayúsculas), que podemos instalar con zypper:

~> sudo zypper install -y MariaDB-server

Iniciar y habilitar el servicio

Independientemente de la versión por la que te hayas decantado, una vez instalado MariaDB con sus dependencias se crea un nuevo servicio en openSUSE Leap 15.1, el servicio mariadb.service o mariadb si prefieres el nombre corto. Este servicio no está en ejecución, ni tampoco configurado para el inicio automático.

Podremos arrancar MariaDB por vez primera y habilitar el servicio para su inicio automático en cada arranque de openSUSE Leap 15.1 con el comando systemctl:

~> sudo systemctl enable --now mariadb

Podemos comprobar que MariaDB está en ejecución y listo para atender conexiones en cualquier momento con el comando systemctl status mariadb:

como instalar mariadb en opensuse leap 15.1

Instalar el cliente de consola de MariaDB en openSUSE Leap 15.1

Si quieres instalar el cliente de MariaDB en openSUSE Leap 15.1 debes tener en cuenta que el cliente es una dependencia del servicio, por lo que si has seguido los pasos anteriores ya dispones del cliente de consola mysql.

Pero si únicamente quieres instalar el cliente de MariaDB para conectar a otros servicios remotos, entonces debes instalar el paquete mariadb-client desde los repositorios de openSUSE Leap 15.1 o el paquete MariaDB-client desde el repositorio oficial de mariadb.org si lo has instalado.

Cómo configurar MariaDB en openSUSE Leap 15.1

Antes de configurar MariaDB en openSUSE Leap 15.1 podemos asegurarnos de que el servicio quede en un estado con mayor seguridad que la instalación por defecto, lanzando el script interactivo msyql_secure_installation.

En MariaDB 10.2:

El script nos solicitará la contraseña actual de root (que no tiene) y nos preguntará si deseamos crear una contraseña, a lo que debemos contestar que sí, para no dejar libre el acceso como root.

Para el resto de preguntas contestaremos afirmativamente, para eliminar usuarios anónimos, bases de pruebas, etc.

~> sudo mysql_secure_installation
...
Enter current password for root (enter for none):
OK, successfully used password, moving on...
...
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
...
Remove anonymous users? [Y/n] Y
 ... Success!
...
Disallow root login remotely? [Y/n] Y
 ... Success!
...
Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
...
Reload privilege tables now? [Y/n] Y
 ... Success!
...
Thanks for using MariaDB!

En MariaDB 10.5:

El script nos pedirá la clave actual del usuario root de MariaDB, que por defecto no tiene, y nos preguntará si deseamos usar el plugin de autenticación unix_socket para root, que en lugar de contraseña se basa en comprobar quién es el usuario de openSUSE Leap 15.1 que quiere conectar. Si el usuario es root o usa sudo accederá automáticamente sin contraseña.

Si eliges este sistema no tiene sentido a continuación asignar una contraseña, ya que será ignorada. Pero puedes no utilizar el plugin unix_socket y en ese caso sí hay que establecer contraseña para root.

El script continúa pidiendo confirmación para eliminar los usuarios anónimos, el acceso remoto para root y la base de datos de pruebas.

~> sudo mysql_secure_installation
...
Enter current password for root (enter for none):
OK, successfully used password, moving on...
...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
...
Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.
...
Remove anonymous users? [Y/n] y
 ... Success!
...
Disallow root login remotely? [Y/n] y
 ... Success!
...
Remove test database and access to it? [Y/n] y
...
Reload privilege tables now? [Y/n] y
 ... Success!
...
Thanks for using MariaDB!

Archivos de configuración de MariaDB

En MariaDB 10.2 el archivo de configuración principal es /etc/my.cnf.

En MariaDB 10.5 la configuración está repartida entre el archivo /etc/my.cnf y los archivos del subdirectorio /etc/my.cnf.d/.

Juego de caracteres por defecto

En el caso de MariaDB procedente del repositorio de mariadb.org, el juego de caracteres por defecto es latin1 en lugar de utf8. Vamos a comprobarlo conectando al servicio con el cliente de consola mysql y el usuario root (con contraseña o sin contraseña, según hayas decidido configurarlo):

~> sudo mysql

Lanzamos la siguiente consulta:

> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

Para configurar el juego de caracteres UTF-8 editamos el archivo de configuración de MariaDB Server, por ejemplo server.cnf para MariaDB 10.5:

~> sudo nano /etc/my.cnf.d/server.cnf

Añadimos la directiva character_set_server en la sección server:

...
[server]
character_set_server=utf8
...

Guardamos los cambios y reiniciamos el servicio:

~> sudo systemctl restart mariadb

Y volvemos a conectar con mysql y a lanzar la consulta:

> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

Solucionado.

Acceso remoto a MariaDB en openSUSE Leap 15.1

La posibilidad de acceso remoto a MariaDB en openSUSE Leap 15.1 depende del valor de la directiva bind_address en la configuración. Si esta directiva está presente en la configuración con el valor 127.0.0.1, sólo serán posibles las conexiones locales, mientras que si la directiva no está presente o está desactivada será posible acceder remotamente.

En MariaDB 10.5, la directiva se encuentra en el archivo /etc/my.cnf.d/server.cnf:

...
#bind-address=0.0.0.0
...

Como la directiva está desactivada, el acceso remoto está permitido.

En MariaDB 10.2 esta directiva se encuentra en el archivo /etc/my.cnf:

...
bind-address = 127.0.0.1
...

En este caso la directiva está activada y tiene el valor 127.0.0.1, por tanto el acceso remoto no está permitido. Así que editaremos este archivo:

~> sudo nano /etc/my.cnf

Buscamos la directiva bind_address:

...
# For security reasons, bind to 127.0.0.1 by default to enable networking
# only on the loopback interface.
bind-address    = 127.0.0.1
...

Basta con desactivarla para permitir el acceso remoto:

...
#bind-address    = 127.0.0.1
...

Guardamos los cambios y reiniciamos MariaDB 10.2:

~> sudo systemctl restart mariadb

Ahora en teoría un usuario con permisos de acceso remoto podría conectar desde otro sistema. Sin embargo, el firewall suele impedir estas conexiones.

Configurar el firewall de openSUSE Leap 15.1 para MariaDB

Debido a que el firewall de openSUSE Leap 15.1 suele estar activado por defecto, es necesario añadir la siguiente regla si deseas permitir conexiones remotas al servicio:

~> sudo firewall-cmd --permanent --add-service=mysql

Para aplicar los cambios de inmediato recargamos la configuración del firewall:

~> sudo firewall-cmd --reload

Crear un usuario con capacidad de acceso remoto

Ya que hemos desactivado el acceso remoto al usuario root, puede resultar de interés crear un nuevo usuario con capacidades administrativas y acceso remoto.

Accedemos al cliente de consola con mysql con root (con o sin contraseña, según hayas decidido):

~> sudo mysql

Y creamos el usuario con permisos sobre cualquier base de datos y capacidades de crear usuarios y conceder permisos:

> grant all privileges on *.* to nuevoadmin identified by 'XXXXXXXX' with grant option;

Sólo queda salir del cliente mysql:

> exit

Al declarar el nombre de usuario como nuevoadmin, sin la parte de la @, equivale a declararlo como nuevoadmin@’%’, que significa que puede conectar desde cualquier ubicación.

Probar el acceso remoto

Para comprobar el acceso remoto podemos usar un cliente de consola como mysql o gráfico como MySQL Workbench, indicando la dirección del servidor openSUSE Leap 15.1.

En este ejemplo conectaremos desde otro sistema Linux con el cliente de consola mysql, el parámetro -h para indicar la dirección IP o dominio del servidor remoto (la máquina opensSUSE Leap 15.1) y el usuario con capacidades de acceso remoto con el que queremos conectar:

~$ mysql -h opensuse151.local -u nuevoadmin -p

como instalar y configurar mariadb en opensuse leap 15.1

Desactivar el acceso remoto

Si no quieres permitir el acceso remoto a MariaDB en openSUSE Leap 15.1, además de no abrir el firewall para el servicio, puedes desactivarlo en la configuración.

Para MariaDB 10.2 revertiríamos el proceso anterior.

Para MariaDB 10.5 editamos el archivo server.cnf:

~> sudo nano /etc/my.cnf.d/server.cnf

Buscamos la directiva bind_address:

...
#bind-address=0.0.0.0
...

Eliminamos el carácter # inicial y cambiamos el valor 0.0.0.0 a 127.0.0.1:

...
bind-address=127.0.0.1
...

Guardamos los cambios y reiniciamos el servicio:

~> sudo systemctl restart mariadb

Si ahora intentamos volver a conectar remotamente como en el ejemplo anterior, no lo lograremos:

como configurar mariadb en opensuse leap 15.1

Conclusión

Ahora que sabes cómo instalar MariaDB en openSUSE Leap 15.1 podrás hacer funcionar este servicio de bases de datos en tu servidor o VPS como apoyo y base a multitud de complejas aplicaciones que trabajan con datos. Y con acceso remoto si lo necesitas.

En caso de dudas, preguntas, alguna sugerencia o notificación, puedes dejar un comentario.

¡Apoya este sitio!

¿Ya tienes el servicio funcionando gracias a esta guía de instalación y configuración de MariaDB en openSUSE Leap 15.1? Si es así y quieres agradecérnoslo, una mínima aportación ayuda mucho al mantenimiento de este sitio y creación de más tutoriales de openSUSE Leap 15.1 y MariaDB.

Puedes hacerlo dejando una propina a partir de 1 $ desde PayPal:

O, si te sientes especialmente agradecido, invitándome a un café:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario