我间歇性地遇到了以下错误。
验证主机' 127.0.0.1'对于用户' root'使用方法' mysql_native_password'消息失败:从流中读取失败。
任何时候它都会出现,我的智慧结束了。我还发布了一个关于MySQL漏洞的错误,解决方案并没有证明在任何方面都有效。我希望你们能帮助我。
以下是MySQL Bug的链接,了解详情:Never seems to go away!
更多细节:我有一个客户端 - 服务器系统,但是当服务器系统上的本地运行的应用程序试图运行查询时,会在服务器系统(安装MySQL数据库的地方)上发生此错误。
我已经开了一个问题here但是已经死了。只是一个警告我认为skip-name-resolve解决了这个问题,但似乎只是降低了频率。希望有人能帮我解决这个问题。
编辑:MySQL人员说,如果客户端服务器设置服务器很长时间未使用,它可能会关闭连接。但是,这并不是我所面临的问题,因为每次我想执行查询时都会创建一个新连接。我在上一篇关于MySQL Bugs的评论中明确指出了这一点。
答案 0 :(得分:3)
我经常使用亚马逊的MySQL RDS实例收到此错误。和大多数多AZ实例。
这可以解释为什么Oracle开发人员无法重现它并且不会将其视为一个问题。
无论如何,我必须处理它并在打开连接时添加重试逻辑。
答案 1 :(得分:1)
不幸的是,如果应用程序和 mysql 在同一台计算机上,则会出现此错误,如果您将其移动到另一台计算机上,则没问题。
我尝试了很多方法,但目前没有其他解决方案。错误已被其他人多次报告https://bugs.mysql.com/bug.php?id=76597
答案 2 :(得分:0)
伙计们,我尝试这样做:连接字符串中为“ SslMode = None”,但是如果您需要SSL,请阅读以下内容: http://www.voidcn.com/article/p-phfoefri-bpr.html
这是一个有效的示例连接字符串:
connectionString="Server=192.168.10.5;Database=mydata;Uid=root;Pwd=****;SslMode=None"
希望这会有所帮助
答案 3 :(得分:0)
此问题是由Ssl引起的。
解决方案1:不需要SSL。由于它是由SSL引起的,因此我们可以通过在连接字符串后附加“ SslMode = None”来关闭SSL。
解决方案2:需要SSL,服务器身份很重要,需要进行验证。服务器需要Internet连接才能进行证书验证。请注意,crypto API不会为每个进程更新CTL。 CTL保持在操作系统级别。一旦连接服务器以连接到服务器并建立SSL数据库连接,CTL将自动更新。然后,您可以断开Internet连接。再次注意,CTL有其到期日期,此后Windows需要再次更新它。这可能会在几个月后发生。
解决方案3:需要SSL,但是服务器身份并不重要。通常,在这种情况下,SSL仅用于加密网络传输。我们可以关闭CTL更新:
按Win + R打开“运行”对话框 键入“ gpedit.msc”(不带引号),然后按Enter键 在“本地组策略编辑器”中,依次展开“计算机配置”,“管理模板”,“系统”,“ Internet通讯管理”,然后单击“ Internet通讯设置”。 在详细信息面板中,双击“关闭自动根证书更新”,单击“启用”,然后单击“确定”。此更改将立即生效,而无需重新启动。
答案 4 :(得分:0)
我遇到了错误
使用方法'mysql_native_password'对用户'root'的主机'localhost'进行身份验证失败,并显示以下消息:从流中读取
当我在连接字符串中放入SslMode=None
时,我就解决了。
但是,我检查了邮件是否与您不同
检查我的连接
connection.ConnectionString = "server=myadressserver;userid=myuser;password=mypassword;database=test;SslMode=None";
答案 5 :(得分:0)
我在Windows窗体应用程序上执行升级时遇到了完全相同的问题。我发现的解决方案是更换服务器,因为那台服务器出现了问题。在呈现您所描述的类似情况的服务器上,已将WordPress安装了MYSQL 5.6.34,在另一台服务器上,我使用MYSQL版本5.6.26进行了全新安装。
我不知道这是否与所使用的环境变量有关。我相信这与连接超时无关,如果它是仅与打开的连接一起使用的属性。在共享环境以及使用Maria DB进行的本地安装中,都会发生此错误。我发现的另一个问题是,检索数据的选择命令之一在格式方面存在问题,不尊重空格:
SELECT COLUNA1, COLUNA2 FROM TABLE;
我将表中的SELECT COLUMN1,COLUMN2进行了更改;
我仍在测试我提出的该解决方案,并且在发布时不再有错误。