【发布时间】:2019-01-11 21:45:23
【问题描述】:
我无法通过 C# 应用程序从不同的 IP 连接到 MySQL 服务器。
MySQL 服务器从 localhost 可以正常工作
SocketException: 无法建立连接,因为目标机器主动拒绝了它XXX.XXX.XX.XX:3306
我尝试过的:
- 用户可以使用 % 主机名访问 GRANT,所以应该没问题 来自外部 IP
- 目前 Ubuntu 防火墙被禁用以解决此问题
- 我已将
bind-address=0.0.0.0和#skip-networking 放入MySQL 中
不过,尝试连接时仍会出现相同的错误消息。
string connstring = string.Format("Server=XXX.XXX.XX.XXX;Port=3306; database={0}; UID=user; password=pswd", databaseName);
connection = new MySqlConnection(connstring);
connection.Open();
有什么建议吗?谢谢!
【问题讨论】:
-
如果您尝试从与您的应用程序相同的机器连接到 MySQL 数据库,但使用 Workbench,是否成功?
-
不,工作台的连接也失败
-
这不是 mysql 权限问题,因为这会导致“访问被拒绝”错误。套接字异常意味着,端口 3306 上没有侦听服务(至少对于远程主机不可见)。正如您所提到的,您禁用了防火墙并设置了绑定地址和#skip-networking,所以请原谅我问:您确定您连接到正确的主机吗?设置了这些选项后你重启了mysql服务吗?
-
我试图对配置文件进行的更改以允许所有 IP 地址都是正确的,它们只是没有应用于服务器,因为正在编辑错误的配置文件......我'已回答以下问题。