Instalar y configurar MySQL 5.7 en CentOS 7 y Ubuntu 16.04
Intención principal y variantes relacionadas
Este artículo explica cómo instalar y configurar MySQL 5.7 en servidores CentOS 7 y Ubuntu 16.04. Variantes relacionadas: instalar MySQL en Linux, configurar contraseña root en MySQL, habilitar servicio MySQL en el arranque, crear usuarios y bases de datos MySQL.
Requisitos previos
- Acceso como root o usuario con sudo en CentOS 7 / Ubuntu 16.04.
- Acceso a Internet para descargar el paquete del repositorio de MySQL.
- Tiempo estimado: 10–25 minutos según conectividad.
Paso 1: Añadir el repositorio oficial de MySQL
MySQL proporciona repositorios para distribuciones RPM y DEB con la versión estable más reciente. Añadir el repositorio facilita instalar la versión oficial y futuras actualizaciones.
En CentOS 7, agrega el paquete RPM del repositorio con yum:
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpmSe solicitará confirmación: escriba y y pulse Enter.
En Ubuntu 16.04, descargue e instale el paquete DEB y luego actualice la lista de paquetes:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.3-1_all.deb
dpkg -i mysql-apt-config_0.8.3-1_all.deb
apt-get updateDurante la instalación del paquete de repositorio en Ubuntu se le pedirá qué versión quiere instalar y qué herramientas adicionales incluir. Mantenga la selección por defecto (presione “Ok” y Enter si corresponde).

Un repositorio de MySQL habrá quedado agregado al sistema.
Paso 2: Instalar MySQL 5.7
Con el repositorio disponible, instale el paquete mysql-community-server desde el repositorio oficial.
En CentOS:
yum -y install mysql-community-serverEn Ubuntu:
apt-get install -y mysql-community-serverNota: en Ubuntu se le pedirá establecer la contraseña root durante la instalación; introduzca y repita una contraseña fuerte.
MySQL 5.7 quedará instalado tras completar el comando.
Paso 3: Iniciar MySQL y habilitar arranque automático
Inicie el servicio y habilítelo para que arranque automáticamente con systemd.
En CentOS (servicio mysqld):
systemctl start mysqld
systemctl enable mysqldEn Ubuntu (servicio mysql):
systemctl start mysql
systemctl enable mysqlCompruebe que MySQL está escuchando en el puerto 3306 (puede usar netstat o ss):
netstat -plntuVerifique si el servicio está habilitado en el arranque:
En CentOS:
systemctl is-enabled mysqldEn Ubuntu:
systemctl is-enabled mysql
Si el resultado es enabled, el servicio se iniciará automáticamente al arrancar el sistema.
Paso 4: Configurar o restablecer la contraseña root de MySQL
Comportamiento por distribución:
- Ubuntu: el instalador le habrá pedido la contraseña root durante la instalación; normalmente no es necesario restablecerla inmediatamente.
- CentOS 7: MySQL genera una contraseña temporal por defecto la primera vez que arranca. Esa contraseña aparece en el fichero de log
mysqld.log.
En CentOS, encuentre la contraseña temporal con:
grep 'temporary' /var/log/mysqld.logConéctese al shell de MySQL con la contraseña temporal:
mysql -u root -p
# escriba la contraseña temporal cuando se le soliciteCambie la contraseña root por una nueva y fuerte (ejemplo):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NuevaContraseñaSegura123!';
FLUSH PRIVILEGES;Esta consulta cambia la contraseña del usuario root para conexiones desde localhost.

Nota: también puede usar la utilidad mysql_secure_installation después de la instalación para eliminar usuarios anónimos, deshabilitar el acceso remoto de root y eliminar la base de datos de prueba.
Paso 5: Pruebas — crear base de datos y usuario
Conéctese al shell de MySQL usando la nueva contraseña root:
mysql -u root -p
# escribir la contraseña: NuevaContraseñaSegura123!Creación de una base de datos y un usuario de ejemplo:
CREATE DATABASE hakaselabs;
CREATE USER 'hakase'@'localhost' IDENTIFIED BY 'Hakase123@';
GRANT ALL PRIVILEGES ON hakaselabs.* TO 'hakase'@'localhost';
FLUSH PRIVILEGES;Salga del shell y pruebe conectar con el nuevo usuario:
mysql -u hakase -p
# escribir la contraseña: Hakase123@Verifique las bases de datos visibles para ese usuario:
SHOW DATABASES;Debería ver hakaselabs en la lista.

