注意:此操作仅对 5.x 版本生效。MySQL8.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', 'Y'); FLUSH PRIVILEGES;
注意将'your_new_password'
替换为您希望设置的新密码。 - 退出 MySQL 并重启 MySQL 服务:在 MySQL 命令行提示符下执行以下命令退出 MySQL:
exit;
然后使用以下命令重启 MySQL 服务:sudo service mysql restart
- 现在,您应该可以使用新设置的密码登录 MySQL root 用户了。
请注意,这些步骤仅适用于您有适当的权限和访问系统的能力。如果您无法成功恢复 root 用户,请考虑寻求更高级的 MySQL 专业支持或恢复备份。