🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo restablecer la contraseña de root de MySQL desde SSH (cPanel/Plesk/DirectAdmin)

Actualizado el 28 de diciembre de 2025

¿Cuándo necesitas restablecer la contraseña de root de MySQL?

Olvidar la contraseña de root de MySQL es más común de lo que parece. Puede ocurrir tras un cambio mal guardado, una migración de servidor o simplemente porque pasó mucho tiempo desde la última vez que la usaste. Sin acceso a root, no podrás administrar bases de datos, crear usuarios nuevos ni realizar tareas de mantenimiento críticas.

La buena noticia es que, si tienes acceso SSH a tu servidor, puedes restablecer la contraseña de root de MySQL en pocos minutos, sin importar si usas cPanel, Plesk o DirectAdmin. En esta guía te explicaré paso a paso cómo hacerlo, con comandos seguros y verificados para cada panel de control.


Antes de empezar: requisitos y advertencias importantes

Para seguir este tutorial necesitas:

  • Acceso SSH a tu servidor (usuario root o un usuario con privilegios sudo).
  • Conocimientos básicos de navegación por terminal.
  • Acceso al panel de control (aunque solo sea para verificar el cambio).

[WARNING]
Si tu servidor usa cPanel, el archivo de configuración de MySQL puede sobrescribir tus cambios si no usas el comando correcto. No saltes pasos y sigue las instrucciones específicas para tu panel.

[INFO]
Este proceso detiene el servicio MySQL temporalmente. Si tienes sitios web en producción, el tiempo de inactividad será de 2 a 5 minutos como máximo. Te recomiendo hacerlo en horario de bajo tráfico.


Método universal: restablecer contraseña root MySQL sin panel

Este método funciona en la mayoría de servidores, independientemente del panel. Lo usaremos como base y luego veremos las particularidades de cada uno.

Paso 1: Accede por SSH

Conéctate a tu servidor usando tu cliente SSH favorito (PuTTY, Terminal, etc.):

ssh root@tu-servidor.com

O si usas un usuario con privilegios:

ssh usuario@tu-servidor.com
sudo su -

Paso 2: Detén el servicio MySQL

Primero, identifica el nombre del servicio. Dependiendo de tu sistema, puede ser mysql, mysqld o mariadb:

systemctl stop mysql

Si ese comando falla, prueba:

systemctl stop mysqld

O para MariaDB:

systemctl stop mariadb

Paso 3: Inicia MySQL en modo seguro

Vamos a iniciar MySQL sin verificar permisos, lo que nos permitirá conectarnos sin contraseña:

mysqld_safe --skip-grant-tables &

[TIP]
En algunos sistemas, el comando es mysqld_safe y en otros service mysql start --skip-grant-tables. Si el primero no funciona, prueba con este último.

Paso 4: Conéctate a MySQL

Ahora conéctate sin contraseña:

mysql -u root

Deberías ver el prompt de MySQL (mysql>).

Paso 5: Cambia la contraseña de root

Ejecuta estos comandos uno por uno:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuNuevaContraseñaSegura';
FLUSH PRIVILEGES;

[INFO]
En versiones antiguas de MySQL (5.6 o anteriores), el comando cambia:

UPDATE mysql.user SET Password=PASSWORD('TuNuevaContraseña') WHERE User='root';
FLUSH PRIVILEGES;

Usa una contraseña fuerte con mayúsculas, minúsculas, números y símbolos. Por ejemplo: MySqL_R00t_2024!

Paso 6: Sal y reinicia MySQL

EXIT;

Ahora detén el proceso seguro y reinicia el servicio normalmente:

killall mysqld
systemctl start mysql

Paso 7: Verifica el cambio

mysql -u root -p

Te pedirá la nueva contraseña. Si accedes, ¡felicidades! Has logrado cambiar contraseña mysql ssh correctamente.


cPanel: método específico para restablecer contraseña root MySQL

cPanel tiene una peculiaridad: su archivo /root/.my.cnf contiene la contraseña de root y puede sobrescribir tus cambios. Por eso, el método para cPanel es ligeramente diferente.

Paso 1: Accede por SSH y detén MySQL

ssh root@tu-servidor
systemctl stop mysql

Paso 2: Inicia en modo seguro

mysqld_safe --skip-grant-tables &

Paso 3: Cambia la contraseña

mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuNuevaContraseñaSegura';
FLUSH PRIVILEGES;
EXIT;

Paso 4: Actualiza el archivo de configuración de cPanel

Este paso es CRÍTICO. cPanel guarda la contraseña en /root/.my.cnf y si no la actualizas, el panel usará la vieja:

nano /root/.my.cnf

Verás un contenido similar a:

[client]
user=root
password="ContraseñaVieja"

Cambia la contraseña por la nueva y guarda (Ctrl+O, luego Ctrl+X).

Paso 5: Reinicia MySQL

killall mysqld
systemctl start mysql

Paso 6: Verifica desde cPanel

Entra a WHM → "SQL Services" → "MySQL Root Password" y verifica que la contraseña coincida. Si todo está bien, podrás gestionar la cpanel mysql root password sin problemas.

[WARNING]
No uses WHM para cambiar la contraseña de root mientras el servicio está detenido. Hazlo solo después de completar este proceso.


Plesk: restablecer contraseña root MySQL paso a paso

Plesk utiliza su propio sistema de gestión de bases de datos, pero el proceso es similar al método universal.

