下面的MySQL连接代码“捕获”了这个错误:“无法连接到任何指定的MySQL主机。”
我的数据库在我的linux网站上,我使用%启用了远程访问,因此任何人都可以访问该数据库。
我的代码是.NET C#,我有一个winform。
string server = "http://www.mywebite.net";
string database = "mywebsite_app";
string uid = "admin";
string password = "Password";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
MySqlConnection dbConn;
try
{
dbConn = new MySqlConnection(connectionString);
dbConn.Open();
if (dbConn.State.ToString() != "Open")
{
this.Text = "could not open database connection";
}
else
{
this.Text = "database connection opened";
}
}
catch (Exception ex) // catch on general exceptions, not specific
{
this.Text = ex.Message;
}谢谢你的帮助。
发布于 2015-08-09 09:40:51
如果您的mysql数据库在远程主机上,那么您通常不太幸运地尝试远程连接到该数据库。托管提供商通常会阻止远程mysql访问。
尝试使用ssh隧道。下载putty http://www.chiark.greenend.org.uk/~sgtatham/putty/
打开命令行,然后从安装目录执行putty
putty username@remote_mysqlhost -L 3306:localhost:3306或者你可以使用gui,用mysql remote填充地址,但不要打开连接。
转到ssh隧道,添加新的转发端口3306,目的地为localhost:3306。
至于为什么目的地是localhost,这是因为目的地是ssh会话所看到的。因为您已经在ssh会话中连接到远程服务器,所以mysql主机是本地的。
这也可能是dmz的设置。您可以使用putty创建dmz网关,以便通过dmz网络中的任何计算机建立隧道。但网关后面的计算机不会公开暴露给互联网。
不要忘了点击add按钮,以确保配置已添加到通道列表中。
打开连接并使用您的密码(ssh用户和密码,通常与虚拟主机控制面板用户和密码相同
现在,您可以通过本地主机连接到mysql,而不是连接到远程mysql。它将通过putty隧道传输到您的远程mysql。
请先尝试使用mysql管理工具连接。测试连接是否成功。
从用户的角度来看,ssh隧道的工作方式与vpn几乎相同。而无需在远程主机上设置vpn服务器的麻烦。
https://stackoverflow.com/questions/31899723
复制相似问题