c# - 已 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;";
几点注意事项:
IP是数据库的实际IP地址,不能贴出来。
从该 PC 使用 HeidiSQL 连接到数据库工作正常。
我还在本地 PC 上使用运行 MySQL Server docker 容器的 Ubuntu VM 检查了相同的代码,并且代码有效。
为了创建安装文件,我使用了 Visual Studio 安装程序扩展。
有任何想法吗?
解决方案
所以经过很长时间我找到了答案。我添加到连接字符串“SslMode=None”,问题就解决了。
推荐阅读
- python - 在 Numpy 数组中跳跃多元素切片
- authentication - 微服务的登录身份验证流程
- amazon-web-services - Control Tower AWS - 共享 s3 存储桶
- kinect - Open3D 的迭代次数
- javascript - javascript addEventListeners
- c# - 使用 C# Nuget 包打包 NodeJS 依赖项
- python - 仅当链接不包含 http时,用正则表达式替换 markdown 链接
- monogame - 如何在 Monogame 屏幕中正确拉伸图像
- python - Pyspark 得到 TypeError: can't pickle _abc_data 对象
- android - 如何在android中拥有一个动画ImageButton