Cómo instalar MySQL en Debian 9 Stretch

En esta entrada vamos a aprender cómo instalar MySQL en Debian 9 Stretch, cómo empezar con una configuración básica y cómo acceder remotamente al servidor recién instalado. Con esta guía paso a paso, en unos minutos vas a disfrutar de MySQL Server en tu servidor o VPS Debian, uno de los servicios de bases de datos más utilizados y más confiables. No te lo pierdas, que esto promete.

Debian 9 Stretch alcanzó el final de su soporte el 30 de junio de 2022, a raíz de lo cual diversos proyectos decidieron dejar de mantener sus desarrollos para esta distribución. Es el caso de MySQL, que además dejó caducar la clave GPG con la que firmaba sus repositorios para Debian 9. Por tanto es aconsejable migrar a la versión actual de Debian e instalar MySQL sobre la misma.

Antes de instalar MySQL en Debian 9 Stretch

Para completar esta guía de instalación de MySQL Server en Debian 9 Stretch debes cumplir los siguientes requisitos:

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

Además necesitaremos algunas herramientas que podemos conseguir desde los repositorios del sistema, por lo que actualizaremos las listas de paquetes:

~$ sudo apt update

E instalamos dichas herramientas:

~$ sudo apt install -y ca-certificates lsb-release wget

Ya tenemos todo listo para hacer el trabajo que nos ha traído aquí, así que regulamos correctamente la altura del escritorio y empezamos.

¡Ahorra 20,00 EUR!Superventas nº 1 TRIUMPHKEY 120x60cm Escritorio de pie Ajustable en Altura con estantes para Monitor Escritorio de pie eléctrico Ajustable en Altura Estante de Almacenamiento Home Office Tablero de Empalme Blanco
¡Ahorra 45,00 EUR!Superventas nº 2 MAIDeSITe Mesa de pie eléctrica Ajustable en Altura 2 Patas Elevadoras con Motor Dual(Blanco)

Instalar MySQL en Debian 9 Stretch

Antes de empezar a instalar MySQL Server en Debian 9 Stretch es necesario explicar que la versión MySQL Community Server oficial de Oracle no está presente en los repositorios de Debian 9. En su lugar, Debian 9 nos ofrece una alternativa GPL  sobre la que hablamos en la entrada sobre cómo instalar MariaDB en Debian 9 Stretch.

Puede que te interese la mayor compatibilidad posible con productos oficiales de MySQL y quieras optar por instalar MySQL Community Server en Debian 9. Esto es justamente lo que vamos a hacer en este tutorial.

Para ello debemos actualizar los repositorios de nuestro sistema Debian 9 con los repositorios adicionales que nos ofrece MySQL.

Repositorios de MySQL Server para Debian 9

Para configurar el repositorio de MySQL en Debian 9 Stretch necesitaremos un paquete que se encarga de configurar dicho repositorio oficial. La versión que podríamos obtener visitando la página oficial de descargas de MySQL NO sirve, ya que sólo es compatible con las últimas versiones de Debian.

Sin embargo, aún podemos obtener la versión 0.8.17-1 del paquete configurador descargándola directamente o desde consola mediante wget:

~$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb

Una vez descargado el paquete lo instalamos con el comando dpkg:

~$ sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb

Al instalar este paquete se lanzará el configurador del repositorio, ya que hay distintas versiones del servidor MySQL:

como configurar el repositorio de mysql para debian 9 stretch

Podremos seleccionar entre las distintas versiones disponibles de MySQL Server:

  • MySQL Server versiones 5.6, 5.7 y 8.0.
  • MySQL Cluster versiones 7.5, 7.6 y 8.0.
  • O ninguno

También tenemos posibilidad de activar (opción por defecto) o desactivar el repositorio de herramientas y utilidades de MySQL, entre ellas MySQL Workbench, y un repositorio de paquetes en estado de demostración, no estables, desactivado por defecto.

Una vez que hayamos decidido qué repositorios queremos instalar, seleccionando «Ok» comenzará la configuración de los repositorios y lo recomandable es proceder a la actualización de la información de los mismos:

~$ sudo apt update

Pero como el repositorio de MySQL para Debian 9 Stretch ya no está mantenido, la clave con la que está firmado expiró:

...
Err:4 http://repo.mysql.com/apt/debian stretch InRelease
  Las siguientes firmas no fueron válidas: EXPKEYSIG 8C718D3B5072E1F5 MySQL Release Engineering <mysql-build@oss.oracle.com>
