¿Cómo resetear la password de ROOT en MYSQL o MariaDB
En caso de pérdida del acceso root en MYSQL, puedes seguir el siguiente procedimiento para recuperar la clave root. Este tutorial vale para versiones anteriores o nuevas de MYSQL o MariaDB
Requisito
Tener acceso de superusuario al servidor
Paso 1: Identificar la versión de la base de datos. Puedes utilizar la siguiente orden para identificar la versión de la base de datos que estás utilizando
1 |
mysql --version |
Verás la siguiente salida en consola, varía en función de la versión
Si se trata de MYSQL
mysql Ver 14.14 Distrib 5.7.16, para Linux (x86_64) usando el envoltorio EditLine
Si se trata de MariaDB
mysql Ver 15.1 Distrib 5.5.52-MariaDB, para Linux (x86_64) usando readline 5.1
Acuérdate de la versión que estás utilizando, luego tendrás que aplicar unos comandos u otros
Paso 2: Parar el servidor de base de datos
En el caso de MYSQL
1 |
sudo systemctl stop mysql |
En el caso de MariaDB
1 |
sudo systemctl stop mariadb |
Paso 3: Reiniciar el servidor de base de datos sin chequeo de permisos
Arranca el servidor en modo safe sin tabla de verificación de permisos con la siguiente orden.
1 |
sudo mysqld_safe --skip-grant-tables --skip-networking & |
Ahora te conectas al servidor como root sin contraseña
1 |
mysql -u raíz |
1 |
MariaDB [(ninguno)]> |
Paso 4: Cambiar la clave de root
Vamos a pedir al servidor que recargue las tablas GRANT con el siguiente comando
PRIVILEGIOS DE LAVADO;
Ahora podemos cambiar la clave
Para MySQL 5.7.5 y versiones anteriores así como MariaDB 10.1.20 y versiones anteriores, usar el siguiente comando:
1 |
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('nueva_clave'); |
Si ALTER USER no funciona, prueba el siguiente comando:
ACTUALIZAR
1 |
mysql.user SET authentication_string = PASSWORD ('nueva_clave') DONDE Usuario = 'root' AND Host = 'localhost'; |
FLUSH PRIVILEGES; (si no ha funcionado la primera vez)
salida
Consulta OK, 0 filas afectadas (0.00 seg)
La clave ha sido cambiada
Paso 5. Arrancar la base de datos manualmente
En MySQL,
1 |
sudo kill `cat / var / run / mysqld / mysqld.pid` |
1 |
sudo systemctl start mysql |
En MariaDB,
1 |
sudo kill `/ var / run / mariadb / mariadb.pid` |
1 |
sudo systemctl start mariadb |
Ahora prueba loggear en mysql con la nueva clave que has metido
1 |
mysql -u root -p |