如何修复VS Code中MySQL Shell的Access denied连接错误?
解决VS Code MySQL Shell扩展"Access denied for user"报错的方案
检查MySQL用户权限与访问主机
- 用命令行登录MySQL:
mysql -u root -p - 执行查询查看用户权限记录:
SELECT user, host FROM mysql.user; - 确认你用于连接的用户允许从当前主机访问(比如本地连接需确保host为
localhost或%)。若用户host仅为localhost,但你在扩展中填的是127.0.0.1,会导致认证失败,需统一连接地址或修改用户host。
- 用命令行登录MySQL:
验证扩展连接配置参数
核对扩展中填写的用户名、密码、主机地址、端口是否与MySQL实例完全匹配。若MySQL使用socket连接,需在扩展配置中指定正确的socket路径:- Linux:
/var/run/mysqld/mysqld.sock - Windows:
C:\ProgramData\MySQL\MySQL Server X.X\data\mysql.sock(替换X.X为你的MySQL版本号)
- Linux:
重置用户密码并适配认证插件(针对MySQL 8.0+)
- 重置用户密码:
ALTER USER 'your_username'@'your_host' IDENTIFIED BY 'new_password'; - 刷新权限:
FLUSH PRIVILEGES; - 若使用caching_sha2_password认证导致兼容问题,切换为mysql_native_password:
ALTER USER 'your_username'@'your_host' IDENTIFIED WITH mysql_native_password BY 'new_password';
- 重置用户密码:
确认MySQL服务状态
- Linux:执行
systemctl status mysql检查服务是否运行,未启动则用systemctl start mysql启动 - Windows:打开服务管理器,找到MySQL服务确认其处于运行状态,未启动则手动启动
- Linux:执行
排查防火墙/安全软件拦截
暂时关闭本地防火墙或安全软件,测试是否能正常连接。若恢复正常,将VS Code添加到防火墙允许列表中。
内容的提问来源于stack exchange,提问作者Agoziem
相关产品推荐
相关产品推荐