Leyendo lista de paquetes... Hecho
W: Error de GPG: http://repo.mysql.com/apt/debian stretch InRelease: Las siguientes firmas no fueron válidas: EXPKEYSIG 8C718D3B5072E1F5 MySQL Release Engineering <mysql-build@oss.oracle.com>
E: El repositorio «http://repo.mysql.com/apt/debian stretch InRelease» no está firmado.
N: No se puede actualizar de un repositorio como este de forma segura y por tanto está deshabilitado por omisión.
...

Podemos solventar esto editando el archivo de configuración del repositorio:

~$ sudo nano /etc/apt/sources.list.d/mysql.list

Y añadir a cada fuente la directiva «[trusted=yes]» para pasar por alto la verificación de firmas:

...
deb [trusted=yes] http://repo.mysql.com/apt/debian/ stretch mysql-apt-config
deb [trusted=yes] http://repo.mysql.com/apt/debian/ stretch mysql-8.0
deb [trusted=yes] http://repo.mysql.com/apt/debian/ stretch mysql-tools
...
deb-src [trusted=yes] http://repo.mysql.com/apt/debian/ stretch mysql-8.0
...

Ahora volvemos a actualizar la información de los repositorios:

~$ sudo apt update

Y obtendremos el aviso:

...
W: Error de GPG: http://repo.mysql.com/apt/debian stretch InRelease: Las siguientes firmas no fueron válidas: EXPKEYSIG 8C718D3B5072E1F5 MySQL Release Engineering <mysql-build@oss.oracle.com>

Pero ahora no hay errores y no sólo se ha actualizado la información de los repositorios, sino que además podremos descargar paquetes.

Vamos a instalar el paquete mysql-server, que instalará tanto el cliente de consola como el servidor:

~$ sudo apt -y install mysql-server

Tras descargar los paquetes principales y dependencias, durante la instalación se abrirá un script interactivo que comenzará a solicitarnos ciertos datos. Empezará pidiéndonos una clave para root:

como instalar mysql en debian 9 stretch

Si dejamos la contraseña en blanco, solamente root o un usuario con permisos de sudo podrá acceder como usuario root de MySQL. Es decir, como root en Debian:

# mysql

Y como otro usuario con permisos de sudo:

~$ sudo mysql

Esto es así porque se usará el plugin de autenticación auth_socket.

Sin embargo, si creas una contraseña, cualquier usuario del sistema podrá acceder como root de MySQL si conoce esta contraseña que acabamos de crear. Es decir:

~$ mysql -u root -p

Y a continuación introduciríamos la contraseña.

En el siguiente paso se nos informa del nuevo método de autenticación de MySQL 8, usando el plugin caching_sha2_password, que es más seguro pero no es compatible con ciertos clientes y conectores que no incorporan aún este método:

como instalar mysql server en debian 9 stretch

Hecho el aviso, tendremos que decidir qué método queremos emplear:

A no ser que vayas a usar las últimas versiones de los clientes de MySQL, que admiten el nuevo método de conexión, te recomiendo que uses el método antiguo. El mismo MySQL Workbench 6.3, que es el que está disponible para Debian 9, no soporta el método nuevo. Las versiones actuales de MySQL Workbench para Windows sí soportan el nuevo sistema.

Para este ejemplo usaremos el método antiguo, ya que en sucesivos tutoriales instalaremos aplicaciones y servicios que no soportan el nuevo. Tú debes sopesar con qué clientes piensas conectar a la hora de elegir la versión de MySQL Community Server y el método de autenticación si eliges la versión 8.

Esta era la última interacción con el instalador, que procederá con las tareas de instalación y configuración de los paquetes descargados.

Tras todo este proceso, el servicio MySQL Server (mysql.service) queda en ejecución y activado en cada arranque del sistema. Podemos comprobar que está en marcha mediante el comando systemctl status mysql:

mysql en debian 9 stretch

Cómo crear y configurar usuarios en MySQL

El usuario root es demasiado poderoso para utilizarlo como usuario de trabajo habitual. Lo recomendable es crear otro usuario al que otorgarle permisos totales. Esto es muy importante si queremos tener acceso remoto al servidor MySQL, para evitar accesos no autorizados.

Entraremos en el cliente de consola mysql como root. Si no creamos una contraseña durante la instalación (autenticación auth_socket) entraremos así:

~$ sudo mysql

En caso contrario, si creamos contraseña para root entraremos así:

~$ mysql -u root -p

En el mensaje de bienvenida podemos ver la versión de MySQL Community Server que tenemos instalada en nuestro sistema Debian 9.

Crear un superusuario en MySQL

Una vez en la consola del cliente de MySQL crearemos un nuevo usuario:

> create user chacho identified by 'XXXXXXXX';

Y a continuación le daremos privilegios totales:

> grant all privileges on *.* to chacho with grant option;

Sólo queda refrescar las tablas de permisos y salir del cliente:

