You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

误删MySQL所有用户含localhost,如何添加localhost用户恢复连接?

别担心,这种误操作其实挺常见的,我帮你整理了一套一步步恢复的流程,亲测有效:

恢复MySQL localhost用户的步骤

1. 停止当前MySQL服务

不同操作系统的停止命令不一样:

  • Ubuntu/Debian:sudo systemctl stop mysql
  • CentOS/RHEL:sudo systemctl stop mysqld
  • Windows:以管理员身份打开命令提示符,执行 net stop mysql

2. 启动MySQL并跳过权限验证

这一步会让你无需密码即可登录,同时关闭远程连接避免安全风险:

  • Linux系统:执行 sudo mysqld_safe --skip-grant-tables --skip-networking &,后台启动跳过权限验证的MySQL进程
  • Windows系统:先切换到MySQL的bin目录(比如 cd "C:\Program Files\MySQL\MySQL Server 8.0\bin",路径根据你的安装版本调整),再执行 mysqld --skip-grant-tables

3. 无密码登录MySQL

打开新的终端/命令提示符,直接执行 mysql(或 mysql -u root),无需输入密码就能进入MySQL命令行。

4. 创建并授权localhost用户

首先切换到mysql系统数据库:

USE mysql;

然后根据你的MySQL版本执行对应的SQL语句:

MySQL 8.0及以上版本

-- 创建localhost的root用户,替换成你想要的密码
CREATE USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
-- 授予该用户所有数据库的全部权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
-- 刷新权限让设置立即生效
FLUSH PRIVILEGES;

MySQL 5.7及更早版本

-- 创建localhost用户
CREATE USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
-- 若CREATE USER命令报错,可应急使用INSERT语句(优先推荐CREATE USER)
-- INSERT INTO user (Host, User, Password) VALUES ('localhost', 'root', PASSWORD('your_new_password'));
-- 授予全部权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;

5. 重启MySQL到正常模式

先退出MySQL命令行:EXIT;
然后停止刚才的特殊模式进程,再正常启动服务:

  • Linux系统:sudo systemctl start mysql
  • Windows系统:net start mysql

现在你应该可以通过 mysql -u root -p 输入刚才设置的密码,正常登录MySQL了。

内容的提问来源于stack exchange,提问作者Dhaein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:36:20