在Visual Studio 17中使用.NET Core无法连接DigitalOcean托管MySQL数据库
DigitalOcean托管MySQL本地.NET Core项目连接报错解决方案
原始报错信息:Access denied for user 'username'@'ipaddress' (using password: NO)
报错翻译:用户'username'@'对应IP地址'访问被拒绝(未使用密码)
核心排查步骤
- 检查项目数据库连接配置
打开.NET Core项目的appsettings.json或其他配置源,确认MySQL连接字符串中已正确填写Password/Pwd字段。此报错绝大多数场景是配置节点名称拼写错误、密码漏填,或是配置加载逻辑异常,导致程序没有读取到密码参数,才会触发using password: NO标识。 - 验证DigitalOcean MySQL实例权限配置
- 登录DigitalOcean控制台进入对应MySQL实例的设置页,确认你的本地公网IP已被添加到数据库的允许访问白名单
- 确认你使用的数据库账号支持从你的本地IP登录,托管实例默认会限制账号的登录来源IP范围
- 绕开代码测试基础连通性
本地安装MySQL命令行工具后执行如下命令,先排除代码层面问题:mysql -h <DigitalOcean MySQL公网地址> -P <端口号> -u <用户名> -p
执行后按提示输入密码,若可以正常连接则可确定问题出在项目的连接配置上,反之则排查网络或账号权限问题。 - 确认.NET Core MySQL依赖库的参数兼容性
若使用MySqlConnector或Pomelo.EntityFrameworkCore.MySql作为连接驱动,需确认连接字符串参数符合对应库的规范,不要混用不同驱动的专属参数。另外DigitalOcean托管MySQL默认要求SSL连接,可尝试在连接字符串中显式添加SslMode=Required参数。
内容的提问来源于stack exchange,提问作者Keyur Shah
相关产品推荐
相关产品推荐

