Восстановление пользовательского корня для MySQL - PullRequest
0 голосов
/ 15 ноября 2018

Я случайно удалил пользователя root в моей локальной настройке MySQL, работающей на OS X. Других пользователей, созданных для возврата в MySQL, нет. Кто-нибудь знает, как восстановить пользователя root в mysql.

1 Ответ

0 голосов
/ 15 ноября 2018

У меня быстрый и грязный путь

Получите кого-нибудь с правами SysAdmin и сделайте следующее:

  1. Добавить 'skip-grant-tables' к /etc/mysql/mysql.conf.d/mysqld.cnf в разделе [mysqld]

  2. перезапустить mysql

  3. введите mysql без пароля и нажмите Enter

  4. Запустите это:

    DELETE FROM mysql.user 
    WHERE  user = 'root' 
           AND host = 'localhost';
    
    INSERT INTO `user` (
        `Host`, `User`, `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`, `Event_priv`, `Trigger_priv`, 
        `Create_tablespace_priv`, `ssl_type`, `ssl_cipher`, 
        `x509_issuer`, `x509_subject`, `max_questions`, 
        `max_updates`, `max_connections`, `max_user_connections`, 
        `plugin`, `authentication_string`, `password_expired`, 
        `password_last_changed`, `password_lifetime`, `account_locked`
    ) VALUES (
        'localhost', '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', 'Y', 'Y', 'Y', '', '', '', '', 
        0, 0, 0, 0, 'mysql_native_password', 
        '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B', 'N', 
        '2018-07-20 14:47:59', NULL, 'N'
    );
    
  5. выход из mysql

  6. удалить 'skip-grant-tables' из /etc/mysql/mysql.conf.d/mysqld.cnf в разделе [mysqld]

  7. перезапустить mysql

Это должно быть все!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...