Buenas prácticas y endurecimiento de seguridad (recomendado)
Siguientes pasos recomendados tras la instalación inicial:
- Ejecutar
mysql_secure_installationy responder a las preguntas para reforzar la instalación. - Eliminar usuarios anónimos y la base de datos de pruebas.
- Deshabilitar el acceso remoto de root: asegúrese de que
rootsolo tenga acceso desdelocalhost. - Configurar autenticación fuerte y políticas de contraseña en su aplicación.
- Restringir el puerto 3306 en el firewall solo a hosts confiables.
- Habilitar copias de seguridad regulares (mysqldump, mysqlpump, o snapshots dependientes del almacenamiento).
Comandos útiles:
mysql_secure_installation
systemctl status mysqld
journalctl -u mysqld -n 200
ss -plntu | grep 3306Micro-metodología sugerida (mini-SOP)
- Añadir repositorio → 2. Instalar paquete
mysql-community-server→ 3. Iniciar servicio y habilitar en arranque → 4. Cambiar contraseña root y ejecutarmysql_secure_installation→ 5. Crear DB/usuario y probar conexión → 6. Hacer copia de seguridad.
Checklist por rol
Admin/Sysadmin:
- Añadir repositorio correcto
- Instalar paquete oficial
- Iniciar servicio y habilitar en arranque
- Guardar contraseña root en almacén seguro
- Comprobar logs y estado del servicio
Desarrollador:
- Crear esquema de base de datos de prueba
- Crear cuentas de usuario con privilegios mínimos
- Probar conexión desde la aplicación
- Ejecutar consultas de rendimiento simples
Oficial de seguridad:
- [ ] Ejecutar
mysql_secure_installation - Revisar usuarios y permisos
- Restringir acceso de red al puerto 3306
- Programar auditorías y copias de seguridad
Caja de datos clave
- Versión objetivo: MySQL 5.7
- Puerto por defecto: 3306
- Paquete principal: mysql-community-server
- Sistema init: systemd (
systemctl) en CentOS 7 y Ubuntu 16.04
Problemas comunes y soluciones rápidas
- Error: “Can’t connect to local MySQL server” — Verifique
systemctl status mysqldy los logs (journalctl -u mysqld -n 200). - Contraseña temporal no encontrada — Asegúrese de revisar
/var/log/mysqld.logcon privilegios de root. - Selección del paquete en Ubuntu no correcta — vuelva a ejecutar
dpkg -iy verifiqueapt-get update. - Servicio no habilitado al arranque — vuelva a ejecutar
systemctl enable mysqldomysqlsegún distribución.
Glosario (una línea)
- Repositorio: fuente de paquetes del sistema que contiene el instalador de MySQL.
- mysqld: demonio del servidor MySQL.
- systemctl: herramienta de systemd para controlar servicios.
Criterios de comprobación
- MySQL 5.7 instalado (comprobar
mysql --version). - Servicio activo y habilitado (
systemctl is-enabled mysqldomysql). - Root con contraseña conocida y segura.
- Usuario de aplicación creado con permisos adecuados.
- Conexión desde la aplicación o cliente confirmada.
Resumen
Has añadido el repositorio oficial, instalado MySQL 5.7, habilitado el servicio para que arranque con el sistema, cambiado la contraseña root (si era necesario) y creado un usuario y base de datos de prueba. Se recomienda ejecutar mysql_secure_installation y configurar copias de seguridad y reglas de firewall.
Referencia
https://dev.mysql.com/doc/refman/5.7/en/linux-installation.html
Materiales similares
Podman en Debian 11: instalación y uso
Apt-pinning en Debian: guía práctica
OptiScaler: inyectar FSR 4 en casi cualquier juego
Dansguardian + Squid NTLM en Debian Etch
Arreglar error de instalación Android en SD