‘Recuperar’ cuenta root de MySQL

recuperar_root_mysql¡Ohh no! Estaba eliminando unos usuarios de mi base de datos que no recuerdo porque los había creado y según yo ya había desmarcado root -para no eliminarlo- y, pues no, borré el usuario root de MySQL 😐

Para recuperar la cuenta de root, bueno, no podemos recuperarla, lo borrado, pues ya, se borró para toda la vida, pero podemos rehacerla y teniendo acceso al servidor es muy sencillo, ya sea que esté en tu localhost o estés dentro mediante SSH, con acceso a la terminal solo sigue los siguientes pasos:

  1. Detener el servicio de MySQL.
    # service mysqld stop
  2. Iniciar MySQL Safe 
    # mysqld_safe --skip-grant-tables &
  3. Ejecutar MySQL y agregar la nueva cuenta de root.
    # mysql
    mysql> INSERT INTO mysql.user
    SET user = 'root',
    host = 'localhost',
    password = Password('aqui-tu-pass-nuevo'),
    Select_priv = 'y',
    Insert_priv = 'y',
    Update_priv = 'y',
    Delete_priv = 'y',
    Create_priv = 'y',
    Drop_priv = 'y',
    Reload_priv = 'y',
    Shutdown_priv = 'y',
    Process_priv = 'y',
    File_priv = 'y',
    Grant_priv = 'y',
    References_priv = 'y',
    Index_priv = 'y',
    Alter_priv = 'y',
    Show_db_priv = 'y',
    Super_priv = 'y',
    Create_tmp_table_priv = 'y',
    Lock_tables_priv = 'y',
    Execute_priv = 'y',
    Repl_slave_priv = 'y',
    Repl_client_priv = 'y',
    Create_view_priv = 'y',
    Show_view_priv = 'y',
    Create_routine_priv = 'y',
    Alter_routine_priv = 'y',
    Create_user_priv = 'y',
    Event_priv = 'y',
    Trigger_priv = 'y',
    Create_tablespace_priv = 'y';
    mysql> FLUSH PRIVILEGES;
    mysql> EXIT;
  4. Detener el servicio de MySQL, otra vez.
    # service mysqld stop
  5. Reiniciar el servicio normalmente
    # service mysqld start

No olvides cambiar donde dice “aqui-tu-pass-nuevo” por la contraseña que requieras para tu cuenta root, después de esto, ya quedó, ya tienes otra vez tu cuenta root de MySQL funcionando.