中午刚想趴一会,不料锅从天降!!!Mysql连不上了。。。。。。。

现象如下:

现象1:登录mysql所在服务器,连接MySQL 成功;

现象2:通过客户端远程连接MySQL,返回失败,如下:

Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx' (111)

现象三:通过某些客户端可以连,就是响应极慢。

现象四:通过客户端可以ping通,但是telnet 数据库端口失败。且无论ping还是telnet,数据库服务器均收不到数据包。

客户端: tcpdump -nn -i eth0 icmp  和  执行ping 服务端ip的操作
服务端: tcpdump -i br0 -nn icmp and host 客户端ip

现象五:show processlist 有好多unauthenticated user的用户(参考参考连接所述)

mysql> show processlist;
+-----+----------------------+---------------------+---------------------+---------+------+-------+------------------+
| Id  | User                 | Host                | db                  | Command | Time | State | Info             |
+-----+----------------------+---------------------+---------------------+---------+------+-------+------------------+
|   2 | root                 | 192.168.1.60:43961  | xxx           | Sleep   |   39 |       | NULL             |
|   7 | root                 | 192.168.1.34:41155  | xxx           | Sleep   |    7 |       | NULL             |
|  30 | root                 | 192.168.20.7:38282  | xxx     | Sleep   |    6 |       | NULL             |
|  44 | root                 | 192.168.20.7:38308  | xxx | Sleep   |    6 |       | NULL             |
| 106 | root                 | 10.88.9.23:61181    | NULL                | Sleep   |   19 |       | NULL             |
| 110 | unauthenticated user | 10.88.128.22:38648  | NULL                | Connect | NULL | login | NULL             |
| 111 | unauthenticated user | 10.88.10.185:57430  | NULL                | Connect | NULL | login | NULL             |
| 112 | unauthenticated user | 10.88.11.196:56473  | NULL                | Connect | NULL | login | NULL             |
| 113 | unauthenticated user | 10.88.128.22:38650  | NULL                | Connect | NULL | login | NULL             |
| 114 | unauthenticated user | 10.88.10.185:57439  | NULL                | Connect | NULL | login | NULL             |
| 115 | unauthenticated user | 10.88.128.117:58555 | NULL                | Connect | NULL | login | NULL             |
| 116 | unauthenticated user | 10.88.128.22:38653  | NULL                | Connect | NULL | login | NULL             |
| 117 | unauthenticated user | 10.88.10.185:57444  | NULL                | Connect | NULL | login | NULL             |
| 118 | unauthenticated user | 10.88.128.22:38655  | NULL                | Connect | NULL | login | NULL             |
| 119 | unauthenticated user | 10.88.128.22:38657  | NULL                | Connect | NULL | login | NULL             |
| 120 | unauthenticated user | 10.88.10.185:57453  | NULL                | Connect | NULL | login | NULL             |
| 122 | unauthenticated user | 10.88.128.22:38659  | NULL                | Connect | NULL | login | NULL             |
| 123 | unauthenticated user | 10.88.128.22:38661  | NULL                | Connect | NULL | login | NULL             |
| 124 | unauthenticated user | 10.88.10.185:57458  | NULL                | Connect | NULL | login | NULL             |
| 125 | unauthenticated user | 192.168.20.45:47091 | NULL                | Connect | NULL | login | NULL             |
| 126 | unauthenticated user | 192.168.20.45:47092 | NULL                | Connect | NULL | login | NULL             |
| 127 | unauthenticated user | 192.168.20.45:47093 | NULL                | Connect | NULL | login | NULL             |
| 128 | root                 | localhost           | NULL                | Query   |    0 | NULL  | show processlist |
| 129 | unauthenticated user | 10.88.128.22:38664  | NULL                | Connect | NULL | login | NULL             |
+-----+----------------------+---------------------+---------------------+---------+------+-------+------------------+
24 rows in set (0.01 sec)

问题解决办法:

第一步:修改mysql的my.conf配置文件,在[mysqld]模块下增加,停止mysql的域名反向解析。之后重启数据库,此项解决大多数问题

skip-name-resolve

第二步: 重启客户端的网卡,再次连接mysql,搞定剩下的一小部分问题。

#service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 10.88.128.66 is already in use for device eth0...[  OK  ]

结论

1.  针对MySQL的对连接的客户端进行DNS反向解析的处理,暂不晓得本质原因。网上暂没有搜到本质信息。参考【参考连接】

2. 网卡的问题,网管怀疑客户端的网卡自娱自乐了。。。。ping的时候压根没有走到目的地就返回了

【参考连接】:https://segmentfault.com/a/1190000002682272

