【已解决】MySQL连接出错 1045 - Access denied for user ‘root‘@‘::1‘

1. 以管理员身份打开命令提示符

  • 在开始菜单搜索 cmd,右键选择 "以管理员身份运行"

    跳过授权表的 MySQL

    进入 bin 目录,再次执行:

    cmd 复制代码
    cd /d D:\pilot\mariadb_10.11.3_winx64\bin
    mysqld --defaults-file="D:\pilot\mariadb_10.11.3_winx64\my.ini" --skip-grant-tables

此时窗口会停留在等待连接的状态。

2. 连接数据库并修改密码

打开另一个管理员 cmd 窗口,进入 bin 目录:

cmd 复制代码
cd /d D:\pilot\mariadb_10.11.3_winx64\bin
mysql -u root

3. 刷新权限表(必须执行)

sql 复制代码
FLUSH PRIVILEGES;

这会将权限表加载到内存,使 ALTER USER 命令可用。

4. 重置 'root'@'127.0.0.1' 的密码

sql 复制代码
ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY '你的新密码';

'你的新密码' 替换为实际密码,例如 'root123'

5. 验证修改(可选)

sql 复制代码
SELECT user, host, authentication_string FROM mysql.user WHERE user='root' AND host='127.0.0.1';

如果看到 authentication_string 有值(非空),说明密码已更新。

6. 退出并停止跳过授权表模式

sql 复制代码
EXIT;

7. 正常重启服务(恢复服务参数)

  • 停止服务:

    cmd 复制代码
    net stop PiEMS_MySql
  • 恢复原始启动参数(如果之前修改了服务配置):

    cmd 复制代码
    sc config PiEMS_MySql binPath= "\"D:\pilot\mariadb_10.11.3_winx64\bin\mysqld.exe\" \"--defaults-file=D:\pilot\mariadb_10.11.3_winx64\my.ini\" \"PiEMS_MySql\""
  • 启动服务:

    cmd 复制代码
    net start PiEMS_MySql

8. 测试登录

cmd 复制代码
"D:\pilot\mariadb_10.11.3_winx64\bin\mysql.exe" -h 127.0.0.1 -u root -p

输入新密码,成功进入即表示密码重置完成。


备选方法(如果 ALTER USER 报错)

ALTER USER 因版本或模式问题无法执行,可改用直接更新 global_priv 表:

sql 复制代码
USE mysql;
FLUSH PRIVILEGES;
UPDATE global_priv SET priv = JSON_SET(priv, '$.password', PASSWORD('你的新密码')) WHERE user='root' AND host='127.0.0.1';
FLUSH PRIVILEGES;

注意事项

  • 如果 'root'@'%''root'@'localhost' 也需要重置密码,可类似地执行 ALTER USER 命令,只需修改 host 部分即可。
  • 若想统一所有 root 账户的密码,可分别对 localhost127.0.0.1% 执行相同的 ALTER USER 语句。
相关推荐
一笑的小酒馆6 小时前
Android中WebRTC通信
android
灯澜忆梦6 小时前
【MySQL10】进阶篇 | 索引_#2性能优化
数据库·sql·mysql·性能优化
KevinWang_9 小时前
Android Hilt 依赖注入
android
古法安卓9 小时前
Android-深入理解 Android 回调(Callback)机制
android·性能优化·android studio
古法安卓9 小时前
Android-车机 GNSS 定位数据接收问题排查
android·java·android studio
小乌龟打怪升级11 小时前
adb 详解
adb
油丶酸萝卜别吃11 小时前
MySQL B+ 树查询全过程详解
数据库·mysql
FungLeo11 小时前
Flutter 吸顶分组列表实战:语义桶分组 + 点击头平滑滚动
android·flutter
Cry丶11 小时前
遗留系统数据迁移实战(九):区域编码迁移与补偿接口设计
mysql·数据治理·数据迁移·区域编码·补偿接口·组织区域
阿巴斯甜12 小时前
Android 自定义权限
android