> flush privileges;
> exit

Este usuario se crea con permiso de acceso remoto, ya que no hemos añadido @localhost a su nombre. Así tendremos un usuario que puede acceder de forma remota, desde cualquier ubicación de red, ya sea local o Internet.

Cómo configurar MySQL en Debian 9 para acceso remoto

Ahora que ya sabemos cómo instalar MySQL en Debian 9, probablemente para usarlo en una máquina servidor, vamos a facilitarnos un poco el trabajo mediante acceso remoto.

Para poder acceder remotamente al servidor MySQL que estamos montando, su configuración debe permitirlo. Por defecto el acceso remoto a MySQL Server 8 está permitido, pero no para MySQL 5.

Si por algún motivo quisieras activarlo o desactivarlo, el archivo de configuración de MySQL que hay que ajustar es /etc/mysql/mysql.conf.d/mysqld.cnf:

~$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Su contenido, aparte de comentarios informativos, es el siguiente en la instalación por defecto:

...
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
...

Para que no se puedan establecer conexiones externas, tendremos que asegurarnos de que exista una cláusula bind-address con el valor de la dirección IP de la interfaz loopback, que suele ser 127.0.0.1:

...
bind-address    = 127.0.0.1

Y si lo que queremos es permitir dicho acceso remoto bastará con eliminar la directiva bind-address (si existe) o desactivarla insertando un carácter # a principio de línea:

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

Y reiniciamos MySQL Server:

~$ sudo systemctl restart mysql

Configurar el firewall UFW de Debian 9 para MySQL Server

Si tienes activado el firewall UFW en Debian 9 Stretch, algo más que recomendable, necesitarás añadir una regla para permitir el acceso remoto a MySQL Server:

~$ sudo ufw allow mysql

El efecto es inmediato.

Cómo conectar MySQL WorkBench con un servidor remoto

En esta sección veremos cómo instalar MySQL WorkBench en Debian 9 Stretch. De esta forma podremos conectar desde un entorno gráfico con nuestro servidor Debian 9, que puede estar virtualizado, formar parte de la red local o estar en Internet como VPS o hosting.

Cómo descargar MySQL WorkBench para Debian 9

Usando apt descargaremos e instalaremos MySQL Workbench para Debian 9:

~$ sudo apt -y install mysql-workbench

Y ya tenemos MySQL Workbench instalado y listo para usar.

Cómo configurar la conexión remota en MySQL WorkBench

Ejecutamos MySQL Workbench en cualquier máquina que lo tengamos instalado y en la pantalla inicial es donde realizaremos la configuración de la conexión remota:

Junto a «MySQL Connections» tenemos el botón para añadir nuevas conexiones abriendo el diálogo de configuración de nueva conexión:

Debemos facilitar los parámetros de la nueva conexión:

  • Connection name: Un nombre para identificar la nueva conexión.
  • Hostname: El nombre del servidor o su dirección IP, o localhost si es la máquina local.
  • Username: El nombre del usuario con el que queremos conectar.

Una vez cumplimentados los datos pinchamos en «Test Connection» y si hay conectividad y el usuario es correcto, se abrirá un diálogo solicitándonos la contraseña:

Tecleamos la contraseña y podemos marcar «Save password in vault» para que MySQL WorkBench la guarde para la próxima ocasión. Podemos continuar y se nos informará de que todo ha ido correcto (si hemos proporcionado todos los datos correctamente):

Y acabamos de ver que la prueba ha sido exitosa. Pinchamos en «OK» para cerrar el aviso y otra vez «OK» para cerrar la venta de configuración. Regresaremos a la pantalla inicial:

Ya tenemos la nueva conexión en la lista de conexiones configuradas. A partir de ahora, para conectar con el servidor un simple clic en el panel de la conexión abrirá directamente (si optamos por guardar la contraseña) el espacio de trabajo.

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

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

Conclusiones finales

Hemos visto cómo instalar MySQL en Debian 9 Stretch paso a paso, sin hacer nada más especial que añadir algunos repositorios nuevos al sistema.

La creación de usuarios desde consola es rápida, pero trabajar habitualmente en consola puede ser tedioso y frustrante cuando no se domina SQL a fondo.

Por ello, MySQL WorkBench nos puede echar una mano, dejándonos trabajar desde nuestro escritorio favorito (Windows, Linux, Mac), ya sea en local o de forma remota.

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, no dudes en dejarme un comentario.

¡Apoya chachocool.com!

Si te ha resultado útil este artículo y quieres agradecérnoslo, puedes hacerlo dejando 1 $ de propina con PayPal:

¡Gracias!

5/5 - (3 votos)

Deja un comentario

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.