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 newpassSi 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 newpassIntroduce 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_installationResponde 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.

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 newpassLas 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:
- Inicia sesión en el servidor MySQL, escribe el siguiente comando en el símbolo del sistema:
mysql -u root -p- Usa la base de datos mysql (escribe comandos en el aviso mysql>):
mysql> use mysql;- 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");- Recarga privilegios:
mysql> flush privileges;
mysql> quitEste 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 stopSalida:
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]: iniciadoPaso # 3: Conéctate al servidor MySQL usando el cliente MySQL:
mysql -u rootSalida:
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> quitMySQL 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 stopSalida:
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-tablesO usa este comando para detener MySQL si el comando anterior no logra detenerlo (qué comando funciona depende de la versión de MySQL):
killall mysqldLa 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 -pRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.