不能连接到我的linux服务器MySQL数据库
本文关键字:服务器 MySQL 数据库 linux 我的 连接 不能 | 更新日期: 2023-09-27 18:07:05
我的MySQL连接代码下面是' catch '这个错误:"无法连接到任何指定的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;
}
如果您的mysql数据库是远程托管的,那么您通常不太幸运地尝试远程连接到该数据库。主机提供商通常阻止远程mysql访问。
尝试使用ssh隧道。下载腻子http://www.chiark.greenend.org.uk/sgtatham/腻子/
打开命令行,从安装目录
执行puttyputty username@remote_mysqlhost -L 3306:localhost:3306
或者你可以使用gui,填入你的mysql远程地址,但不要打开连接。
进入SSH隧道,添加新的转发端口3306,目的端口为localhost:3306。
至于为什么目的地是localhost,这是因为目的地是SSH会话所看到的。因为您已经在SSH会话中连接到远程服务器,因此,mysql主机是本地的。也可以是dmz的设置。您可以使用putty创建一个DMZ网关,以便通过DMZ网络中的任何计算机建立隧道。但是网关后面的电脑,不会公开暴露在互联网上。
不要忘记点击add按钮,以确保配置被添加到隧道列表中。
打开连接并使用您的密码(ssh用户名和密码,通常与webhosting控制面板的用户名和密码相同)
现在,您可以通过localhost连接到mysql,而不是连接到远程mysql。它将通过putty隧道传输到您的远程mysql。
尝试先使用mysql管理工具连接。测试连接是否成功。
从用户的角度来看,SSH隧道的工作方式与vpn几乎相同。但是没有在远程主机上设置VPN服务器的麻烦。