【已解决】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 语句。
相关推荐
千里马学框架19 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台19 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone19 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
小白男神20 小时前
MySQL进阶学习四(存储过程、游标、触发器)
mysql
这个DBA有点耶20 小时前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
致远ccc20 小时前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo1 天前
Kotlin 协程中的 Job 结构化并发与取消
android
kybs19911 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
sun0077001 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
程序猿_极客1 天前
【免费】分享一套优质的基于SSM的校园失物招领系统的设计与实现,源码+文档+视频详解(讲解)
java·mysql·ssm·课程设计·失物招领系统