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.rpm
Se 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 update
Durante 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-server
En Ubuntu:
apt-get install -y mysql-community-server
Nota: 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 mysqld
En Ubuntu (servicio mysql
):
systemctl start mysql
systemctl enable mysql
Compruebe que MySQL está escuchando en el puerto 3306 (puede usar netstat o ss):
netstat -plntu
Verifique si el servicio está habilitado en el arranque:
En CentOS:
systemctl is-enabled mysqld
En 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.log
Conéctese al shell de MySQL con la contraseña temporal:
mysql -u root -p
# escriba la contraseña temporal cuando se le solicite
Cambie 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_installation
y 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
root
solo 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 3306
Micro-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 mysqld
y los logs (journalctl -u mysqld -n 200
). - Contraseña temporal no encontrada — Asegúrese de revisar
/var/log/mysqld.log
con privilegios de root. - Selección del paquete en Ubuntu no correcta — vuelva a ejecutar
dpkg -i
y verifiqueapt-get update
. - Servicio no habilitado al arranque — vuelva a ejecutar
systemctl enable mysqld
omysql
segú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 mysqld
omysql
). - 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

Programas al inicio en Windows 10 — solución rápida

Eliminar apps preinstaladas en Android y iOS

Solucionar Dev Error 6068 en Warzone

Comprobar versión PowerShell en Windows

Instalar extensiones manualmente en Edge
