Instalación de MySQL en Debian

Índice

Instalación MySQL en Debian 12

En teoría MySQL se puede instalar de forma directa desde los repositorios de Debian. Sin embargo, el gestor de paquetes apt no tiene acceso al paquete mysql-server a través del repositorio de la rama estable (bookworm) de Debian. Oracle ofrece un paquete .deb instalable en su web de descargas, que hay que configurar para que el gestor de paquetes apt pueda instalar la versión deseada de MySQL. El paquete que ofrece Oracle instala tanto el servidor como el cliente en la misma máquina.

usuario@mysql:~$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
usuario@mysql:~$ sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb

Al ejecutar la instalación comienza un proceso interactivo en el que se deben elegir las diferentes opciones de configuración del paquete. En primer lugar, hay que indicar el producto que se va a configurar durante la instalación, en este caso, el servidor MySQL. Posteriormente, hay que indicar la versión para la instalación. En este caso se elige la versión 8.4, que es la versión estable con soporte a largo plazo actualmente.

Tras configurar estas dos opciones en el paquete, hay que salir del menú interactivo y ejecutar una actualización de la paquetería del sistema. Posteriormente se instala el paquete mysql-server con el gestor de paquetes apt.

usuario@mysql:~$ sudo apt update
usuario@mysql:~$ sudo apt install mysql-server

Este proceso de instalación también es interactivo. En él hay que indicar la contraseña del usuario root del SGBD. La configuración del acceso remoto a este servidor se realiza en el fichero /etc/mysql/mysql.conf.d/mysqld.cnf añadiendo la siguiente línea.

bind-address    = 0.0.0.0

En versiones posteriores a la 8.0, esta línea no aparece por defecto en el fichero de configuración y se debe añadir dentro de la sección [mysqld]. Para hacer efectiva la configuración se reinicia el servicio.

Mientras que Postgres permite especificar la conexión remota desde una IP concreta o desde una red, el fichero de configuración de MySQL sólo permite indicar si la conexión será desde la máquina local o desde cualquier otra IP.

Para evitar el acceso de máquinas que no estén conectadas a la red local es necesario añadir una regla de cortafuegos en el servidor.

usuario@mysql:~$ sudo iptables -A INPUT -s 192.168.122.0/24 -p tcp --destination-port 3306 -j ACCEPT
usuario@mysql:~$ sudo iptables -A INPUT -p tcp --destination-port 3306 -j DROP

Con la primera regla se permite el tráfico dirigido al puerto 3306, por el que escucha MySQL siempre que la IP de destino sea una IP de la red local. Con la siguiente regla se impide el paso de cualquier otra comunicación dirigida a ese puerto. Para hacer persistente esta configuración se usa el paquete iptables-persistent.

root@mysql:~$ iptables-save >> /etc/iptables/rules.v4

Con esta configuración cualquier cliente de la red local puede acceder de forma remota al servidor MySQL instalado en esta máquina. Para ello, el cliente necesita una herramienta que le permita conectarse al servidor como, por ejemplo, mysql-client. Para instalarlo hay que seguir un procedimiento similar al de la instalación del servidor. En primer lugar, se descarga e instala el paquete para la configuración del respositorio de MySQL, disponible en su web de descargas. Posteriormente, se actualiza la paquetería del sistema y, por último, se instala el paquete mysql-cliente, que cuenta con la herramienta cliente para acceder de manera remota al servidor MySQL.

usuario@clientesBBDD:~$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
usuario@clientesBBDD:~$ sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb
usuario@clientesBBDD:~$ sudo apt update
usuario@clientesBBDD:~$ sudo apt install mysql-client

Es posible que durante la instalación del cliente, como ocurre en el caso del servidor, haya que instalar algunas dependencias de forma sencilla con el gestor de paquetes APT. Finalmente, tras concluir el proceso, el cliente puede acceder de forma remota al servidor.

usuario@clientesBBDD:~$ mysql -h 192.168.122.47 -u usuario -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.4.2 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

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> 
comments powered by Disqus

Relacionados

Configuración de reglas de cortafuegos en router Linux usando iptables

Existen diferentes formas de implementar un cortafuegos en una red, ya sea por nodos o de forma perimetral. En ocasiones se puede dedicar un dispositivo exclusivamente para esta finalidad pero los routers también pueden cumplir esta función. En este post se muestra cómo configurar reglas de cortafuegos en routers Linux en este escenario basado en la saga “Los juegos del hambre”.

Leer

Cómo configurar un servidor DHCP en un router Cisco

La mayor parte de routers pueden funcionar también como servidores DHCP para los equipos de su red. En este post se explica cómo configurar un servidor DHCP en un router Cisco.

Leer

Funcionamiento básico de ansible

Ansible es un software que permite la configuración automatizada de equipos a través de la ejecución de reglas. En esta entrada se recogen algunos elementos fundamentales de esta herramienta.

Leer