注意:此操作僅對 5.x 版本生效。MySQL 8.x 不行
如果不小心刪除了 MySQL 的 root 使用者,可以按照以下步驟來嘗試恢復 root 使用者:
- 停止 MySQL 服務:可以使用以下命令停止 MySQL 服務:
sudo service mysql stop
- 啟動 MySQL 服務並跳過權限驗證:使用以下命令啟動 MySQL 服務並跳過權限驗證:
sudo mysqld_safe --skip-grant-tables &
- 連接到 MySQL 伺服器:在一個新的終端窗口中,使用以下命令連接到 MySQL 伺服器:
mysql -u root
- 進入 MySQL 系統資料庫:在 MySQL 命令行提示符下執行以下命令,進入 MySQL 系統資料庫:
use mysql;
- 重建 root 使用者:執行以下 SQL 語句來重建 root 使用者,並設定新的密碼:
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, Event_priv, Trigger_priv, Create_tablespace_priv) VALUES ('localhost', 'root', PASSWORD('your_new_password'), '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'); FLUSH PRIVILEGES;
注意將'your_new_password'
替換為您希望設定的新密碼。 - 退出 MySQL 並重啟 MySQL 服務:在 MySQL 命令行提示符下執行以下命令退出 MySQL:
exit;
然後使用以下命令重啟 MySQL 服務:sudo service mysql restart
- 現在,您應該可以使用新設定的密碼登錄 MySQL root 使用者了。
請注意,這些步驟僅適用於您有適當的權限和訪問系統的能力。如果您無法成功恢復 root 使用者,請考慮尋求更高級的 MySQL 專業支援或恢復備份。