簡體   English   中英

已 ping MySQL 服務器,但無法通過 C# 代碼連接

[英]Has ping to MySQL Server, but fails to connect through C# code

我正在使用 C# 程序連接到數據庫並在網格(TableFromMySql)中顯示數據。

我將我的程序安裝在與數據庫位於同一網絡的 PC 上。 Ping 沒問題,但我的程序無法連接,它到達 catch 語句並顯示“沒有連接到 DB”錯誤。

private void SQLMethod(string query)
{
        try
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                connection.Open();

                using (MySqlCommand cmdSel = new MySqlCommand(query, connection))
                {
                    DataTable dt = new DataTable();
                    MySqlDataAdapter da = new MySqlDataAdapter(cmdSel);
                    da.Fill(dt);

                    TableFromMySql = dt.DefaultView;

                    if (TableFromMySql.Count == 0)
                        System.Windows.MessageBox.Show("No results.", "INFO", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                connection.Close();
            }
        }        
        catch
        {
            System.Windows.MessageBox.Show("No connection to " + serverIP, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
        }
}

連接字符串是一個字符串值:

private const string connectionString =
        "SERVER=IP;" +
        "PORT=3306;" +
        "DATABASE=db;" +
        "UID=root;" +
        "PASSWORD=password;";

幾點注意事項:

  1. IP是DB的實際ip地址,不能貼。

  2. 從該 PC 使用 HeidiSQL 連接到數據庫工作正常。

  3. 我還使用運行 MySQL 服務器 docker 容器的 Ubuntu VM 在本地 PC 上檢查了相同的代碼,並且代碼有效。

  4. 為了創建安裝文件,我使用了 Visual Studio 安裝程序擴展。

有任何想法嗎?

所以經過很長時間我找到了答案。 我添加到連接字符串“SslMode=None”,問題就解決了。

暫無
暫無

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

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