C#连接远程mysql数据库,收到错误“无法连接到任何指定的MySQL主机”

时间:2017-08-23 06:24:29

标签: c# mysql-error-1064

我正在查看有关此问题的许多帖子,但未找到答案。

我尝试连接到某些服务器上存在的mysql数据库,我使用https://www.connectionstrings.com/sql-server-2014/https://www.codeproject.com/Articles/43438/Connect-C-to-MySQL中的以下代码

private string server = "xx.xxx.xxx.xx";
private string database = "testDB";
private string username = user;
private string password = password;
string connectionString;
connectionString = string.Format("Server={0},3306; Database=
{1}; User Id={2}; password={3};", server, database, username, 
password);

connection = new MySqlConnection(connectionString);
try
{
    connection.Open();
}
catch (MySqlException ex)
{
   return false;
}      

我从nuget控制台安装MySql.Data.dll并打开服务器中的端口3306(tcp)。

当我尝试打开连接时,它会给我一个错误"无法连接到任何指定的MySQL主机"。

有人知道为什么?

由于

2 个答案:

答案 0 :(得分:4)

您的连接字符串格式不正确。 通过用逗号分隔条目,你告诉你有多个服务器,显然不是这样。如果您需要指定端口,请尝试使用:

connectionString = string.Format("Server={0}; Port=3306; Database=
{1}; Uid={2}; Pwd={3};", server, database, username, 
password);

但由于3306是MySQL服务器接受连接的默认端口,因此没有必要。 在这里,您可以找到more examples

答案 1 :(得分:0)

您的连接字符串实际上应该没问题。

您的问题是MySqlConnection。你有一个MS SQL Server,而不是MySQL。

您应该使用名称空间SqlConnection中的System.Data.SqlClient代替。

您的端口可能不对,因为它是默认的MySQL端口。只是尝试省略端口,然后它将尝试使用MS SQL Server的默认端口。