无法连接到我的linux服务器MySQL DB

时间:2015-08-09 00:00:59

标签: c# mysql .net

下面我的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;
        }

感谢您的帮助......

1 个答案:

答案 0 :(得分:0)

如果你的mysql数据库是在远程托管上,那么你通常会运气不好尝试远程连接到该数据库。 托管服务提供商通常会阻止远程mysql访问。

尝试使用ssh-tunneling。 下载腻子      http://www.chiark.greenend.org.uk/~sgtatham/putty/

打开命令行,从安装目录

执行putty
putty username@remote_mysqlhost -L 3306:localhost:3306

或者你可以使用gui,用你的mysql遥控器填充地址,但是还没有打开连接。

转到ssh隧道,添加新的转发端口3306,目的地为localhost:3306。

为什么目标是localhost,这是因为目标是ssh会话看到的。因为您已经在ssh会话中连接到远程服务器,因此,mysql主机是本地的。

这也可能是dmz的设置。 您可以使用putty通过dmz网络中的任何计算机创建一个dmz网关。但网关背后的计算机,不会公开暴露在互联网上。

不要忘记按下添加按钮以确保将配置添加到隧道列表中。

打开连接并使用您的密码(ssh用户和密码,通常与网站主机控制面板用户和密码相同

现在,您可以通过localhost连接到mysql,而不是连接到远程mysql。它将通过putty隧道传输到你的远程mysql。

首先尝试使用mysql管理工具进行连接。测试连接是否成功。

从用户视图看,ssh隧道的工作方式与vpn几乎相同。 但没有在远程主机上设置vpn服务器的麻烦。