不确定这是问这个的地方,但我正在尝试连接到我有完全访问权限的服务器。我可以从网上登录phpMyAdmin,但是当我尝试从C#连接到它时,它不起作用。它特别显示以下错误:
无法连接到任何指定的mysql主机
这里是我使用的连接字符串:
string mycon = "server=someIP;port=3306;uid=user;pwd=pwd;database=mydb;Convert Zero Datetime=True";
我认为这是因为服务器需要SSH。有什么方法可以禁用连接的SSH要求吗?
答案 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服务,一切都很好:)