簡體   English   中英

無法連接到我的Linux服務器MySQL DB

[英]Cannot connect to my linux server MySQL DB

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

謝謝你的幫助...

如果您的mysql數據庫位於遠程主機上,那么通常您會很不幸運地嘗試遠程連接到該數據庫。 托管提供商通常會阻止遠程mysql訪問。

嘗試使用ssh-tunneling。 下載膩子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的設置。 您可以使用膩子創建dmz網關,以使其通過dmz網絡中的任何計算機。 但是網關后面的計算機不會公開暴露於互聯網。

不要忘記點擊添加按鈕,以確保將配置添加到隧道列表。

打開連接並使用您的密碼(ssh用戶和密碼,通常與虛擬主機控制面板的用戶和密碼相同)

現在,您可以通過本地主機連接到mysql,而不是連接到遠程mysql。 它會通過膩子通過隧道傳輸到遠程mysql。

嘗試首先使用mysql管理工具進行連接。 測試連接是否成功。

從用戶角度來看,ssh隧道的工作方式與vpn幾乎相同。 但無需在遠程主機上設置VPN服務器的麻煩。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM