【发布时间】:2015-03-22 16:14:21
【问题描述】:
.NET MySqlClient (6.9.5.0) 中是否有任何内容,当服务器池中的 MySQL 服务器没有响应(可能是由于临时网络问题)时,服务器被永久列入黑名单或绕过?在我们的日志记录中,我们注意到抛出了一个身份验证错误:
MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host '<HOST>' for user '<USER>' using method 'mysql_native_password' failed with message: Reading from the stream has failed. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Reading from the stream has failed. ---> System.IO.EndOfStreamException: Attempted to read past the end of the stream.
发生此错误后,每次尝试从数据库写入或读取都会失败,并显示以下错误消息:
MySql.Data.MySqlClient.MySqlException (0x80004005): No available server found.
有什么想法吗?当数据库服务器被移动到运行我们的应用程序的同一台主机上时,问题就不再发生了。
【问题讨论】:
-
这是否与bug有关:bugs.mysql.com/bug.php?id=72110
-
我不这么认为。类似的症状,但我们不做他们在文章中提到的事情。
-
会不会和这个bug有关? bugs.mysql.com/bug.php?id=52314
-
如果您的连接池在您丢失网络之前打开了所有潜在连接(来自连接字符串的最大池大小)。Net(或 MySQL)可能会通过假设主机拒绝创建任何新连接已经具有所需/允许的最大连接数/资源数。您是否在连接停止工作之前和之后检查了 SHOW PROCESSLIST 以查看您的所有连接是否在“已终止”或其他等待状态下保持打开状态?见:psce.com/blog/2012/05/15/…