Blog

Jueves, 28 Septiembre 2017 07:58

¿Cómo resetear la password de ROOT en MYSQL o MariaDB

Esrito por 

¿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

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, for Linux (x86_64) using  EditLine wrapper

Si se trata de MariaDB

mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using 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

sudo systemctl stop mysql

En el caso de MariaDB

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.

sudo mysqld_safe --skip-grant-tables --skip-networking &

 

El carácter & sirve para ejecutar el comando anterior en background.

 

Ahora te conectas al servidor como root sin contraseña

mysql -u root

 

Ahora tiene que salir la consola de MySQL

MySQL prompt

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql>

MariaDB prompt

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

MariaDB [(none)]>

Now that you have root access, you can change the root password.

 

Paso 4: Cambiar la clave de root

Una simple manera de cambiar la clave de root para versiones modernas de MYSQL is usar el comando ALTER USER. Pero no va a funcionar, porque la tabla GRANT no está cargada. 

Vamos a pedir al servidor que recargue las tablas GRANT con el siguiente comando

FLUSH PRIVILEGES;

Ahora podemos cambiar la clave

 

Para MySQL 5.7.6 y versiones posteriores así como MariaDB 10.1.20 y versiones posteriores, usar el siguiente comando:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'nueva_clave';

 

Para MySQL 5.7.5 y versiones anteriores así como MariaDB 10.1.20 y versiones anteriores, usar el siguiente comando:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('nueva_clave');

 

Tienes que reemplazar donde pone nueva_clave, 

 

Si ALTER USER no funciona, prueba el siguiente comando:

UPDATE mysql.user SET authentication_string = PASSWORD('nueva_clave') WHERE User = 'root' AND Host = 'localhost';

FLUSH PRIVILEGES; (si no ha funcionado la primera vez)

 

Si todo ha ido bien, veremos el resultado en la consola

 

Output

Query OK, 0 rows affected (0.00 sec)

 

La clave ha sido cambiada

 

Paso 5. Arrancar la base de datos manualmente

 

En MySQL, 

sudo kill `cat /var/run/mysqld/mysqld.pid`

sudo systemctl start mysql

 

En MariaDB,

sudo kill `/var/run/mariadb/mariadb.pid`

sudo systemctl start mariadb

 

Ahora prueba loggear en mysql con la nueva clave que has metido

mysql -u root -p

 

 

Leer 20858 times

Sobre CNERIS

CNERIS es una empresa constituida por jóvenes emprendedores procedentes de diferentes sectores del mundo de la información. Nuestro equipo está compuesto por programadores, administradores de sistemas, administradores de base de datos, diseñadores gráficos, maquetadores,