针对mysql的连接参数和状态值,本文做些介绍和对比
一、MYSQL连接参数变量
1、常用连接数限制参数
show variables like ‘%connect%‘;
| max_connect_errors | 999999999 | ##允许单用户连接错误最大值,超过后在不刷新状态的情况下,禁止该用户新连接 | max_connections | 6000 | ##实例最大连接数限制 | max_user_connections | 0 | ##但用户连接最大限制,默认0表示无限制,遵守总连接数小于等于max_connections | connect_timeout | 10 | ##用户连接超时限制,超过10秒,如果依旧无法连接到mysql,则终止连接
2、超时参数
mysql -e "show variables like ‘%timeout%‘"
+-----------------------------+----------+ | connect_timeout | 10 | ##连接超时,10秒 | delayed_insert_timeout | 300 | ##延迟插入超时时间,300秒 | have_statement_timeout | YES | ## | innodb_flush_log_at_timeout | 1 | ##刷新redo log buffer超时时间,1秒 | innodb_lock_wait_timeout | 120 | ##事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败,120秒 | innodb_rollback_on_timeout | ON | | interactive_timeout | 28800 | ##mysql客户端交互连接超时时间,默认8小时,用于控制sleep超时 | lock_wait_timeout | 31536000 | ##主要针对DDL产生的metadata locks超时时间 | net_read_timeout | 60 | ##网络读取数据超时时间,60秒 | net_write_timeout | 60 | ##为网络写入数据超时间60秒 | rpl_stop_slave_timeout | 31536000 | ##停止从库服务超时时间 | slave_net_timeout | 60 | ##slave网络超时时间 | thread_pool_idle_timeout | 60 | | wait_timeout | 28800 | ##jdbc/odbc连接超时时间,默认8小时,用于控制sleep超时 +-----------------------------+----------+
二、MySQL连接状态变量
1、常用链接状态变量
show global status like ‘%connect%‘;
+-----------------------------------------------+----------+ | Connection_errors_max_connections | 1906160 | ##用户最大错误连接数 | Connections | 87341259 | ##历史用户连接累积值 | Max_used_connections | 10242 | ##历史最大连接用户数,processlist看到的连接数 | Threads_connected | 298 | ##当前用户连接数,当前processlist数
show global status like ‘%Threads_running%‘;
| Threads_running | 2 | ##当前用户连接处于running状态的数目,非sleep
show global status like ‘%abort%‘;
+------------------+----------+ | Aborted_clients | 85050948 | ##非法终止客户端连接的状态统计,例如通过kill终止连接 | Aborted_connects | 1905528 | ##非法连接操作状态统计,例如用户密码错误
三、常见问题分析
1、最大连接数超出限制
2、用户连接错误数超出限制
3、abort值非常高
4、连接数不断增加
5、