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.
Debian 9 Stretch dejó de tener soporte el 30 de junio de 2.022 por lo que muchos proyectos de desarrollo, entre ellos MariaDB, dejaron también de dar soporte y lanzar nuevas versiones de sus productos para esta distribución. Lo ideal sería cambiar a la última versión estable de Debian, pero si necesitas instalar MariaDB (hasta su versión 10.6.8) sobre Debian 9 Stretch, con esta guía podrás hacerlo.
Tabla de contenidos
- Antes de instalar MariaDB en Debian 9 Stretch
- Cómo instalar MariaDB en Debian 9 Stretch
- Cómo configurar MariaDB Server en Debian 9 de forma segura
- Juego de caracteres por defecto de MariaDB en Debian 9
- Cómo crear usuarios en MariaDB Server en Debian 9
- Cómo configurar el acceso remoto a MariaDB en Debian 9
- Conectar MySQL Workbench con un servidor remoto MariaDB
- Conclusión
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 alguna versión más actual, como la 10.5, continúa leyendo.
Cómo instalar el repositorio oficial de MariaDB 10.5 ó 10.6 en Debian 9 Stretch
Para instalar MariaDB 10.5 ó 10.6 en Debian 9 Stretch, las últimas versiones estables disponibles, es necesario instalar el repositorio de mariadb.org, algo muy sencillo y rápido.
Por ejemplo, creamos el nuevo archivo de repositorio para MariaDB 10.6:
~$ sudo nano /etc/apt/sources.list.d/mariadb.org-10.6.list
Y añadimos la información del repositorio:
deb https://mirror.mariadb.org/repo/10.6/debian stretch main
Guardamos los cambios y cerramos el archivo.
Obviamente, si necesitases configurar el repositorio para MariaDB 10.5 deberías cambiar en las líneas anteriores «10.6» por «10.5».
Finalmente instalamos la clave pública con la que se firman los paquetes del repositorio:
~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F1656F24C74CD1D8
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
:
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 10.5 ó 10.6 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
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 y 10.6 procedente del repositorio oficial, la directiva collation-server tiene el valor por defecto 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 Stretch, suponiendo que trabajamos sobre un entorno gráfico de escritorio, no tendremos más que usar apt en una terminal de consola 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.
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:
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:
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:
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.
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:
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:
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!
Actualizado a MariaDB 10.6.8, última versión antes del fin del soporte a Debian 9 Stretch.
Me gustó esta información, muchas gracias por tu aporte.
¡Me alegra que te sirva!
Mano, buenísimo, el mejor.