本文主要给大家介绍的是关于MySQL中Aborted告警的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

实战
Part1:写在最前
在MySQL的error log中,我们会经常性看到一些各类的Aborted connection错误,本文中会针对这类错误进行一个初步分析,并了解一个问题产生后的基本排查思路和方法。掌握这种方法是至关重要的,而不是出现问题了,去猜,去试。数据库出现问题的时候需要DBA在短时间内快速解决问题,因此一个好与坏的DBA,区别也在于此。
Part2:种类
[Warning] Aborted connection 305628 to db: 'db' user: 'dbuser' host: 'hostname' (Got an error reading communication packets) [Warning] Aborted connection 81 to db:'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets) [Warning] Aborted connection 109 to db:'helei1' user: 'sys_admin' host: '192.168.1.1' (Got an error writing communication packets) [Warning] Access denied for user 'root'@'127.0.0.1' (using password: YES) [Warning] Got an error writing communication packets
Part3:重点参数分析
wait_timeout
| Command-Line Format | --wait-timeout=# | ||
| System Variable | Name | wait_timeout | |
| Variable Scope | Global, Session | ||
| Dynamic Variable | Yes | ||
| Permitted Values (Windows) | Type | integer | |
| Default | 28800 | ||
| Min Value | 1 | ||
| Max Value | 2147483 | ||
| Permitted Values (Other) | Type | integer | |
| Default | 28800 | ||
| Min Value | 1 | ||
| Max Value | 31536000 | ||
这个参数指的是数据库系统在关闭它之前,服务器等待非交互式连接上的活动的秒数。
interactive_timeout
| Command-Line Format | --interactive-timeout=# | ||
| System Variable | Name | interactive_timeout | |
| Variable Scope | Global, Session | ||
| Dynamic Variable | Yes | ||
| Permitted Values | Type | integer | |
| Default | 28800 | ||
| Min Value | 1 | ||
这个参数指的是在关闭交互式连接之前,服务器等待活动的秒数
Warning:警告这两个参数建议一起调节,能够避免一些坑。
本文的两个参数值采用的是默认值
mysql> show global variables like '%timeout%'; +----------------------------+----------+ | Variable_name | Value | +----------------------------+----------+ | connect_timeout | 10 | | delayed_insert_timeout | 300 | | innodb_lock_wait_timeout | 50 | | innodb_rollback_on_timeout | OFF | |interactive_timeout | 28800 | | lock_wait_timeout | 31536000 | | net_read_timeout | 30 | | net_write_timeout | 60 | | slave_net_timeout | 3600 | |wait_timeout | 28800 | +----------------------------+----------+ 10 rows in set (0.01 sec)
另外在数据库中,我们重点关注下这两个参数,看看什么情况下Aborted_clients会提升,什么情况下Aborted_connects 会提升
mysql>show global status like 'aborted%'; +------------------+-------+ |Variable_name | Value | +------------------+-------+ |Aborted_clients | 19 | |Aborted_connects | 0 | +------------------+-------+ 2 rows inset (0.00 sec)
Part4:案例1
这里我故意输入错误的密码5次,来看下数据库的error log和Aborted的哪个参数记载了这一问题
[root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES)
可以看出,这里的Aborted_connects 记录了密码错误的这一问题
mysql>show global status like 'aborted%'; +------------------+-------+ |Variable_name | Value | +------------------+-------+ |Aborted_clients | 19 | |Aborted_connects | 5 | +------------------+-------+ 2 rows inset (0.00 sec)
error log中,也记载了这类密码输错的信息
[Warning] Access denied for user'root'@'127.0.0.1' (using password: YES) [Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES) [Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES) [Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES) [Warning] Access denied for user 'root'@'127.0.0.1' (using password:YES)
Part5:案例2
接下来我们看下文章第三节提到的两个重点参数对数据库连接的行为影响
这里我们将这两个参数均配置为10秒
mysql>set global wait_timeout=10; Query OK,0 rows affected (0.00 sec) mysql>set global interactive_timeout=10; Query OK,0 rows affected (0.00 sec) mysql>show processlist; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 79 Current database: *** NONE *** +----+------+-----------------+------+---------+------+-------+------------------+ | Id |User | Host | db | Command | Time | State | Info | +----+------+-----------------+------+---------+------+-------+------------------+ | 79 |root | 127.0.0.1:42016 | NULL | Query | 0 | NULL | show processlist | +----+------+-----------------+------+---------+------+-------+------------------+ 1 row in set (0.00 sec)
这里三次操作,可以看到clients数上升,这是由于timeout参数控制的,已经连接上数据的连接被杀掉。
mysql>show global status like 'aborted%'; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 81 Current database: *** NONE *** +------------------+-------+ |Variable_name | Value | +------------------+-------+ |Aborted_clients | 22 | |Aborted_connects | 5 | +------------------+-------+ 2 rows in set (0.01 sec)
error log中记载的是
[Warning] Aborted connection 81 to db: 'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets) [Warning] Aborted connection 78 to db: 'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets) [Warning] Aborted connection 79 to db: 'unconnected' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets)
Part6:案例3
在这个案例中我们看下最大连接数对数据库连接的行为影响
mysql>show global variables like 'max_conn%'; +--------------------+-------+ |Variable_name | Value | +--------------------+-------+ |max_connect_errors | 1000 | |max_connections | 1024 | +--------------------+-------+ 2 rows in set (0.00 sec) mysql>set global max_connections=2; Query OK,0 rows affected (0.00 sec)
这里看到爆出了连接数过多的问题
[root@HE3~]# mysql -uroot -pMANAGER -h127.0.0.1 ERROR 1040 (HY000): Too many connections
而错误日志没有任何记录
Part7:案例4
第三方工具navicat select结果没有出来的时候选择停止则出现
clients上涨
mysql>show global status like 'aborted%'; +------------------+-------+ |Variable_name | Value | +------------------+-------+ |Aborted_clients | 28 | |Aborted_connects | 10 | +------------------+-------+ 2 rows in set (0.00 sec)
error log日志记录
170626 16:26:56 [Warning] Aborted connection 109 to db: 'helei1' user: 'sys_admin' host: '192.168.1.1' (Got an error writing communication packets)
Part8:原因总结
总结
通过这4个案例,我们能够了解到,Aborted_clients、和Aborted_connects的区别,以及什么情况下会爆出什么样的错误日志,文章第二节中的几个Aborted错误是常见的错误,这类错误出现的时候脑海里要有一个理论知识,知道什么情况下,会出现什么样的错误,以便快速定位问题。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# mysql
# aborted
# 告警日志
# MYSQL SERVER收缩日志文件实现方法
# MySQL中常见的几种日志汇总
# 详解 Mysql 事务和Mysql 日志
# MySQL读取Binlog日志常见的3种错误
# MySQL开启慢查询日志功能的方法
# mysql binlog(二进制日志)查看方法
# MySQL慢查询日志的基本使用教程
# 详解grep获取MySQL错误日志信息的方法
# MySQL Aborted connection告警日志的分析
# 的是
# 这两个
# 这类
# 应用程序
# 情况下
# 这一
# 指的是
# 连接数
# 客户端
# 而不是
# 这是
# 几个
# 是在
# 也有
# 好了
# 相关内容
# 在这个
# 之处
# 没有任何
# 也在
相关文章:
简单实现Android文件上传
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
如何在IIS7上新建站点并设置安全权限?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
网站代码制作软件有哪些,如何生成自己网站的代码?
制作电商网页,电商供应链怎么做?
实例解析Array和String方法
专业商城网站制作公司有哪些,pi商城官网是哪个?
建站之星如何修改网站生成路径?
宁波自助建站系统如何快速打造专业企业网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
外贸公司网站制作哪家好,maersk船公司官网?
网站企业制作流程,用什么语言做企业网站比较好?
建设网站制作价格,怎样建立自己的公司网站?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
如何快速选择适合个人网站的云服务器配置?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
html制作网站的步骤有哪些,iapp如何添加网页?
网页设计网站制作软件,microsoft office哪个可以创建网页?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
用v-html解决Vue.js渲染中html标签不被解析的问题
实例解析angularjs的filter过滤器
如何选择PHP开源工具快速搭建网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
如何挑选优质建站一级代理提升网站排名?
建站之星代理商如何保障技术支持与售后服务?
如何通过老薛主机一键快速建站?
如何选择网络建站服务器?高效建站必看指南
如何用y主机助手快速搭建网站?
如何通过服务器快速搭建网站?完整步骤解析
SQL查询语句优化的实用方法总结
岳西云建站教程与模板下载_一站式快速建站系统操作指南
小型网站建站如何选择虚拟主机?
想学网站制作怎么学,建立一个网站要花费多少?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何零成本快速生成个人自助网站?
海南网站制作公司有哪些,海口网是哪家的?
官网网站制作腾讯审核要多久,联想路由器newifi官网
建站之星后台管理系统如何操作?
建站之星如何一键生成手机站?
如何在IIS中配置站点IP、端口及主机头?
常州自助建站工具推荐:低成本搭建与模板选择技巧
香港服务器网站推广:SEO优化与外贸独立站搭建策略
如何登录建站主机?访问步骤全解析
山东云建站价格为何差异显著?
教学网站制作软件,学习*后期制作的网站有哪些?
如何通过网站建站时间优化SEO与用户体验?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在腾讯云免费申请建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。