Cómo instalar MySQL Server en Debian 11 Bullseye

En este artículo veremos cómo instalar MySQL Server en Debian 11 Bullseye paso a paso, de forma que puedas disfrutar fácilmente de este motor de bases de datos relacionales sobre tu servidor o VPS Debian.

Antes de instalar MySQL Server en Debian 11 Bullseye

Si quieres seguir los pasos de esta guía de instalación de MySQL Server en Debian 11 Bullseye sólo necesitas partir de los siguientes requerimientos mínimos:

  • Una máquina Debian 11 Bullseye actualizada.
  • Un usuario con privilegios de sudo.
  • Acceso a Internet.

También necesitaremos algunas herramientas procedentes de los repositorios del sistema, así que los actualizamos:

~$ sudo apt update

E instalamos dichas herramientas:

~$ sudo apt install -y gnupg wget

Con todo lo necesario ya listo, asegúrate de haber regulado correctamente la altura de tu escritorio y empezamos con el trabajo.

¡Ahorra 44,00 EUR!Superventas nº 1 SANODESK QS1 110 x 60 cm Escritorio Elevable Eléctrico con Tablero Escritorio Regulable en Altura Eléctrico Telescópico Bidireccional con Control de Memoria y Tecnología Anticolisión (Blanco)
¡Ahorra 45,00 EUR!Superventas nº 3 MAIDeSITe Mesa de pie eléctrica Ajustable en Altura 2 Patas Elevadoras con Motor Dual(Blanco)

Configuración del repositorio oficial de MySQL para Debian 11 Bullseye

Vamos a ver cómo configurar el repositorio oficial de MySQL Server para Debian 11 Bullseye ya que, debido al tipo de licencia de este software, no está incluido en los repositorios del sistema.

Visitaremos la página de descargas para APT del sitio oficial de MySQL, donde encontraremos un paquete que contiene la configuración del repositorio oficial:

como descargar mysql server para debian 11 bullseye

Siguiendo el enlace «Download» se muestra una página que nos permitiría iniciar sesión o crear nuestra cuenta de MySQL.com, pero no es necesario, ya que la descarga se encuentra en el enlace «No thanks, just start my download«.

descargar mysql server para debian 11 bullseye

Si trabajamos remotamente sobre la máquina Debian 11, podemos realizar la descarga desde consola con alguna herramienta como wget:

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

Una vez descargado este paquete procedemos a instalarlo:

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

Al instalarse este paquete se lanzará un pequeño configurador en modo consola que nos mostrará las características que ofrece por defecto el nuevo repositorio:

La primera opción nos muestra la versión de MySQL que se va a instalar, por defecto MySQL Server 8.0, aunque sería posible cambiarla por MySQL Cluster 8.0.

Por defecto, la segunda opción nos informa de que está activado el repositorio de herramientas y conectores, que es lo deseable, aunque podríamos desactivarlo.

Y, finalmente, la tercera opción ofrece un repositorio de software en pruebas, experimental, etc. que, con buen criterio, está desactivado inicialmente (aunque se puede activar).

Para salir del configurador seleccionaremos «Ok» y el instalador configurará el repositorio con los valores seleccionados.

Debemos actualizar la información de los repositorios para que se incluyan las nuevas listas de paquetes disponibles:

~$ sudo apt update

Cómo instalar MySQL Server en Debian 11 Bullseye

Llega el momento de instalar MySQL Server en Debian 11 desde el nuevo repositorio, siendo mysql-server el paquete que necesitamos:

~$ sudo apt install -y mysql-server

Una vez descargados este paquete y sus dependencias, durante la instalación de los mismos, se nos solicitará la contraseña del usuario administrador root de MySQL:

instalar mysql server en debian 11 bullseye

Si dejamos la contraseña en blanco se usará la autenticación por sockets de Unix, es decir, sólo el usuario root de Debian 11 o usuarios privilegiados con sudo podrán conectar como usuario root de MySQL. En cambio, si creamos una contraseña se usará el típico sistema de usuario/contraseña para acceder como root a MySQL Server. Depende de tus necesidades o gustos elegir uno u otro sistema.

