Cómo instalar MariaDB en Debian 9 Stretch

En esta entrada veremos cómo instalar MariaDB en Debian 9 Stretch paso a paso, de modo que puedas disfrutar de este servicio de bases de datos en tu servidor o VPS Debian. Con licencia GPL e incluido en Debian como alternativa a MySQL, no hay que subestimar MariaDB, ya que procede de los mismos creadores de MySQL, en un esfuerzo por asegurar un desarrollo GPL de este sistema de bases de datos relacionales. Además, sus autores exploran los nuevos desarrollos y tendencias del sector, por lo que MariaDB es un proyecto con presente y futuro.

Antes de instalar MariaDB en Debian 9 Stretch

Para seguir esta guía de instalación y configuración de MariaDB en Debian 9 Stretch debes partir de la siguiente base:

  • Una instalación actualizada de Debian 9 Stretch.
  • Acceso a consola con root o un usuario con permisos de sudo.
  • Conexión a Internet.

También se necesitan algunas herramientas que pueden descargarse desde los repositorios de la distribución, por lo que actualizamos la información de los mismos:

~$ sudo apt update

E instalamos las herramientas necesarias:

~$ sudo apt install -y apt-transport-https dirmngr

La versión de MariaDB incluida en Debian 9 Stretch es la 10.1, pero la última versión oficial disponible es la 10.5. En este tutorial te enseñamos a instalar ambas, de modo que puedas elegir la que te interese.

Cómo instalar MariaDB en Debian 9 Stretch

Si quieres instalar MariaDB 10.1 en Debian 9 Stretch a través de los repositorios del sistema, sáltate el siguiente paso, pero si te interesa la versión actual, la 10.5, continúa leyendo.

Cómo instalar el repositorio oficial de MariaDB 10.5 en Debian 9 Stretch

Para instalar MariaDB 10.5 en Debian 9 Stretch, la última versión estable disponible, es necesario instalar el repositorio de mariadb.org, algo muy sencillo y rápido.

Creamos el nuevo archivo de repositorio para MariaDB 10.5:

~$ sudo nano /etc/apt/sources.list.d/mariadb.org-10.5.list

Y añadimos la información del repositorio:

deb [arch=amd64,i386,ppc64el,arm64] http://ftp.nluug.nl/db/mariadb/repo/10.5/debian stretch main

Puedes encontrar otros servidores espejo o mirrors en el sitio web de MariaDB.

Guardamos los cambios y cerramos el archivo.

Finalmente instalamos la clave pública con la que se firman los paquetes del repositorio:

~$ sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

Cómo instalar MariaDB Server

Sea cual sea la versión que hayas decidido instalar, empezaremos actualizando la información de los repositorios:

~$ sudo apt update

Con las listas de paquetes sincronizadas, ya podemos instalar el paquete que necesitamos, mariadb-server, con apt:

$ sudo apt -y install mariadb-server

Tras la instalación de los paquetes necesarios y sus dependencias, el servicio mariadb.service (o mariadb en versión corta) queda activado e iniciado, listo para usar, como podemos comprobar mediante el comando systemctl status mariadb:

como instalar mariadb en debian 9 stretch
Servicio de MariaDB en funcionamiento tras la instalación

Por lo tanto, MariaDB se iniciará con el sistema, estando disponible en todo momento.

Cómo configurar MariaDB Server en Debian 9 de forma segura

La instalación que acabamos de realizar configura el acceso para el usuario root de MariaDB sin contraseña, mediante un sistema que sólo permite conectar a MariaDB como root si el usuario de Debian 9 que hace la conexión es también root (o está usando sudo). Con este sistema no se necesita contraseña para root.

Además, el usuario root sólo tiene acceso local, no se le permite el acceso remoto.

Cómo configurar el acceso de root a MariaDB con contraseña

Si por algún motivo necesitas acceso tradicional mediante contraseña, tendremos que cambiar el plugin de autenticación y/o crear una contraseña para root.

En el caso de MariaDB 10.1 el plugin de autenticación es unix_socket que funciona sin contraseña, por lo que habrá que cambiar el plugin de autenticación y crear la contraseña para dicho plugin. Iniciamos sesión con el cliente mysql y root:

~$ sudo mysql

Vamos a asignar la contraseña de root de forma manual y cargar el plugin por defecto (mysql_native_password) para gestionar el acceso mediante contraseñas.

> update mysql.user set password=password('XXXXXXXX'), plugin='' where user='root';

El hecho de no especificar un plugin concreto es porque el plugin por defecto de MariaDB, si no se cambia en la configuración de MariaDB, es el tradicional plugin nativo.

Solamente queda actualizar los privilegios del sistema de base de datos y cerrar el cliente:

> flush privileges;
> exit

Para MariaDB 104 y 10.5, iniciaremos también sesión con el cliente mysql:

~$ sudo mysql

Y crearemos la contraseña para root:

