无法使用 MySQLConnection 连接到远程数据库
Posted
技术标签:
【中文标题】无法使用 MySQLConnection 连接到远程数据库【英文标题】:Unable to connect with MySQLConnection to remote database 【发布时间】:2019-11-01 04:13:36 【问题描述】:从 mysql Workbench 和 Visual Studio Server Explorer 建立的连接工作正常。但是当我尝试通过 MySQL 连接在代码中使用它时 使用与服务器资源管理器相同的连接字符串,它给了我一个错误。
“试图以访问权限 MyDatabaseIP:3306 禁止的方式访问套接字”
我尝试了多个连接字符串,并尝试了来自 NuGet(许多版本)的 MySql 连接器并手动安装。还尝试禁用防火墙并通过网络寻找答案。
string myConnectionString;
myConnectionString = "server=MyDatabaseIP;user id=admin;pwd=mYPasSword;database=MyBase;persistsecurityinfo=True";
using (var conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString))
conn.Open();
MessageBox.Show("Success");
我在 conn.Open() 上收到错误消息;
在我的工作服务器资源管理器配置下方。
server=MyDatabaseIP;user id=admin;database=MyBaser;persistsecurityinfo=True
[编辑] 我已经能够以某种方式密切确定导致问题的原因。我尝试了不同的机器,但问题仍然存在于 windows 10 机器上,我的程序和测试脚本在所有 windows 7 和 8 机器上运行良好。我也尝试过从 python 脚本进行连接并且它可以工作!(即使在 Windows 10 上)但是当我从 py 文件创建一个 exe 时,它仍然无法连接到服务器。同样的问题。
【问题讨论】:
你确定吗?尽管有波浪线区域,但 id=(username); pwd=(password) 在曲线中并不长.. 实际上看起来可能缺少密码。根据底部的字符串。建议不同的用户 ID 和密码 我已经仔细检查了所有内容。我已经设法检查它,并且确实连接在具有相同文件的 Windows 7 机器上有效。但不是在 Windows 10 上。 如果你“以管理员身份运行”会发生什么 【参考方案1】:试试这个方法,
MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
或者尝试包括这些,
使用 MySql.Data; 使用 MySql.Data.MySqlClient;
【讨论】:
我已经按照建议尝试了这两种方法。不幸的是,没有一个工作。错误信息还是一样。【参考方案2】:尝试在连接字符串中添加端口并建立连接 -
var ConnectionString = "server=127.0.0.1;user id=test;password=test@123;persistsecurityinfo=True;port=3306;database=mydb;SslMode=none;"
using (MySqlConnection con = new MySqlConnection(DatabaseServiceUrl))
con.Open();
【讨论】:
我已经尝试过您的解决方案,除了必须将“DatabaseServiceUrl”更改为“connectionString”之外,它仍然无法正常工作。不幸的是。以上是关于无法使用 MySQLConnection 连接到远程数据库的主要内容,如果未能解决你的问题,请参考以下文章