C# 连接到本地网络上的MariaDB服务器时出现命名管道提供程序错误
我无法使用正在编写的程序中的C#代码连接到我的MariaDB服务器。服务器是我本地网络上的一台CentOS机器,我可以使用如下ip地址从该机器以及网络上的其他机器访问服务器上的数据库:C# 连接到本地网络上的MariaDB服务器时出现命名管道提供程序错误,c#,mysql,mariadb,C#,Mysql,Mariadb,我无法使用正在编写的程序中的C#代码连接到我的MariaDB服务器。服务器是我本地网络上的一台CentOS机器,我可以使用如下ip地址从该机器以及网络上的其他机器访问服务器上的数据库:mysql-h 192.168.0.6-u calendar\u user-p,然后输入密码。已启用远程连接以允许此操作 但是,当我尝试在C#代码中连接时,我无法连接,并且出现错误,指出存在“命名管道提供程序:错误40-无法打开到SQL Server的连接”。因为我在连接字符串中使用的信息与我在其他登录中使用的信息
mysql-h 192.168.0.6-u calendar\u user-p
,然后输入密码。已启用远程连接以允许此操作
但是,当我尝试在C#代码中连接时,我无法连接,并且出现错误,指出存在“命名管道提供程序:错误40-无法打开到SQL Server的连接”。因为我在连接字符串中使用的信息与我在其他登录中使用的信息相同,所以我不确定是什么导致了问题。我已尝试在客户端计算机和各种不同的连接字符串上禁用windows防火墙
目前,MariaDB正在3306端口上运行,我要连接的数据库是cloud\u calendar和用户cloud\u user。我已验证密码是否正确
这是我的连接代码:
string connectionString = @"Data Source=192.168.0.6;Initial Catalog=cloud_calendar;User ID=calendar_user;Password=" + SQL_PASSWORD + ";" ;
Connection = new SqlConnection(connectionString);
try
{
Connection.Open();
Connection.Close();
}catch(Exception e)
{
string msg = String.Format("Problem opening connection to database: {0}", e);
MessageBox.Show(msg);
}
正如在评论中指出的,我在尝试连接时使用了不正确的库。我安装了MySql for visual studio和Connector/NET,然后使用nuget包管理器导入MySql.Data库。完成此操作后,我可以轻松连接。您似乎正在使用MSSQL客户端库连接到MySQL,而MySQL永远不会工作。@yaakov感谢您向我指出这一点。你能告诉我一个更好的库来代替吗?
使用MySql.Data.MySqlClient代码>。使用Nuget包管理器中的MySql.Data。之所以必须使用不同的程序集,是因为MySQL和MSSQL是两种完全不同的产品