Este instalador también nos advierte de la disponibilidad del nuevo plugin mejorado de autenticación, que tiene la desventaja de no ser compatible con conectores y clientes antiguos:

instalacion de mysql server en debian 11 bullseye

Si fuera necesario, se puede configurar el antiguo plugin de autenticación mysql_native_password o, algo más sencillo, crear usuarios que utilicen dicho plugin para las aplicaciones y conectores antiguos que lo requieran.

En cualquier caso, el instalador nos permite qué plugin de autenticación usar por defecto:

instalador de mysql server para debian 11 bullseye

Terminada esta pequeña configuración inicial, la instalación termina creando un nuevo servicio en Debian 11, el servicio mysql.service o simplemente mysql, que queda en ejecución y habilitado para su inicio automático.

Podemos comprobar en cualquier momento el estado de dicho servicio con el comando systemctl:

~$ systemctl status mysql

servicio mysql en debian 11 bullseye

También disponemos del cliente de consola mysql que podemos utilizar para conectar al servicio con el usuario root, si elegimos el acceso por sockets de Unix:

~$ sudo mysql

O especificando usuario y contraseña:

~$ mysql -u root -p

mysql server en debian 11 bullseye

Al establecer conexión se mostrará la versión instalada de MySQL Server.

Cómo crear tu propio usuario administrador

Es posible que necesites un usuario administrador de MySQL Server con acceso mediante contraseña para conectar al servicio desde aplicaciones, gestores, clientes gráficos, conexiones remotas, etc. dejando al usuario root con acceso únicamente local.

Esto es fácil de hacer desde el cliente mysql, en el que creamos un usuario con contraseña:

> create user chacho identified by 'XXXXXXXX';

Y a continuación aplicamos permisos sobre todas las bases de datos y modificación de permisos de otros usuarios:

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

Refrescamos la tabla de permisos:

> flush privileges;

Y cerramos la conexión:

> exit

Cómo configurar MySQL Server en Debian 11 Bullseye

A la hora de configurar MySQL Server en Debian 11 es destacable reseñar que los valores por defectos son bastante seguros, ya que no existen usuarios anónimos ni base de datos de pruebas, y el usuario root no puede acceder remotamente.

Además, el juego de caracteres por defecto que emplea el servicio es UTF8MB4, lo que ofrece total compatibilidad con idiomas como el español y otros, repletos de caracteres «especiales».

En cualquier caso, si necesitamos configurar cualquier aspecto de MySQL Server, los archivos de configuración se encuentran organizados bajo la ruta /etc/mysql/, siendo mysql.cnf el archivo principal que básicamente se encarga de incluir el resto de archivos de configuración.

Realizado cualquier cambio de configuración de MySQL Server en Debian 11, será necesario reiniciar el servicio:

~$ sudo systemctl restart mysql

Este servicio no permite simplemente volver a cargar la configuración sin necesidad de reinicio (la típica opción reload de systemctl).

Acceso remoto

Por defecto MySQL Server en Debian 11 permite conexiones entrantes desde red (acceso remoto) en las que podríamos usar nuestro usuario administrador creado en pasos anteriores.

Si tenemos activado el firewall UFW en Debian 11 será necesario añadir una regla que permita acceder a MySQL Server desde red:

~$ sudo ufw allow mysql

Para probar el acceso remoto, desde otra máquina en red usamos algún cliente, como mysql de consola, especificando la dirección del servidor Debian 11 en el que corre MySQL Server y el usuario con el que queremos conectar con contraseña:

~$ mysql -h debian11.local.lan -u chacho -p

acceso remoto a mysql server en debian 11 bullseye

Desactivar el acceso remoto

