首页 > 解决方案 > 已 ping 到 MySQL 服务器,但无法通过 C# 代码连接

问题描述

我正在使用 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是数据库的实际IP地址,不能贴出来。

  2. 从该 PC 使用 HeidiSQL 连接到数据库工作正常。

  3. 我还在本地 PC 上使用运行 MySQL Server docker 容器的 Ubuntu VM 检查了相同的代码,并且代码有效。

  4. 为了创建安装文件,我使用了 Visual Studio 安装程序扩展。

有任何想法吗?

标签: c#mysqldatabaseconnection

解决方案


所以经过很长时间我找到了答案。我添加到连接字符串“SslMode=None”,问题就解决了。


推荐阅读