使用Visual Studio 2018连接MySQL 8.0遇认证错误求解决方案
解决Visual Studio 2018连接MySQL 8.0的认证错误问题
这个错误的核心原因很明确:MySQL 8.0默认启用了caching_sha2_password这种新的认证插件,但你使用的mysql-for-visualstudio-1.2.7版本对该认证方式的支持不完善——哪怕搭配了较新的mysql-connector-net-8.0.11,VS的数据库连接插件版本跟不上也会触发这个问题。下面给你几个可行的解决办法:
方法1:修改MySQL用户的认证方式(最直接有效)
登录MySQL命令行客户端,执行以下SQL语句,把你的数据库用户认证方式切换回旧版的mysql_native_password(VS插件对这个认证方式完全兼容):
-- 替换成你的用户名和密码,localhost如果是远程连接可以改成'%'或者对应主机地址 ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;
执行完成后,重新在VS里尝试连接,应该就能正常获取数据库名称了。
方法2:更新MySQL for Visual Studio插件
mysql-for-visualstudio-1.2.8及以上版本开始正式支持caching_sha2_password认证方式,你可以下载最新的VS插件安装包完成更新,安装后重启Visual Studio,再重新配置数据库连接即可。
方法3:调整连接字符串参数(适用于不想修改用户认证的情况)
如果你想保留caching_sha2_password认证,可以在VS的连接字符串里添加以下参数:
AllowPublicKeyRetrieval=True;SslMode=None;
不过要注意,AllowPublicKeyRetrieval=True会允许客户端从服务器获取公钥,存在一定安全风险,仅建议在本地开发环境中使用。
内容的提问来源于stack exchange,提问作者vikash vishnu




