En este post os explico cómo podéis resetear la contraseña del usuario root, en casa de pérdida u olvido y que por lo tanto, a no ser que tuvieseis otro usuario, no podéis entrar en el cli de mysql, para administrar vuestras bases de datos.
Los pasos a seguir son los siguientes:
0. Convertirnos en root:
# su -
1. Parar el servicio mysqld:# systemctl stop mysqld
2. Establecer las siguientes variables de entorno de MySQL:# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Volver a arrancar el servicio mysqld, pero esta vez cargará las variables que le hemos aplicado:# systemctl start mysqld
4. Iniciar sesión cómo root (sin contraseña):# mysql -u root
5. Actualizar la contraseña del usuario root de mysql con la siguiente sentencia SQL:mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword') WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
6. Actualizar la contraseña del usuario root y conexión «localhost»:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
7. Parar de nuevo el servicio mysqld:# systemctl stop mysqld
7. Quitar las variables de entorno añadidas con anterioridad:# systemctl unset-environment MYSQLD_OPTS
8. Volver a arrancar el servicio mysqld, pero esta vez sin las variables de entorno de antes:# systemctl start mysqld
7. Si todo lo hemos hecho bien, podremos volver a entrar a la cli de mysql y administrar nuestras bases de datos con normalidad:# mysql -u root -p
Fuente oficial: https://stackoverflow.com/questions/33510184/how-to-change-the-mysql-root-account-password-on-centos7
Un saludo Sysadmins! 🙂