变量定义
The number of failed attempts to connect to the MySQL server。
连接MySQL服务器失败的次数。
查询命令
SHOW GLOBAL STATUS LIKE 'Aborted_connects';
详细解释
如果客户端连接mysql服务器失败,那么服务器会增加Aborted_connect变量的值,每失败一次,变量值加1。
以下几种情况会导致Aborted_connect变量值增加。
- 客户端因为没有权限访问数据库导致的连接失败
数据库中无此用户或该用户所在IP没有权限访问
- 客户端因为密码错误导致的连接失败
$ mysql -hxxx -uxxx -pxxx
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'172.17.0.1' (using password: YES)
- 连接包(connection packet)没有包含正确的信息导致的连接失败
对MySQL的端口进行端口测试(ping 端口),因为 tcping 的包,不包含正确的信息(right information)。
tcping 192.168.50.200 33002
192.168.50.200 port 33002 open.
# 之后去查看aborted_connects变量值,此时应该 +1 了
- 获取连接包耗费多余connect_timeout系统变量设置的时间导致的连接失败,即连接超时(查看变量值SHOW GLOBAL VARIABLES LIKE 'connect_timeout';)
补充说明
需要注意的是,测试前要将变量清空。
flush status;
相关变量
- 与 max_connect_error 的关系
如果超过 max_connect_error 的限制后,某一个客户端持续访问MySQL,这个是否会引起状态变量Aborted_connects 变化呢,实验测试的答案是不会。
有兴趣的可以验证一下,很奇怪,网上有不少文章都说如果连接数满了,也会导致Aborted_connects状态变量增加,实际上这个是不会引起状态变量Aborted_connects变化的。