【已解决】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 语句。
相关推荐
唐青枫3 小时前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
小满8784 小时前
5.Mysql事务隔离级别与锁机制
mysql
随遇丿而安4 小时前
第10周:Activity 基础功能与生命周期优化
android
alexhilton17 小时前
Android车载OS中的Remote Compose
android·kotlin·android jetpack
元Y亨H1 天前
技术笔记:MySQL 字符集排序规则与大小写敏感性问题解决方案
mysql
落魄Android在线炒饭1 天前
Android 自定义HAL开发篇之 HIDL篇——从入门到实战(上)
android
plainGeekDev1 天前
广播接收器 → Flow + Lifecycle
android·java·kotlin
plainGeekDev1 天前
EventBus → SharedFlow
android·java·kotlin
这个DBA有点耶2 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵2 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql