En esta entrada veremos cómo instalar MySQL en Debian 8 Jessie paso paso; y es que, a pesar de que esta distribución quedó sin soporte el 30 de junio de 2.020 y MySQL hiciera lo propio, todavía es posible a día de hoy descargar e instalar desde los repositorios oficiales la última versión disponible en su momento de este popular motor de bases de datos.
Tabla de contenidos
Antes de instalar MySQL en Debian 8 Jessie
En orden de poder completar esta guía de instalación de MySQL en Debian 8 Jessie, sólo necesitarás partir de las siguientes condiciones:
- Una instalación actualizada de Debian 8 Jessie.
- Acceso a línea de comandos con un usuario con capacidades de sudo o el mismo root.
- Conexión a Internet.
Cómo instalar MySQL en Debian 8 Jessie
Vamos a instalar MySQL Server en Debian 8 Jessie desde los repositorios oficiales, ya que la versión incluida en la distribución es la 5.5, mientras que los repositorios oficiales nos ofrecen las versiones 5.6 y 5.7.
Empezaremos instalando algunos requisitos como el servicio D-Bus y algún paquete adicional más:
~$ sudo apt install -y dbus lsb-release
Todavía es posible descargar directamente el paquete para instalar el repositorio de MySQL para Debian 8 Jessie:
~$ wget https://repo.mysql.com/mysql-apt-config_0.8.15-1_all.deb
Instalaremos este paquete con el comando dpkg:
~$ sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
Cargará un pequeño configurador que nos mostrará opciones sobre el repositorio de MySQL Server, el repositorio de herramientas y conectores, y el repositorio de versiones de prueba.
Aunque por defecto aparece seleccionada como versión de MySQL Server la 8.0, no está disponible. Tendremos que entrar en el submenú y elegir entre la 5.6 ó la 5.7.
De regreso al menú principal, el resto de valores son los adecuados, ya que querremos tener activado el repositorio de herramientas, mientras que el de versiones de prueba no suele ser interesante. Para continuar seleccionaremos la opción «Ok«.
Ahora ya tenemos instalado el repositorio de MySQL para Debian 8 Jessie, pero para lograr que funcione una vez que su clave de firmado ha expirado, habrá que editar su archivo de configuración:
~$ sudo nano /etc/apt/sources.list.d/mysql.list
En este archivo modificamos las fuentes de paquetes añadiendo la directiva «[trusted=yes]» para ignorar las firmas del repositorio (que no se pueden verificar):
... deb [trusted=yes] http://repo.mysql.com/apt/debian/ jessie mysql-apt-config deb [trusted=yes] http://repo.mysql.com/apt/debian/ jessie mysql-5.7 deb [trusted=yes] http://repo.mysql.com/apt/debian/ jessie mysql-tools ... deb-src [trusted=yes] http://repo.mysql.com/apt/debian/ jessie mysql-5.7
Ya podemos guardar y cerrar el archivo. De esta forma quedará listo el repositorio de MySQL para Debian 8 Jessie, siendo posible ahora actualizar las listas de paquetes:
~$ sudo apt update
Cómo instalar MySQL en Debian 8 Jessie
Para instalar MySQL en Debian 8 Jessie una vez instalado y actualizado el repositorio oficial, bastará con instalar el paquete mysql-server, que corresponderá con la versión que hayamos seleccionado en el configurador del repositorio:
~$ sudo apt install -y mysql-server
Una vez descargado el paquete y las dependencias de MySQL Server, durante la instalación se nos solicitará la contraseña del usuario root:
Puedes dejar la contraseña en blanco y conectar por autenticación basada en sockets de Unix (usando el comando sudo mysql
), o crear y confirmar una contraseña (accediendo con el comando mysql -u root -p
).
El instalador deja el servicio MySQL funcionando y habilitado para su inicio automático con cada arranque de Debian 8.
El servicio se llama mysql.service o simplemente mysql, y podemos comprobar en cualquier momento su funcionamiento con el comando systemctl status mysql
:
Para acceder al servicio podemos utilizar el cliente de consola mysql, incluido como dependencia, utilizando el usuario root:
~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.30 MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Podemos cerrar la sesión usando el comando exit:
> exit
Cómo configurar MySQL en Debian 8
A la hora de configurar MySQL en Debian 8 Jessie trabajaremos sobre los archivos ubicados bajo la ruta /etc/mysql/, siendo el archivo principal mysqld.cnf ubicado en el subdirectorio mysql.conf.d/.
Veamos algún ejemplo de configuración.
UTF8
Por defecto, MySQL para Debian 8 viene configurado con el juego de caracteres latin1 para el servicio y las bases de datos, cuando lo interesante sería utf8 o utf8mb4. Cambiamos estos valores editando mysqld.cnf:
~$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Dentro de la sección mysqld añadiremos esta línea:
... character-set-server = utf8mb4 ...
Elige si prefieres utf8 o utf8mb4.
Guardamos los cambios y reiniciamos el servicio:
~$ sudo systemctl restart mysql
Acceso sin contraseña
Hemos visto que para acceder al servicio con el cliente mysql es necesario especificar la contraseña, pero quizás te podría interesar trabajar localmente sin contraseña. Esto se consigue asignando al usuario el plugin auth_socket en lugar del tradicional, mysql_native_password, que se usa por defecto. Pero el plugin auth_socket no carga por defecto, así que editaremos la configuración para incluirlo:
~$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Añadimos la directiva plugin-load-add:
... plugin-load-add = auth_socket.so ...
Guardamos los cambios y reiniciamos el servicio.
Para asegurarnos de que el plugin auth_socket funciona, conectamos con root (con contraseña) y creamos un nuevo usuario con el mismo nombre que nuestro usuario de trabajo de Debian 8, asignándole específicamente este plugin:
> create user chacho identified with auth_socket;
Salimos a línea de comandos y volvemos a lanzar de nuevo el cliente mysql, sin ningún parámetro:
~$ mysql ... mysql>
Accedemos sin necesidad de contraseña, con el usuario de MySQL que se llama igual que nuestra cuenta, ya que usa el plugin auth_socket.
Podríamos cambiar el plugin del mismo usuario root, iniciando sesión con contraseña y modificando su plugin de conexión:
> alter user root@localhost identified with auth_socket;
Y refrescamos la tabla de permisos:
> flush privileges;
A partir de este momento podemos acceder como root a MySQL siendo el usuario root de Debian 8:
~# mysql ... mysql>
O con cualquier otro usuario de Debian 8 que pueda usar sudo:
~$ sudo mysql ... mysql>
Por último, puedes revertir el cambio, y reasignar el plugin mysql_native_password a un usuario que tenga el plugin auth_socket, indicando la correspondiente contraseña:
> alter user root@localhost identified with mysql_native_password by 'XXXXXXXX';
No olvides refrescar la tabla de permisos cuando hagas este tipo de cambios:
> flush privileges;
Acceso remoto
Podría interesarte acceder remotamente al servicio MySQL de Debian 8 desde otras máquinas en red, para lo que es necesario cambiar la configuración por defecto que sólo permite conexiones locales. Editamos el archivo de configuración del servicio:
~$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Buscamos la diretiva bind_address:
... bind-address = 127.0.0.1 ...
Su valor actual sólo permite conexiones locales, pero bastará con desactivarla insertando un carácter # al inicio de línea:
... #bind-address = 127.0.0.1 ...
Guardados los cambios, habrá que reiniciar el servicio:
~$ sudo systemctl restart mysql
Hay que tener en cuenta que no todos los usuarios pueden conectar remotamente, dependerá de si se crean con restricción de conectividad, lo que se indica añadiendo al nombre de usuario la @ y la red desde la que se puede acceder. Por ejemplo, el usuario root@localhost sólo puede conectar localmente, pero podemos crear un nuevo usuario que acceda desde cualquier ubicación:
> create user chacho identified by 'XXXXXXXX';
Si queremos que este usuario sea administrador (crear y modificar bases de datos y otros usuarios) le daremos los permisos necesarios:
> grant all privileges on *.* to chacho with grant option;
Fíjate que no hemos empleado @ y red en el nombre de usuario.
Configurar el firewall UFW de Debian 8 para MySQL
Si tienes activado el firewall UFW en Debian 8 Jessie, será necesario permitir explícitamente las conexiones a MySQL Server. Para ello basta con añadir la siguiente regla:
~$ sudo ufw allow mysql
Y MySQL ya podrá recibir conexiones desde red.
Cómo probar las conexiones remotas a MySQL
Desde otra máquina en red con algún cliente de MySQL, como el mismo cliente de consola mysql, podremos conectar al servidor MySQL en Debian 8, indicando su dirección IP o dominio con el parámetro -h, además del usuario con el que queremos conectar.
~$ mysql -h debian8.local.lan -u chacho -p
Conclusión
Ahora que sabes cómo instalar MySQL Server en Debian 8 Jessie ya puedes trabajar con este servicio de bases de datos, si eres de los que prefieren la implementación nativa. Queda todo listo para empezar con tus propios desarrollos de bases de datos o para implantar aplicaciones que requieren como soporte este motor de bases de datos.
Si tienes dudas, preguntas, te ha surgido algún problema con el tutorial o quieres formular alguna sugerencia, solicitar una actualización, notificar algún error, etc., puedes dejar un comentario.
Ah, y en caso de que te haya servido este pequeño tutorial de instalación y configuración y quieras expresar tu gratitud, puedes hacerlo dejando una propina de 1 $ a través de PayPal:
O, si te sientes generoso por encima de la media, puedes invitarme a un café:
¡Gracias!
Actualizado para poder utilizar la última versión soportada del repositorio de MySQL para Debian 8 Jessie.