不能连接到我的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;
        }

不能连接到我的linux服务器MySQL数据库

如果您的mysql数据库是远程托管的,那么您通常不太幸运地尝试远程连接到该数据库。主机提供商通常阻止远程mysql访问。

尝试使用ssh隧道。下载腻子http://www.chiark.greenend.org.uk/sgtatham/腻子/

打开命令行,从安装目录

执行putty
putty 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服务器的麻烦。