0

不确定这是问这个问题的地方,但我正在尝试连接到我可以完全访问的服务器。我可以从 Web 登录到 phpMyAdmin,但是当我尝试从 C# 连接到它时,它不起作用。它特别显示以下错误:

无法连接到任何指定的 mysql 主机

这是我正在使用的连接字符串:

string mycon = "server=someIP;port=3306;uid=user;pwd=pwd;database=mydb;Convert Zero Datetime=True";

我认为这是因为服务器需要 SSH。有什么方法可以禁用连接的 SSH 要求?

4

2 回答 2

1

如果 3306 端口关闭,您将无法从远程主机连接。PHPmyadmin 之所以有效,是因为它与 mysql 服务器(我假设)在同一台机器上运行,因此它没有从远程主机连接。您需要打开 3306 端口并将 mysql 配置为侦听 3306 端口,或者您提到您有 ssh,这会打开另一个选项。

如果您无法向公众开放 3306,您可以创建一个到服务器的 ssh 隧道,将 mysql 服务器上的 3306 转发到本地计算机上的某个端口(如 3307),然后配置 C# 以连接到该本地港口。

string mycon = "server=localhost;port=3307;uid=user;pwd=pwd;database=mydb;Convert Zero Datetime=True";

下面是一个如何使用 putty 转发端口的示例。 http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html

此外,检查 ip 上开放端口的最简单方法是使用端口扫描仪,如 nmap。我假设你在 Windows 上,因为你使用的是 C#。这里有windows gui客户端:http: //nmap.org/zenmap/

于 2013-07-15T20:07:13.907 回答
0

我终于通过更改my.cnf中的mysql配置解决了这个问题

以前是:

绑定地址 = 127.0.0.1

我把它改成了

绑定地址 = 0.0.0.0

重启mysql服务,一切正常:)

于 2013-07-15T23:08:47.023 回答