今天早上开发那边发现mysql连接很慢,登陆到服务器上查看服务器日志都是正常的,无可疑记录,刚刚还好好的,怎么突然出现这个问题,于是登陆到mysql服务器上,查看下进程,发现有很多这样的连接:
218 | unauthenticated user | 192.168.10.6:44500 | NULL | Connect | NULL | login | NULL
219 | unauthenticated user | 192.168.10.6:44501 | NULL | Connect | NULL | login | NULL
........
放狗,放狗。。。
原因是由于mysql对连接的客户端进行DNS反向解析。
有2种解决办法:
1,把client的ip写在mysql服务器的/etc/hosts文件里,随便给个名字就可以了。
2,在 my.cnf 中加入 –skip-name-resolve 。
对于第一种方法比较笨,也不实用,那么 skip-name-resolve 选项可以禁用dns解析,但是,这样不能在mysql的授权表中使用主机名了,只能使用IP。
我理解mysql是这样来处理客户端解析过程的,
1,当mysql的client连过来的时候,服务器会主动去查client的域名。
2,首先查找 /etc/hosts 文件,搜索域名和IP的对应关系。
3,如果hosts文件没有,则查找DNS设置,如果没有设置DNS服务器,会立刻返回失败,就相当于mysql设置了skip-name-resolve参数,如果设置了DNS服务器,就进行反向解析,直到timeout。
有一点不明白,为什么连接mysql服务器内网的ip地址也要进行DNS反向解析,而这时候DNS解析返回给mysql的是什么呢?
望高手解答。

如有错误,还请各位数据库大神不吝赐教。

谢谢

转载于:https://www.cnblogs.com/zhzhang/p/7448006.html

Mysql异常问题排查与处理——mysql的DNS反向解析和客户端网卡重启相关推荐

  1. mysql dns反向解析_Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)

    Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve) 时间:2019-01-19 11:28作者:网友投稿 MySQL数据库收到一个网络连接后,首先拿到对方的IP地址, ...

  2. SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 同事报告一起奇怪的现象,一个最简单的测试PHP代码,在测试环境很正常,但是在正式环境下,无论用何种方式(tcp/ip.unix ...

  3. mysql dns反向解析_DNS练习之反向解析(示例代码)

    环境同正向解析一样. 切换到/var/named/chroot/etc目录下: 编辑named.rfc1912.zones文件,在末尾添加如下内容: [[email protected] etc]# ...

  4. typechoSQLIte转MySQL_Typecho SQLite与MySQL的数据库切换及解决MySQL连接打开缓慢问题

    (本科水平,写得不好请不吝指点 ) Ⅰ Abstract Typecho开源轻量级博客系统拥有WordPress主题插件二次开发等一系列优点,但相比于WordPress笨重复杂的操作,Typecho赢 ...

  5. mysql在线检测失败_一则线上MySql连接异常的排查过程

    Mysql作为一个常用数据库,在互联网系统应用很多.有些故障是其自身的bug,有些则不是,这里以前段时间遇到的问题举例. 问题## 当时遇到的症状是这样的,我们的应用在线上测试环境,JMeter测试过 ...

  6. mysql报错排查总结

    mysql报错: [root@zabbix ~]# mysql ERROR 2002 (HY000): Can't connect to local MySQL server through sock ...

  7. go语言 mysql卡死_一次mysql死锁的排查过程-Go语言中文社区

    一次mysql死锁的排查过程一.背景17号晚上要吃饭了,看旁边的妹子和佐哥还在调代码,就问了下什么问题啊,还在弄,妹子说,在测试环境测试给用户并发发送卡券时,出现了死锁,但看代码没有死锁,问题如下图 ...

  8. MySQL 异常:这一篇就够了,MySQL 抛出异常的几种常见解决方式小结

    Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connectio ...

  9. MySQL 异常有这一篇就够了!

    摘要:在本文中,总结了开发过程中最为常见的几种 MySQL 抛出的异常以及如何解决,包括高版本驱动的问题.时区配置问题.SSL 连接问题等,是一篇经验总结贴. 前言 在本文中,总结了开发过程中最为常见 ...

最新文章

  1. javascript的Math对象和全局函数
  2. JavaScript instanceof 运算符深入剖析
  3. 常见电脑字符编码总结
  4. python按身高体重排队_LeetCode-python 406.根据身高重建队列
  5. java的excel导出_java 实现excel 导出功能
  6. Verilog中wire与reg类型的区别(转载自http://www.cnblogs.com/farbeyond/p/5204586.html)
  7. iPhone 7 P适合什么系统?
  8. rtems源码树结构
  9. swift 展示html富文本,Swift HTML富文本显示
  10. ubuntu下oracle数据的导入,Ubuntu下Oracle10g的导入与导出
  11. 《Excel图表之道》——书和人
  12. 学习笔记(4):《微电子器件》陈星弼(第四版)第2章 PN结
  13. Mal-amido-PEG2-acid,756525-98-1末端羧酸可在活化剂(如EDC或HATU)存在下与伯胺基反应
  14. UE4-PixelStreaming(虚幻引擎4-像素流技术)笔记
  15. 怎样恢复计算机到桌面,电脑任务栏怎么还原到下面 电脑任务栏还原方法【图文】...
  16. 直达号PK公众号的背后还有哪些市场空间?
  17. 浅谈HTTP缓存机制
  18. gunicorn 安装部署详解
  19. 成功解决ImportError: cannot import name ‘imresize‘
  20. C语言和Java的优缺点

热门文章

  1. 零基础可以学习java吗_零基础真的可以学习java吗?
  2. keil4编译c语言,用keil4编译C语言代码,编译通过,但是链接时无法产生.hex文件。...
  3. 前端必备,Adobe Premiere Pro 常用快捷键
  4. 『设计模式』设计模式--模板方法模式
  5. ACM-ICPC 2019 山东省省赛总结
  6. java 通过IText生成PDF时顺序问题(图片)
  7. Optical_Flow(4)
  8. LIBSVM使用方法
  9. 卷积神经网络经典模型要点
  10. MarkDown编辑器常用语法