2013-02-26 173 views
0

我已经完成了一个小型的C#Win Forms应用程序,它使用mySQLconnector连接到mySQL数据库。这工作完全可以与我的本地主机。从C#应用程序访问mysql远程服务器

String ConnectionString = "server=xx.xxx.xx.xxx;uid=myuserid;pwd=mypassword;database=dbname"; 

但我得到以下错误,当我尝试连接到远程服务器: 无法连接到任何指定的MySQL主机。 {“没有连接可以做,因为目标机器积极拒绝它xx.xxx.xx.xxx:3306”}

我已经ping命令提示符服务器,我得到的回应。 我也验证了远程服务器数据库MySQL服务器的设置(正确名称/ IP,PORTNO:3306,跳过网络:OFF)

远程服务器,而不从服务器上运行PHP脚本,并使用相同的设置的任何问题,可访问我上面列出的连接刺痛。

mySQL服务器托管在外部共享托管公司123reg.co.uk上,我使用与连接字符串中相同的uid/passwd登录到phpmyadmin。 我不明白什么是不同的web服务器访问确定,但我的C#应用​​程序有麻烦?

任何一个可以请帮助...

由于提前 山姆

+0

你试过远程登录[服务器的ip] [口],看看它是否起作用? – ysrb 2013-02-26 00:24:58

+1

123reg很可能不允许你直接连接到mysql服务器,它会隐藏在防火墙后面。 – adrianbanks 2013-02-26 00:26:38

回答

0

您的IP地址将被从Web服务器不同。 如果你的IP地址是静态的,你可以在你的mysql数据库中授予对你的IP地址的访问权(https://www.google.com.au/search?q=mysql+grant+access+to+user+from+host)。 我建议使用服务器访问数据库,并使您的c#应用程序使用ajax/json调用(https://www.google.com.au/search?q=C%23+Win+Forms+ajax+json)与您的Web服务器通话 - 这样您就不会绑定到一个IP地址进行访问。 另外,如果远程shell访问可用,您可以查看设置ssh隧道到您的网络服务器,以便您可以获得与您的网络服务器相同的访问权限。 (https://www.google.com.au/search?q=ssh+tunnels+example+mysql这就是我自己做的)