> alter user root@localhost identified by 'XXXXXXXX';

Refrescamos la tabla de permisos y salimos del cliente:

> flush privileges;
> exit

Sea cual sea la versión de MariaDB que estés usando, ahora sólo se podrá acceder como root especificando su contraseña. Hecho este cambio comprobamos que no podemos volver a acceder simplemente con sudo:

~$ sudo mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

El mensaje de error nos informa de que esperaba una contraseña. Sin embargo, si intentamos conectar mediante usuario y contraseña (si necesidad de sudo) veremos que sí es posible la conexión:

~$ mysql -u root -p
como instalar y configurar mariadb en debian 9 stretch
Acceso como root mediante el cliente de consola mysql

Juego de caracteres por defecto de MariaDB en Debian 9

Si has optado por la versión de MariaDB 10.1 de los repositorios de Debian 9, los siguientes cambios no hacen falta, ya que el juego de caracteres del servidor por defecto es utf8mb4.

Pero en el caso de la versión de MariaDB 10.5 procedente del repositorio oficial, la directiva collation-server tiene el valor por defecto es utf8mb4_general_ci, cuando lo adecuado sería utf8mb4_unicode_ci. Esto lo podemos solucionar fácilmente editando el archivo de configuración del servicio:

~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Buscaremos la directiva mencionada en la sección mysqld:

...
[mysqld]
...
collation-server = utf8mb4_general_ci
...

Y cambiaremos su valor:

...
collation-server      = utf8mb4_unicode_ci
...

Guardamos los cambios y reiniciamos el servicio mariadb:

~$ sudo systemctl restart mariadb

Cómo crear usuarios en MariaDB Server en Debian 9

Al igual que solemos hacer en Debian 9, en MariaDB es mejor reservar el usuario root para tareas muy concretas. Vale la pena crear un usuario especial al que darle suficientes privilegios, de cara al acceso remoto al servidor MariaDB. Esto le complicará mucho el trabajo a posibles intrusos.

Cómo crear un usuario con privilegios en MariaDB

Debemos conectar como root a MariaDB, mediante sudo si no hemos modificado la configuración, o mediante contraseña si hemos realizado el cambio que hemos explicado antes.

Tras establecer conexión con MariaDB Server mediante el cliente de consola, con una sola sentencia crearemos el usuario dándole los privilegios necesarios para administrar:

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

No olvides antes de cerrar el cliente actualizar los permisos de los usuarios de MariaDB:

> flush privileges;
> exit

Como la intención es que este nuevo usuario pueda acceder de forma remota a MariaDB, especificamos el nombre del usuario con el formato ‘usuario‘ en lugar de ‘usuario’@’localhost‘. De esta forma es posible el acceso tanto local como remoto.

Los usuarios se crean con el plugin de autenticación por defecto, que en una instalación de MariaDB en Debian 9 Stretch es mysql_native_password.

Cómo configurar el acceso remoto a MariaDB en Debian 9

Configurar el acceso remoto a MariaDB en Debian 9 Stretch consiste en asegurarnos de que el valor de la directiva de configuración de MariaDB bind-address sea el adecuado.

La directiva bind-address se encuentra en el archivo 50-server.cnf:

~$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Si buscamos la directiva, veremos el valor que tiene asignado:

...
bind-address            = 127.0.0.1
...

Este valor es responsable de que el servidor sólo escuche conexiones de red desde la propia máquina (127.0.0.1, la interfaz loopback).

Basta con comentar o desactivar la directiva para que adquiera el valor 0.0.0.0 y se permitan las conexiones remotas:

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

Guardamos los cambios de este archivo de configuración y reiniciamos el servicio mariadb para que tengan efecto los cambios:

~$ sudo systemctl restart mariadb

Cómo configurar el firewall UFW de Debian 9 Stretch para MariaDB

Si tienes activado el firewall UFW en la máquina Debian 9 Stretch en la que has instalado el servicio MariaDB, aunque hayas configurado el servicio para admitir conexiones remotas el firewall las bloqueará. Necesitamos añadir una regla que las permita:

~$ sudo ufw allow mysql

Ya tenemos todo lo necesario para conectar remotamente. Vamos a probarlo, pero de forma cómoda, o sea, gráfica.

Conectar MySQL Workbench con un servidor remoto MariaDB

Vamos a instalar MySQL Workbench en Debian 9 , ya que es la herramienta más cómoda para trabajar gráficamente con MariaDB Server, independientemente de si se encuentra en la propia máquina Debian 9, en otra máquina de la red local o en un VPS Debian en Internet.

Cómo instalar MySQL Workbench en Debian 9

Para instalar MySQL Workbench en Debian 9 no tendremos más que usar apt para descargarlo desde los repositorios del sistema. El paquete es mysql-workbench y, como es habitual, apt lo descargará e instalará junto a todas sus dependencias:

~$ sudo apt -y install mysql-workbench