Paso 1: Accede por SSH

ssh root@tu-servidor

Paso 2: Detén MySQL

systemctl stop mysql

Paso 3: Modo seguro

mysqld_safe --skip-grant-tables &

Paso 4: Cambia la contraseña

mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuNuevaContraseñaSegura';
FLUSH PRIVILEGES;
EXIT;

Paso 5: Reinicia el servicio

killall mysqld
systemctl start mysql

Paso 6: Actualiza Plesk

Plesk almacena la contraseña en su configuración. Ejecuta:

plesk bin database --set-root-password -passwd "TuNuevaContraseñaSegura"

[TIP]
Si usas Plesk con MariaDB, el comando es el mismo, pero verifica que el servicio se llame mariadb en lugar de mysql.


DirectAdmin: cambiar contraseña root MySQL fácilmente

DirectAdmin tiene un sistema de gestión de servicios más simple, y el método es casi idéntico al universal.

Paso 1: SSH y detener MySQL

ssh root@tu-servidor
systemctl stop mysql

Paso 2: Modo seguro

mysqld_safe --skip-grant-tables &

Paso 3: Cambia la contraseña

mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuNuevaContraseñaSegura';
FLUSH PRIVILEGES;
EXIT;

Paso 4: Reinicia

killall mysqld
systemctl start mysql

Paso 5: Actualiza DirectAdmin

DirectAdmin guarda la contraseña en su panel. Entra a DirectAdmin como admin → "MySQL Management" → "Change MySQL Admin Password" e introduce la nueva contraseña.


Syspanel (HestiaCP): método especial

Si tu servidor usa Syspanel (anteriormente conocido como HestiaCP), el proceso es similar pero con un detalle extra: el acceso al panel se realiza a través del puerto 2106.

Paso 1: Accede por SSH

ssh root@tu-servidor

Paso 2: Detén MySQL

systemctl stop mysql

Paso 3: Modo seguro

mysqld_safe --skip-grant-tables &

Paso 4: Cambia la contraseña

mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TuNuevaContraseñaSegura';
FLUSH PRIVILEGES;
EXIT;

Paso 5: Reinicia y actualiza

killall mysqld
systemctl start mysql

Para actualizar la contraseña en Syspanel, accede a https://tu-servidor:2106 y entra como admin. Luego ve a "Server" → "Databases" y actualiza la contraseña de root.

[INFO]
Syspanel permite gestionar múltiples servidores de bases de datos. Si tienes más de uno, repite el proceso en cada servidor.


Solución de problemas comunes

"Access denied for user 'root'@'localhost'"

Si al intentar conectar sin contraseña te sale este error, significa que el modo seguro no se inició correctamente. Verifica que el proceso mysqld_safe esté corriendo:

ps aux | grep mysqld

Si no aparece, repite el paso 3 del método universal.

"Can't connect to local MySQL server through socket"

Este error indica que MySQL no está corriendo. Asegúrate de haber iniciado el modo seguro correctamente y que no hay conflictos de puertos.

El panel sigue usando la contraseña vieja

Esto ocurre cuando el panel guarda la contraseña en su propia configuración. Revisa los pasos específicos para cPanel, Plesk o DirectAdmin y actualiza la contraseña en el panel.

MySQL no arranca después del cambio

Si el servicio no inicia, revisa los logs:

tail -f /var/log/mysql/error.log

Preguntas frecuentes (FAQ)

¿Puedo restablecer la contraseña sin acceso SSH?

No, necesitas acceso SSH para este método. Si no tienes SSH, contacta con tu proveedor de hosting.

¿Cuánto tiempo tarda el proceso?

Entre 5 y 10 minutos, dependiendo de la velocidad del servidor y tu experiencia.

¿Perderé mis bases de datos al cambiar la contraseña?

No. Este proceso solo cambia la contraseña, no afecta los datos.

¿Qué hago si el comando ALTER USER falla?

Usa el método de UPDATE para MySQL antiguo:

UPDATE mysql.user SET authentication_string=PASSWORD('TuNuevaContraseña') WHERE User='root';
FLUSH PRIVILEGES;

¿Puedo usar esta guía para MariaDB?

Sí, el proceso es idéntico, solo cambia el nombre del servicio (mariadb en lugar de mysql).


Consejos finales de seguridad

Después de restablecer contraseña root mysql, te recomiendo:

  1. Guarda la contraseña en un gestor de contraseñas seguro.
  2. Crea un usuario administrativo separado para tareas diarias, evitando usar root.
  3. Configura copias de seguridad automáticas de tus bases de datos.
  4. Cambia la contraseña periódicamente (cada 3-6 meses).

[TIP]
Si tienes múltiples servidores, considera usar una herramienta de gestión centralizada como Ansible para automatizar este proceso en el futuro.


Conclusión

Restablecer la contraseña de root de MySQL desde SSH es un proceso sencillo si sigues los pasos correctos. La clave está en identificar qué panel de control usas y aplicar el método adecuado. Ya sea que uses cPanel, Plesk, DirectAdmin o Syspanel, ahora tienes las herramientas para resolver este problema sin necesidad de contactar con soporte técnico.

Recuerda siempre trabajar con calma, verificar cada paso y tener un backup reciente antes de hacer cambios importantes. Si has llegado hasta aquí, ya sabes cómo cambiar contraseña mysql ssh como un profesional. ¡Buena suerte!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel