【问题标题】:Unable to connect with MySQLConnection to remote database无法使用 MySQLConnection 连接到远程数据库
【发布时间】: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 上。
  • 如果你“以管理员身份运行”会发生什么

标签: c# mysql .net


【解决方案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”之外,它仍然无法正常工作。不幸的是。
猜你喜欢
  • 2019-10-16
  • 2017-06-22
  • 2021-06-12
  • 2018-12-29
  • 2016-12-07
  • 1970-01-01
相关资源
最近更新 更多