Si por accidente hemos borrado el usuario root y/o queremos modificar la contraseña de root en Mysql tendremos que seguir los siguientes pasos:
Primero detenemos el servidor MySQL:
# sudo /etc/init.d/mysql stop
Luego iniciamos sin tener en cuenta privilegios de usuario (el & sirve para que podamos seguir usando la misma consola):
# sudo /usr/bin/mysqld_safe –skip-grant-tables &
Conectamos con el cliente MySQL:
# mysql
Si hemos borrado el usuario root ejecutamos en el cliente mysql para insertar el usuario root con contraseña root (podéis cambiar la contraseña si queréis):
insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject, max_questions, max_updates, max_connections, max_user_connections) values(‘localhost’,’root’,’root’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,»,»,»,»,’0′,’0′,’0′,’0′);
FLUSH PRIVILEGES;
UPDATE mysql.user SET Grant_priv=’Y’, Super_priv=’Y’ WHERE User=’root’;
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO ‘root’@’localhost’;
FLUSH PRIVILEGES;
Si queremos cambiar la contraseña:
UPDATE mysql.user SET Password=PASSWORD(‘root’) WHERE User=’root’;
FLUSH PRIVILEGES;
Finalmente reiniciamos servidor MySQL:
# sudo /etc/init.d/mysql restart
Y listo. A disfrutar 🙂
Hola! Lo primero un saludo y agradecerte la valiosa información. Te cuento que he realizado este proceso pero me da error al insertar los comandos en phpmyadmin. El mensaje que me da es: #1046 – No database selected. Por favor, podrías ayudarme a recuperar mi usuario root y contraseña??? Gracias y un cordial saludo!