我正在尝试使用IPv6连接到mySql实例,如下所示:
myConnectionString = "server= 2001:3456:2343:1:1436:b2e4:ce65:b987;" + "uid=root;"
+"pwd=passroot;" + "database=mydb;";
try
{
conn = new MySql.Data.MySqlClient.MySqlConnection();
conn.ConnectionString = myConnectionString;
conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MySqlConnEstablished = false;
Exeption = ex;
IsExceptionRaised = true;
}
我一直得到错误的消息:"无法连接到任何指定的mysql主机"
但是,当我使用IPv4地址时,它可以正常工作。
答案 0 :(得分:1)
当MySql Connector尝试使用IPv6连接到服务器时,会发生此问题。您只需要更新“MySql Connector”driver,问题就会得到解决。
答案 1 :(得分:1)
看起来最新的MySql.Data (8.0.10-rc at the moment)仍然不支持IPv6。我通过切换到开源MySqlConnector
解决了这个问题答案 2 :(得分:0)
您可以通过NuGet https://mysql-net.github.io/MySqlConnector/使用MySqlConnector 这样的演示
static void Main(string[] args)
{
using (MySqlConnection conn = new MySqlConnection("server=::1;uid=ipv6test;pwd=root;database=test1;CharSet=utf8"))
{
string sql = "select * from host";
using (MySqlCommand comm = new MySqlCommand(sql, conn))
{
conn.Open();
var reader = comm.ExecuteReader();
while (reader.Read())
{
string host = reader["host"] == System.DBNull.Value ? string.Empty : reader["host"].ToString();
Console.WriteLine(host);
}
reader.Close();
}
}
Console.ReadKey();
}