Cómo recuperar la contraseña de ROOT en MySQL o MariaDB

Fecha: 27/06/2018
MySQL y MariaDB son los dos sistemas de bases de datos más utilizados en entornos web, ya que normalmente las aplicaciones y CMS desarrollados en PHP como WordPress, Joomla y Prestashop utilizan estos sistemas de bases de datos. Por esa razón, los planes de hosting compartido (como por ejemplo nuestros planes de hosting para webs en WordPress) siempre llevan uno de estos motores de bases de datos.

mysql

MySQL y MariaDB son dos sistemas muy personalizables y es posible optimizarlos para mejorar el rendimiento. Son configurables, aunque para esto debemos de tener los conocimientos suficientes en administración de sistemas Linux (también puedes contratarnos a nosotros como sysadmins Linux).

En este caso, vamos a explicar cómo recuperar el acceso root a MySQL si por algún motivo habéis perdido la password de root y no podéis acceder ni por consola ni por phpMyAdmin. Con este proceso conseguirás  recuperar la contraseña de MySQL o MariaDB.

Debemos de tener en cuenta que necesitamos acceso al terminal de Linux de tu servidor, es decir, que solo podrás hacer esto en servidores VPS o servidores dedicados en los que tengas acceso como administrador o ROOT. En hosting compartido no es posible recuperar la contraseña de ROOT de MySQL.

En caso de tener acceso por ROOT al terminal del servidor, antes de nada hay que parar el servicio MySQL y arrancarlo en modo seguro utilizando los siguientes comandos:
/etc/init.d/mysqld stop
mysqld_safe –skip-grant-tables &

Ahora intentaremos entrar como root y NO nos pedirá contraseña al estar arrancado el servicio en modo seguro:
mysql -u root

Ahora seleccionamos la tabla que contiene los permisos de MySQL:
use mysql;

Y modificamos directamente el password o contraseña del usuario root ejecutando la siguiente orden:
update user set password=PASSWORD("nueva-contraseña") where User='root';

Hacemos que se vuelvan a cargar los privilegios / permisos y salimos de la sesión:
flush privileges;
quit

Por último nos quedará arrancar de nuevo el servicio de MySQL o MariaDB:
/etc/init.d/mysqld start

Con esto, hemos conseguido restablecer la contraseña del usuario root con lo que ya podemos volver a acceder normalmente usando la nueva contraseña.

Como ves, el proceso es bastante sencillo, pero hay que tener en cuenta que cuando cambiamos la contraseña de ROOT de MySQL, en algunos casos y con algunos servicios o paneles de control, es posible que tengamos problemas hasta que no realicemos una reconfiguración. Esto se debe a que algunos servicios o paneles de control que gestionan MySQL o MariaDB utilizan el acceso como administrador o ROOT para la gestión del motor de bases de datos. Por eso, es posible que tengamos que cambiar parámetros en la configuración de estos para poner la nueva contraseña de ROOT que hemos puesto en MySQL o MariaDB.
Álvaro Fontela
Álvaro Fontela

Alvaro Fontela es consultor WordPress especializado en WPO y rendimiento web, además de co-fundador y CEO de Raiola Networks.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Tenemos 9 comentarios en Cómo recuperar la contraseña de ROOT en MySQL o MariaDB
Avatar del autor del comentario

Patoo

04/02/2020 a las 03:57

debian 10




/etc/init.d/mysqld stop


-bash: /etc/init.d/mysqld: No existe el fichero o el directorio

Responder
Avatar del autor del comentario

Héctor Luaces

12/02/2020 a las 23:09

hola, patoo:

si usas Buster con systemd prueba: "systemctl stop mysql" o "systemctl stop mariadb" en función de que motor uses.

Un saludo.

Responder
Avatar del autor del comentario

Mark

15/04/2020 a las 20:00
Si estás utilizando una distribución basada en Debian / Ubuntu:
Para detener el servicio –>/etc/init.d/mysql stop
Para iniciar el servicio –> /etc/init.d/mysql start
Responder
Avatar del autor del comentario

VipSistemas.Vzla

22/04/2020 a las 12:12
Buen post, por favor para un ambiente windows, como podemos proceder ? Gracias anticipadas
Responder
Avatar del autor del comentario

Alvaro Fontela

23/04/2020 a las 20:06
Hola, la verdad es que no sabría decirte, ya que no trabajamos con sistemas Windows :(
Responder
Avatar del autor del comentario

Vicente

27/05/2020 a las 13:25
Excelente, me salvó la patria (como decimos en Venezuela)
Responder
Avatar del autor del comentario

Alvaro Fontela

01/06/2020 a las 00:55
Gracias por leernos Vicente :)
Responder
Avatar del autor del comentario

Enrique

30/08/2020 a las 20:06
hola

me aparece esto...

[root@localhost ~]# mysqld_safe –skip-grant-tables &
[1] 48795
-bash: amp: command not found
[root@localhost ~]# 200830 19:04:04 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
200830 19:04:04 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

[1]+ Done mysqld_safe –skip-grant-tables
Responder
Avatar del autor del comentario

Alvaro Fontela

03/09/2020 a las 16:42
Hola Enrique, el comando esta mal, pero no consigo que el plugin con el que meto los "quotes" no me la corrija.

Intenta hacerlo con este comando:


/etc/init.d/mysqld stop mysqld_safe –skip-grant-tables &

No se si te lo pillara bien, al copiar estos comandos a veces ocurren estas cosas.
Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *