如何连接需要SSH的远程Mysql服务器?

时间:2013-07-15 19:16:36

标签: c# mysql ssh ftp

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

  

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

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

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

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

2 个答案:

答案 0 :(得分: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这样的端口扫描程序。因为你正在使用C#,我假设你在Windows上。 这里有windows gui客户端:http://nmap.org/zenmap/

答案 1 :(得分:0)

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

之前是:

  

bind-address = 127.0.0.1

我将其改为

  

bind-address = 0.0.0.0

重启mysql服务,一切都很好:)