无法使用 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 连接到远程数据库的主要内容,如果未能解决你的问题,请参考以下文章

ssh无法连接到远端Ubuntu的解决方法

在 C# 中使用 SSL 连接到 MySQL

MySql Connection 方法是不是支持异步编程?

无法远程连接到 SQL Server 实例

如何以编程方式连接到需要 SSH 隧道的远程数据库服务器?

通过 Jumpbox/Proxy 从我的本地机器连接到远程 MySQL