window11 wsl mysql8 错误分析:1698 - Access denied for user ‘root‘@‘kong.mshome.net‘

🚨 错误分析:1698 - Access denied for user 'root'@'kong.mshome.net'

这个错误是因为 MySQL 的 root 用户 使用 auth_socket 插件进行身份验证,而不是使用密码。因此,当你尝试从 远程主机 连接时,MySQL 会拒绝访问。


✅ 解决方法:修改 MySQL 的身份验证方式

你需要将 root 用户 的身份验证插件从 auth_socket 改为 mysql_native_password,以便使用密码登录。

🔧 步骤 1:登录 MySQL

在 WSL 终端中执行以下命令,以 root 用户 登录 MySQL:

bash 复制代码
sudo mysql

🔧 步骤 2:检查当前的身份验证插件

执行以下命令,查看 root 用户 的身份验证插件:

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

输出示例:

复制代码
+------+-----------+-------------+
| user | host      | plugin      |
+------+-----------+-------------+
| root | localhost | auth_socket |
+------+-----------+-------------+

这里你会看到 plugin 是 auth_socket,这就是导致远程连接被拒绝的原因。


🔧 步骤 3:修改身份验证插件

执行以下命令,将 root 用户 的身份验证插件改为 mysql_native_password:

sql 复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';

将 your_password 替换为你想设置的 root 用户密码。


🔧 步骤 4:刷新权限

执行以下命令,刷新权限表:

sql 复制代码
FLUSH PRIVILEGES;

🔧 步骤 5:确认修改结果

再次执行以下查询,确认身份验证插件已修改为 mysql_native_password:

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

输出示例:

复制代码
+------+-----------+-----------------------+
| user | host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | mysql_native_password |
+------+-----------+-----------------------+

🔧 步骤 6:重启 MySQL 服务

执行以下命令,重启 MySQL 服务:

bash 复制代码
sudo service mysql restart

🔧 步骤 7:测试远程访问

在 Windows 主机 中尝试使用 MySQL 客户端 连接到 WSL 中的 MySQL 服务器:

bash 复制代码
mysql -h <WSL_IP_ADDRESS> -P 3306 -u root -p

✅ 解决方案总结

错误原因 解决方法
使用 auth_socket 插件 将插件修改为 mysql_native_password
未设置远程访问权限 授予 root 用户远程访问权限

🎯 常见问题排查

问题 解决方法
连接超时 检查防火墙是否阻止 3306 端口
Access denied for user 错误 确认身份验证插件已更改为 mysql_native_password
相关推荐
慕容雪_2 小时前
Capacitor8-Android打包完整手册
android·打包·capacitor
阿杰m6 小时前
Android源码第十三章:Bluetooth——沿一次发现走到控制器
android
booboosui6 小时前
派活给另一个 AI:前后两次文件夹快照,就是交付清单
android
普通人612 小时前
MySQL_FIND_IN_SET函数详解
android·数据库·mysql
好的佩奇1 天前
Dart 之集合元素
android·flutter·dart
Easyhood1 天前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose
FlightYe1 天前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
疯华整猫1 天前
删掉 LeakCanary 那天,我用 Trae 自己撸了一套:最难的不是分析堆,是决定什么时候 dump
android·人工智能·性能优化
mmsx1 天前
耳切法切带洞多边形:论文能跑通,真实数据为什么崩
android·kotlin
洞见前行1 天前
你的 Activity 关了,为什么还活着?Android 内存泄漏从发现、定位到线上治理
android·性能优化·leakcanary