Si por cualquier razón hemos perdido el password del usuario root de mysql, podemos restablecerlo. La única condición para poder modificar el password del usuario root es tener acceso root desde la consola linux.
En caso de no tener acceso root al servidor, va a ser imposible modificar el password de root del mysql de forma sencilla. Deberemos arrancar la máquina en modo rescate y recuperar el acceso al sistema como root.
Si estamos en disposición de acceder al servidor desde la consola con el usuario root, simplemente debemos ejecutar los siguientes comandos para modificar el password de root de mysql:
Paso 1: Parar el servicio de mysql:
service mysql stop
[ ok ] Stopping MySQL database server: mysqld.
Paso 2: Creamos directorio /var/run/mysqld:
sudo mkdir /var/run/mysqld
y le damos permisos:
sudo chown mysql: /var/run/mysqld
Paso 3: Iniciamos el servicio mysql en modo Seguro:
mysqld_safe –skip-grant-tables &
160211 14:32:21 mysqld_safe Logging to syslog.
160211 14:32:21 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Paso 4: Entramos a mysql desde otro terminal, sin necesidad de password, porque estamos en modo seguro:
mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.47-0+deb7u1 (Debian)Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
Paso 5: Cambiamos la database a mysql:
use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
Paso 6: Modificamos el password de root:
UPDATE mysql.user SET authentication_string=PASSWORD('PASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';EXIT;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
Paso 7: Propagamos privilegios:
flush privileges;
Query OK, 0 rows affected (0.00 sec)
Paso 8: Salimos de mysql:
quit;
Paso 9: Reiniciamos msyql:
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
service mysql restart
Paso 10: Verificamos que el nuevo password funciona correctamente:
mysql -uroot -pnuevopass