Ya podemos ejecutar MySQL Workbench. En el escritorio LXDE lo encontramos en el menú principal bajo la sección Programación.

como instalar mysql workbench en debian 9 stretch
Pantalla de inicio y conexiones de MySQL Workbench en Debian 9 Stretch

Cómo crear una conexión en MySQL Workbench para Debian 9 Stretch

Vamos a crear una nueva conexión desde la pantalla inicial de MySQL Workbench. Para ello pincharemos el botón con el símbolo + junto a «MySQL Connections» y se abrirá el diálogo de configuración de la nueva conexión:

como crear una conexion remota con mysql workbench en debian 9 stretch
Diálogo para crear una nueva conexión a MariaDB Server en Debian 9 Stretch

En este diálogo introduciremos los datos para establecer la conexión con el servidor MariaDB. Como mínimo cumplimentaremos los siguientes:

  • Connection name: Si tenemos varias conexiones a distintos servidores (o con distitntos usuarios) necesitaremos un nombre para distinguirlas. Aquí se establece ese nombre.
  • Connection method: Dejamos Standard (TCP/IP), ya que es el protocolo que necesitamos para conectar tanto de forma local como remotamente a nuestra red local o incluso a Internet.
  • Hostname: El nombre del servidor MariaDB al que queremos conectar, o su dirección IP.
  • Port: El puerto de conexión, dejamos el valor por defecto ya que el 3306 es el estándar.
  • Username: Usuario con el que queremos conectar al servidor, creado con permisos de acceso remoto.

Con los datos introducidos en cada campo del diálogo pinchamos en «Test Connection«. Si todo está correcto y se establece la conexión, se abrirá un nuevo diálogo que nos pide la contraseña del usuario:

mysql workbench password
MySQL Workbench pide la contraseña del usuario

Introducimos la contraseña, con la posibilidad de marcar «Save password in keychain» para que MySQL Workbench la recuerde en las próximas conexiones. Al pinchar en OK se muestra un mensaje de advertencia:

Mensaje de advertencia de MySQL Workbench

No hay problema, lo que está ocurriendo es que MySQL Workbench está pensado para conectar a servidores MySQL Server versiones de la 5.1 a la 5.7 y en esta ocasión se envía un número de versión 10.x, porque MariaDB lleva una numeración de versiones independiente. En cualquier caso, hasta ahora no he notado ninguna incompatibilidad trabajando con MariaDB Server en lugar de MySQL Server. Podemos continuar tranquilamente.

conexion exitosa con el servidor mariadb
Conexión exitosa con el servidor MariaDB

Y como vemos, la conexión se ha realizado con éxito. Pinchando en OK cerramos el aviso, y cerrando el diálogo de creación de la conexión, volveremos a la pantalla inicial de MySQL Workbench:

como crear conexiones mysql workbench mariadb server
Creada la nueva conexión de MySQL Workbench

Podemos ver nuestra nueva conexión recién creada en la lista de conexiones configuradas. Basta con pinchar en cualquiera de las conexiones creadas para realizar la conexión al servidor MariaDB, si no hemos guardado la contraseña del usuario, se nos pedirá. Una vez establecida la conexión (y avisados de nuevo de la diferencia de versión del servidor) se abre el espacio de trabajo de MySQL Workbench:

espacio de trabajo de mysql workbench
Espacio de trabajo de MySQL Workbench

Ahora que ya sabemos cómo instalar MySQL en Debian, ya podemos crear nuevos usuarios, bases de datos, tablas, realizar consultas, etc. Pero eso, amigo, ya es otra historia…

Conclusión

Ahora ya sabemos cómo instalar MariaDB en Debian 9 Stretch paso a paso, en cuestión de pocos minutos.

Podemos trabajar desde consola o desde herramientas gráficas como MySQL WorkBench, que nos puede echar una mano si no somos grandes expertos en SQL. Además con la ventaja de trabajar desde nuestro entorno favorito, ya sea Windows, Linux o Mac, en local o en remoto.

Espero que te haya resultado útil el tutorial. Si has visto cualquier error o tienes alguna pregunta o sugerencia, o quieres proponer una mejora del artículo, o uno nuevo, no dudes en dejarme un comentario.

¿Te ha sido útil este artículo?, ¿quieres ayudarnos a mantener este sitio en línea y a crear nuevos artículos y tutoriales? Puedes hacerlo dejando una propina de tan sólo 1 $ desde PayPal:

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

¡Gracias!

5/5 - (1 voto)

3 comentarios en «Cómo instalar MariaDB en Debian 9 Stretch»

Los comentarios están cerrados.

Ads Blocker Image Powered by Code Help Pro

¡Detectado un bloqueador de publicidad!

Hemos detectado que está usando extensiones para bloquear anuncios prublicitarios. Por favor, ayúdenos desactivando dicho bloqueador para este sitio web. ¡Gracias!