我不时收到以下错误。



我知道连接字符串是正确的 - 首先在应用程序启动后对其进行测试,如果失败,应用程序会给出一条消息并退出。

其次,报告它的功能也在大部分时间使用它来正确连接,它只是时不时地发生。

我尝试更改为 127.0.0.1,但似乎没有什么不同。

它在 Windows Server 2012 64 位上。

我已将 127.0.0.1 localhost 添加到主机文件中。

应用程序在 99% 的情况下正常运行并连接到数据库,只是时不时地出现此错误。

最重要的是,我已经检查了 show full processlist 命令,并且我在任何时候都只有几个连接。

我无法解释这一点,也无法弄清楚如何解决它。

谢谢,
吉姆

最佳答案

这已经很老了,但是因为我刚刚找到了这个问题的解决方案,所以我会分享它,以防有人仍在寻找它(据我所知,这也是当前 Mysql 版本的一个问题)。

这种问题记录在 this bug report 中。

我在这里引用该错误报告中最重要的答案:


....
MySqlConnection _conn = new MySqlConnection("MyConnectionString");
private void CheckConnection()
{
   if(!_conn.Ping())
   {
     _conn.Open();
   }
}
....


....
private void button1_Click(object sender, EventArgs e)
{
  //assuming that the connection is already open
  CheckConnectionState();
  var cmd = new MySqlCommand("select 1", _conn);
  cmd.ExecuteNonQuery();
}
....

关于MySQL - 身份验证(但仅在某些时候),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25743581/

10-14 15:59