我不时收到以下错误。
我知道连接字符串是正确的 - 首先在应用程序启动后对其进行测试,如果失败,应用程序会给出一条消息并退出。
其次,报告它的功能也在大部分时间使用它来正确连接,它只是时不时地发生。
我尝试更改为 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/