En muchas ocasiones no se necesita para nada la característica de acceso remoto, así que por serguridad nunca está de más desactivarla, independientemente de la configuración del firewall. Para ello editamos el archivo mysqld.cnf:

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

Buscamos la sección mysqld:

...
[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
...

Y añadimos la directiva bind-address con el valor 127.0.01:

...
[mysqld]
...
bind-address    = 127.0.0.1
...

Una vez guardados los cambios será necesario reiniciar el servicio:

~$ sudo systemctl restart mysql

Desde este momento sólo se permiten conexiones TCP/IP locales al servicio.

Conclusión

Ahora que sabes cómo instalar MySQL Server en Debian 11 Bullseye ya puedes trabajar con el motor de bases de datos relacionales más famoso y usado en todo el mundo, ya sea para tus propios desarrollos o como base para aplicaciones y plataformas de terceros.

Si tienes alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario (están moderados ya que recibimos mucho SPAM, pero se revisan prácticamente a diario).

¡Apóyanos!

Si gracias a esta pequeña guía de instalación y configuración ya puedes trabajar con bases de datos en tu propia máquina y quieres agradecérnoslo, cualquier pequeña contribución ayuda al mantenimiento de este sitio y la creación de más guías y tutoriales.

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

¡Gracias!

5/5 - (6 votos)

11 comentarios en «Cómo instalar MySQL Server en Debian 11 Bullseye»

  1. Estimado Chacho. He seguido tus pasos para instalar la última versión de MySQL en una placa SOLID-RUN HUMMINGBIRD iMX8 con esta versión de Debian y me indica que no admite arquitecturas arm64.
    Por favor, ¿sabes si es posible instalar MySQL en esa placa con arquitectura iMX8 de NXP y 64 bits, es decir, un Cortex ARM A53? De ser así, ¿hay algo que instalar previamente en el sistema para que pueda después instalar el paquete de MySQL?

    Muchas gracias.

    Responder
  2. He seguido todo el tutorial, pero no puedo conectarme remotamente. He visto ya muchos tutoriales y veo que en el archivo mysqld.cnf está todo lleno, pero el mío sólo tiene esas 4 líneas que pones acá, y no puedo conectar desde fuera. ¿Qué puedo hacer?

    Responder
    • Hola, Marcos.

      • La máquina cliente debe poder hacer ping al servidor Debian 11 en el que corre MySQL Server.
      • El servidor Debian 11 debe tener correctamente configurado el firewall.
      • La configuración por defecto de MySQL permite las conexiones desde red, no hay ningún ajuste que realizar en el archivo correspondiente.
      • El usuario debe ser creado sin el campo @ (como en el ejemplo del tutorial) para permitirle acceder desde cualquier ubicación en red.
      • El cliente con el que conectas al servidor debe ser capaz de manejar el sistema de autenticación y claves con el que ha sido creado el usuario.
      • Lamentablemente no das pistas de qué es lo que está pasando en tus intentos de conexión.

      Responder
  3. Hola, luego del «dpkg -i mysql-apt-config_0.8.19-1_all.deb» y seleccionar MySQL 8, recibo este mensaje y se aborta la instalación:

    Warning: apt-key should not be used in scripts (called from postinst maintainerscript of the package mysql-apt-config)
    Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
    OK

    Responder
    • ¡Hola, Rafa! Lo que comentas es normal, esos mensajes aparecen siempre tras la configuración de la instalación. El comando de instalación es el que viene a continuación en el tutorial, sudo apt install -y mysql-server. En cualquier caso he aprovechado para actualizar el tutorial con la última versión de MySQL para Debian 11 Bullseye y te confirmo que funciona correctamente.

      Responder
    • Hola, simonlebribon. En este mismo sitio ya realizamos una guía de instalación del firewall, así que no es cuestión de explicar cómo hacerlo en cada tutorial en que hay que añadir alguna regla (son docenas y docenas los tutoriales de este sitio en los que se realiza algún ajuste a propósito del tema tocado).

      Responder

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.