Cómo instalar el motor de base de datos gratuito MySQL Server 8 en un equipo con sistema operativo Rocky Linux 8. Mostramos cómo configurar MySQL Server y Rocky Linux para permitir conexiones a MySQL desde equipos remotos (externos).
- Instalar MySQL Server 8 en Rocky Linux 8.
- Configurar acceso remoto a MySQL Server en equipo Rocky Linux.
Instalar MySQL Server 8 en Rocky Linux 8
Ejecutaremos el siguiente comando Linux, que por defecto instalará la última versión estable de MySQL Server disponible en los repositorios. En nuestro caso, instalará la versión MySQL Server 8.0.32:
1 |
sudo dnf install mysql-server |

Tras la instalación, iniciaremos el servicio de MySQL Server, con el comando:
1 |
sudo systemctl start mysqld.service |
Revisaremos que el servicio mysqld está correctamente iniciado con el comando:
1 |
sudo systemctl status mysqld |
Que nos devolverá algo así como:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
● mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2023-10-03 22:13:34 CEST; 1s ago Process: 30326 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS) Process: 30205 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS) Process: 30181 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS) Main PID: 30281 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 23216) Memory: 462.1M CGroup: /system.slice/mysqld.service └─30281 /usr/libexec/mysqld --basedir=/usr oct 03 22:13:24 svrocky systemd[1]: Starting MySQL 8.0 database server... oct 03 22:13:24 svrocky mysql-prepare-db-dir[30205]: Initializing MySQL database oct 03 22:13:34 svrocky systemd[1]: Started MySQL 8.0 database server. |
Estableceremos el servicio mysqld para que se inicie cuando arranque el equipo, con el comando:
1 |
sudo systemctl enable mysqld |

Realizaremos la configuración inicial de MySQL Server, ejecutando el comando:
1 |
sudo mysql_secure_installation |
Responderemos a las preguntas que nos va haciendo el asistente:
- Would you like to setup VALIDATE PASSWORD component?
- New password:
- Re-enter new password:
- Remove anonymous users?
- Disallow root login remotely?
- Remove test database and access to it?
- Reload privilege tables now?
Responderemos lo que consideremos en función del uso que vayamos a darle al servidor de base de datos MySQL:

Comprobaremos que MySQL ha quedado instalado, ejecutando:
1 |
mysqladmin -u root -p version |
Que conectará con la base de datos y obtendrá la versión, devolviendo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
mysqladmin Ver 8.0.32 for Linux on x86_64 (Source distribution) Copyright (c) 2000, 2023, 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. Server version 8.0.32 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 11 min 1 sec Threads: 2 Questions: 10 Slow queries: 0 Opens: 133 Flush tables: 3 Open tables: 49 Queries per second avg: 0.015 |

Y para acceder a la consola de comandos de MySQL, ejecutaremos:
1 |
mysql -u root -p |
Nos solicitará la contraseña del usuario root de MySQL (establecida anteriormente) y tendremos acceso al shell de MySQL. Por ejemplo, podremos listar las bases de datos (catálogos) del servidor, ejecutando el comando MySQL:
1 |
show databases; |
Podremos acceder a una de las bases de datos, con el comando:
1 |
use mysql; |
Y mostrar todas las tablas del catálogo al que hemos accedido, con:
1 |
show tables; |

Con el comando «exit» saldremos del shel de MySQL al shell de Rocky Linux.
Configurar acceso remoto a MySQL Server en equipo Rocky Linux
En primer lugar, si tenemos habilitado el cortafuegos de Rocky Linux, deberemos añadir una regla para abrir el puerto 3306 (el de defecto de MySQL). Para comprobar si tenemos habilitado el cortafuegos en Rocky Linux, ejecutaremos el siguiente comando:
1 |
sudo systemctl status firewalld |
Si está iniciado, nos mostrará: Active: active (running).
Para abrir el acceso por el puerto 3306, desde cualquier IP, ejecutaremos el comando:
1 |
sudo firewall-cmd --zone=public --permanent --add-port 3306/tcp |
A continuación, configuraremos un usuario en MySQL con acceso remoto, para ello, desde el shell de comandos de Linux, para conectarnos a MySQL, ejecutaremos:
1 |
mysql -u root -p |
Una vez conectados, crearemos un usuario, que será el usuario con el que accedamos de forma remota a MySQL. En este ejemplo, creamos un usuario llamado «alonso», con la contraseña «aaaaaaaa» y solo permitimos el acceso desde un equipo con IP 192.168.1.10:
1 |
CREATE USER 'alonso'@'192.168.1.10' IDENTIFIED BY 'aaaaaaaa'; |
Asignamos los privilegios que deseemos a este usuario (tanto acciones que puede realizar como a qué catálogos/bases de datos puede acceder). Por ejemplo, para permitir cualquier acción (ALL) a cualquier base de datos y cualquier tabla de la base de datos (*.*) para el usuario creado anteriormente «alonso», ejecutaremos:
1 |
GRANT ALL ON *.* TO 'alonso'@'192.168.1.10' WITH GRANT OPTION; |
En cambio, si queremos limitar el usuario, para que acceda únicamente a la base de datos «mysql» y que sólo pueda ejecutar SELECT e INSERT, para todas las tablas de la base de datos «mysql», ejecutaríamos:
1 |
GRANT SELECT, INSERT ON mysql.* TO 'alonso'@'192.168.1.10' WITH GRANT OPTION; |
Aplicaremos los permisos ejecutando:
1 |
flush privileges; |

Ahora ya podremos conectarnos desde un equipo externo (remoto), en nuestro ejemplo desde el equipo con IP 192.168.1.10. Para la conexión al servidor MySQL con Rocky Linux, podemos usar cualquier cliente compatible con MySQL, como el propio MySQL Workbench. Introduciremos los datos de conexión: IP del servidor, usuario creado anteriormente, contraseña, puerto, etc. y pulsaremos en «Test Connection»:

Si la conexión es correcta, nos devolverá el siguiente mensaje:

En caso de no realizar este proceso, al intentar acceder al servidor MySQL desde un equipo externo, nos mostrará el error:
Failed to Connect to MySQL at 192.168.1.224:3306 with user root. Host ‘192.168.1.10’ is not allowed to connect to this MySQL server.