【已解决】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 语句。
相关推荐
ReaF_star9 小时前
【环保】CentOS 7 安装 MySQL 8 实战记录:从安装到排障一次讲清
linux·mysql·centos
qiuyunoqy9 小时前
MySQL - 2
数据库·mysql
y = xⁿ9 小时前
MySQL学习笔记:乐观锁VS悲观锁/八股总结
笔记·学习·mysql
summerkissyou198711 小时前
Android-基础-SystemClock.elapsedRealtime和System.currentTimeMillis区别
android
ian4u11 小时前
车载 Android C++ 完整技能路线:从基础到进阶
android·开发语言·c++
郝开12 小时前
Docker Compose 本地环境搭建:mysql
mysql·docker·容器
笨鸟先飞的橘猫13 小时前
Mysql——MVCC学习
数据库·学习·mysql
学习使我健康13 小时前
Android 中 Service 用法
android·kotlin
zqit rdlo13 小时前
MYSQL 创建索引
数据库·mysql