连接mysql服务验证失败_MySQL连接抛出AuthenticationFailed错误的分析与解决思路

本文分析了使用MySQL Connector/NET时遇到的AuthenticationFailed错误,该错误表现为偶尔出现,仅在特定服务器上发生。问题源于WMI查询操作系统版本耗时过长,超过数据库的Connect_timeout。解决方案是缓存操作系统信息,避免每次连接时进行WMI查询,从而消除超时错误。
摘要由CSDN通过智能技术生成

【问题描述】

在应用端,偶尔看到有如下报错:

Authentication to host 'xxxx' for user 'yyyy' using method 'mysql_native_password' failed with message: Reading from the stream has failed.

表现特征:

1.只有用Connector/NET 出现这个问题, 用JDBC驱动没有类似问题。

2.多台应用服务器,只有一台报这个错,因此可以排除服务器端的问题。

3.问题非常随机,重启一下服务器/IIS,就能临时解决问题。

4.有一些场景应用服务器CPU并不是很高,也会偶尔抛出这个错来。

客户端是Windows机器, 驱动是MySQL Connector ADO.NET Driver for MySQL (Connector/NET) ,使用的版本是6.9.9,是比较新的版本。

下面话不多说了,来一起看看详细的分析与解决思路吧

【问题分析】

我们在应用服务器端和数据库端抓包。两边抓到的包是一致的。可以排除网络问题。下面是抓到的包,以及时间点:

编号

绝对时间

相对时间(秒)

源头

目的

网络包内容

1

12:58:47

9.07

应用服务器

数据库服务器

......S.

2

12:58:47

9.07

数据库服务器

应用服务器

…A..S.

3

12:58:47

9:07

应用服务器

数据库服务器

…A….

4

12:58:47

9:07

数据库服务器

应用服务器

…AP…

5

12:58:47

9.27

应用服务器

数据库服务器

…A….

6

12:58:57

19.12

数据库服务器

应用服务器

…A…F

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值