ERROR 2013 (HY000) Lost connection to MySQL server at ‘reading authorization packet‘,

ERROR 2013 (HY000) Lost connection to MySQL server at ‘reading authorization packet’,

原因:
1.检查IPV4和IPV6优先级问题;
在windows中IPV6的权限先IPV4网络,可以通过cmd运行符查看:
在这里插入图片描述
在cmd中ping localhost解析出来的是IPV6的::1,原因是windows有个优先解析列表,当ipv6的优先级高于ipv4时,就会出现这种情况。网上有一种方法是修改注册表的,具体方法为:打开RegEdit,导航到HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ tcpip6 \ Parameters, 创建DisabledComponents DWORD注册表值,将其值设置为20(十六进制),然后重启电脑。这种方法我试了,还是没能解决。

查看IPV6优先级:

C:\Users\LOVO> netsh interface ipv6 show prefixpolicies
查询活动状态...

优先顺序    标签   前缀
----------  -----  --------------------------------
        50      0  ::1/128
        40      1  ::/0
        35      2  ::ffff:0:0/96
        30      4  2002::/16
        10      5  2001::/32
         5      13  fc00::/7
         3      11  fec0::/10
         1      12  3ffe::/16
         1      3  ::/96

请注意,IPv6地址(:: / 0)优先于IPv4地址(:: / 96,:: ffff:0:0/96),因此我们可以制定策略,使IPv6不会比任何IPv4地址有利。其中,标签表示优先级,0表示优先级最高,依次类推

  1. 定制策略,命令提示符(管理员方式运行)中执行下列命令:
C:\Windows\System32>netsh int ipv6 set prefix ::/96 50 0
确定
C:\Windows\System32>netsh int ipv6 set prefix ::ffff:0:0/96 40 1
确定
C:\Windows\System32>netsh int ipv6 set prefix 2002::/16 35 2
确定
C:\Windows\System32>netsh int ipv6 set prefix 2001::/32 30 3
确定
C:\Windows\System32>netsh int ipv6 set prefix ::1/128 10 4
确定
C:\Windows\System32>netsh int ipv6 set prefix ::/0 5 5
确定
C:\Windows\System32>netsh int ipv6 set prefix fc00::/7 3 13
确定
C:\Windows\System32>netsh int ipv6 set prefix fec0::/10 1 11
确定
C:\Windows\System32>netsh int ipv6 set prefix 3ffe::/16 1 12
确定

查看优先级 netsh interface ipv6 show prefixpolicies:

C:\Users\LOVO>netsh interface ipv6 show prefixpolicies
查询活动状态...
优先顺序    标签   前缀
----------  -----  --------------------------------
        50      0  ::/96
        40      1  ::ffff:0:0/96
        35      2  2002::/16
        30      3  2001::/32
        10      4  ::1/128
         5      5  ::/0
         3     13  fc00::/7
         1     12  3ffe::/16
         1     11  fec0::/10

ping 主机名:

C:\Users\test>ping localhost

正在 Ping localhost[127.0.0.1] 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128

127.0.0.1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

完成!

原文连接:https://blog.csdn.net/ambertian/article/details/70238020
2.Mysql数据库授权权限登录问题;

Linux登录到Mysql中

shell> mysql -u root -p

登录到Mysql中的表:

mysql> use mysql;

创建用户root授权权限:

#此处给127.0.0.1地址远程访问权限,也可可以增加多行localhost;
mysql> CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '123';       
#为root用户提供所有计算机远程连接访问权限;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
#或
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123';  

查看表名,得到如图:
在这里插入图片描述
最后刷新权限,退出数据库:

mysql> flush privileges;
mysql> quit;

重新启动数据库:

shell> service mysqld restart

在这里插入图片描述
(Ps:授权中可能存在因为/etc/my.cnf文件设置在{mysqld}下skip-grant-tables跳过了验证权限,无法创建用户,可以进入删除改行;

shell> vi /etc/my.cnf

找到该行并进行删除。

3.Mysql中my.cnf中DNS解析问题;

可以通过对/etc/my.cnf文件设置在{mysqld}下skip-name-resolve,skip-name-resolve是禁用dns解析,所以在mysql的授权表中就不能使用主机名了,只能使用IP。

shell> vi /etc/my.cnf

在{mysqld}下加入:
skip-name-resolve

4.其他问题

  1. 以上都无法解决可以考虑防火墙端口,尝试关闭防火墙;
  2. SSH_PORT中端口问题没有开放;
  3. 还有就是my.cnf中bind-address=127.0.0.1尝试注释掉该行或改成0.0.0.0;
  4. Mysql版本向低版本运行内存不足问题:原文
  5. 测试连接成功,重启Navicat;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当出现“lost connection to mysql server at ‘reading authorization packet’, system”错误时,意味着客户端无法正确连接到MySQL服务器,并且故障通常是由以下原因之一引起的: 1. 网络问题:可能是网络连接不稳定或网络延迟导致连接丢失。这可能是由于网络故障或服务器故障引起的。 解决方法:检查网络连接并确保网络稳定。尝试重新连接MySQL服务器,如果问题持续存在,可能需要联系系统管理员或网络服务提供商以解决网络问题。 2. 认证错误:可能是由于客户端提供的凭据与MySQL服务器的凭据不匹配引起的。这可能是由于密码错误或用户名错误等问题引起的。 解决方法:检查提供的用户名和密码是否正确,并确保它们与MySQL服务器上配置的凭据匹配。可以尝试使用正确的凭据重新连接MySQL服务器。 3. 服务器过载或故障:可能是由于MySQL服务器负载过重或发生故障导致无法处理连接请求。 解决方法:检查MySQL服务器的负载和状态。如果服务器过载,可以尝试等待一段时间再尝试连接。如果服务器发生故障,可能需要联系系统管理员或数据库管理员以解决问题。 综上所述,当出现“lost connection to mysql server at ‘reading authorization packet’, system”错误时,我们应该首先检查网络连接,确保网络稳定;然后检查提供的凭据是否正确;最后,检查MySQL服务器的负载和状态。根据具体情况采取适当的解决方法,可能需要与系统管理员、网络服务提供商或数据库管理员进行进一步的沟通和协调。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值