MySQL · 5 min read · Feb 13, 2026

Configuración, Cambio y Restablecimiento de Contraseñas de Root en MySQL y MariaDB

Este tutorial explica cómo puedes establecer, cambiar y restablecer (si has olvidado la contraseña) las contraseñas de root de MySQL o MariaDB. Una y otra vez veo problemas como el error mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’. Así que pensé que era hora de recordarte cómo resolver problemas de contraseñas relacionados con MySQL. Si solo estás buscando una solución rápida cómo restablecer una contraseña de root de MySQL, puedes encontrar eso al final de este tutorial. Este tutorial es compatible con todas las principales distribuciones de Linux, incluidas CentOS, Debian, Fedora y Ubuntu.

Usa el Comando mysqladmin para Cambiar la Contraseña de Root

Método 1 - Establecer una contraseña de root por primera vez

Si nunca has establecido una contraseña de root para MySQL, el servidor no requiere una contraseña en absoluto para conectarse como root. Para establecer una contraseña de root por primera vez, usa el comando mysqladmin en el símbolo del sistema de la siguiente manera:

mysqladmin -u root password newpass

Si deseas cambiar (o actualizar) una contraseña de root a la nueva contraseña ‘ newpass ‘, entonces necesitas usar el siguiente comando:

mysqladmin -u root -p password newpass
Introduce la contraseña:

Si obtienes…

mysqladmin: connect to server at 'localhost' failed  
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

entonces sigue las instrucciones a continuación sobre cómo recuperar tu contraseña de MySQL.

La palabra ‘ password ‘ en el ejemplo anterior es parte del comando, no la reemplaces con tu contraseña. La palabra ‘ newpass ‘ es la nueva contraseña.

Una alternativa a usar el comando mysqladmin al establecer la contraseña de root de MySQL o MariaDB por primera vez es usar el comando mysql_secure_installation. Este comando no solo pedirá la antigua y nueva contraseña de root de MySQL, sino que también realizará algunas otras configuraciones de seguridad, como deshabilitar la base de datos de prueba.

Aquí está cómo usar ese comando:

mysql_secure_installation

Responde las preguntas como se muestra a continuación:

¿Cambiar la contraseña de root? [Y/n] <-- y  
Nueva contraseña: <-- Introduce una nueva contraseña de root de MySQL  
Reingresa la nueva contraseña: <-- Repite la contraseña de root de MySQL  
¿Eliminar usuarios anónimos? [Y/n] <-- y  
¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <-- y  
¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] <-- y  
¿Recargar las tablas de privilegios ahora? [Y/n] <-- y  

Las respuestas anteriores son recomendaciones, eres libre de elegir otras configuraciones, por ejemplo, cuando prefieres mantener las bases de datos de prueba o necesitas acceso remoto para el usuario root. Nota: no necesitas acceso remoto para usar PHPMyAdmin de forma remota.

Usa mysql_secure_installation para cambiar la contraseña de root de MySQL

Cambiar la contraseña de MySQL para otros usuarios

Para cambiar la contraseña de un usuario normal, necesitas escribir:

mysqladmin -u user-name -p password newpass

Las variables en este ejemplo son:

  • user-name: El nombre de usuario del usuario para el que deseas cambiar la contraseña.
  • newpass: La nueva contraseña

La palabra ‘password’ no es una variable, así que no la reemplaces. El comando pedirá la antigua contraseña.

Método 2 - Actualizar o cambiar la contraseña

MySQL almacena nombres de usuario y contraseñas en la tabla de usuarios dentro de la base de datos MySQL. Puedes actualizar directamente una contraseña usando el siguiente método para actualizar o cambiar contraseñas:

  1. Inicia sesión en el servidor MySQL, escribe el siguiente comando en el símbolo del sistema:
mysql -u root -p
  1. Usa la base de datos mysql (escribe comandos en el aviso mysql>):
mysql> use mysql;
  1. Cambia la contraseña para un usuario:

MySQL 5.7.5 y anteriores

mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';

MySQL 5.7.6 y más recientes

mysql> SET PASSWORD FOR 'ENTER-USER-NAME-HERE'@'localhost' = PASSWORD("newpass");
  1. Recarga privilegios:
mysql> flush privileges;  
mysql> quit

Este método debes usar mientras usas PHP o Perl scripting.

Recuperar la contraseña de root de MySQL perdida

Puedes recuperar una contraseña del servidor de base de datos MySQL con los siguientes cinco pasos fáciles:

Paso # 1: Detén el proceso del servidor MySQL.

Paso # 2: Inicia el proceso del servidor/daemon MySQL (mysqld) con la opción –skip-grant-tables para que no pida una contraseña.

Paso # 3: Conéctate al servidor MySQL como el usuario root.

Paso # 4: Establece una nueva contraseña de root.

Paso # 5: Sal y reinicia el servidor MySQL.

Aquí están los comandos que necesitas escribir para cada paso (inicia sesión como el usuario root):

Paso # 1: Detén el servicio MySQL:

service mysql stop

Salida:

Deteniendo el servidor de base de datos MySQL: mysqld.

Paso # 2: Inicia el servidor MySQL sin contraseña:

mysqld_safe --skip-grant-tables &

Salida:

[1] 5988  
Iniciando el daemon mysqld con bases de datos de /var/lib/mysql  
mysqld_safe[6025]: iniciado

Paso # 3: Conéctate al servidor MySQL usando el cliente MySQL:

mysql -u root

Salida:

Bienvenido al monitor de MySQL. Los comandos terminan con ; o \g.  
Tu id de conexión MySQL es 56299  
Versión del servidor: 5.6.34-1 (Debian)
Copyright (c) 2000, 2016, Oracle y/o sus afiliados. Todos los derechos reservados.
Oracle es una marca registrada de Oracle Corporation y/o sus  
afiliados. Otros nombres pueden ser marcas comerciales de sus respectivos  
propietarios.
Escribe 'help;' o '\h' para ayuda. Escribe '\c' para limpiar la declaración de entrada actual.
  
mysql>

Paso # 4: Establece una nueva contraseña de usuario root de MySQL:

MySQL 5.7.5 y anteriores

mysql> use mysql;  
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';  
mysql> flush privileges;  
mysql> quit

MySQL 5.7.6 y más recientes

mysql> use mysql;  
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");  
mysql> flush privileges;  
mysql> quit  

Paso # 5: Detén el servidor MySQL:

service mysql stop

Salida:

Deteniendo el servidor de base de datos MySQL: mysqld  
DETENIENDO el servidor desde el archivo pid /var/run/mysqld/mysqld.pid  
mysqld_safe[6186]: finalizado  
  
[1]+  Hecho                mysqld_safe --skip-grant-tables

O usa este comando para detener MySQL si el comando anterior no logra detenerlo (qué comando funciona depende de la versión de MySQL):

killall mysqld

La salida puede diferir según la distribución de Linux. No te preocupes a menos que informe un error. Inicia el servidor MySQL y pruébalo:

service mysql start  
mysql -u root -p
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.