max_connections:
最大连接数,默认为 151 ,可动态修改。 全局变量, 对所有用户生效。实际上允许 max_connections + 1 个客户端连接,额外一个连接供具有 SUPER 特权的用户使用
max_user_connections:
对于单个数据库用户允许的最大同时连接数。默认为 0 ,即表示无限制,可动态修改。
1. 针对所有用户有效
mysql> set @@global.max_user_connections=2;
2. 针对单个用户有效
mysql> grant usage on *.* to keyman@% with max_user_connections 2;
max_connect_errors:
当同一个客户端连接出错的次数达到 max_connect_errors 时,服务器将阻止该主机进行再次连接。默认为 100 ,可动态修改。 (中断的数据库连接,而非密码错误) 超阀值后报错:
ERROR 1129 (00000): Host ‘xxx’ is blocked because of many connection errors. Unblock with ‘mysqladmin flush-hosts’”
解决方案:
1、将变量max_connection_errors的值设置为一个更大的值
2、 flush hosts
3:将变量host_cache_size设置为0
connect_timeout:
等待一个连接响应的时间,默认为 10s ,在获取连接阶段起作用,可动态修改。
Lost connection to MySQL server at 'XXX' 错误,那就要考虑增大 connect_timeout 值了,默认值 10s 对于网络良好的情况下是够用的,如果客户端和服务端网络有延迟的情况,可以将 connect_timeout 参数调大来避免发生连接超时的错误。
back_log:
暂存的连接数量,如果MySQL的连接数据达到max_connections 时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即 back_log,如果等待连接的数量超过back_log,将不被授予连接资源
Max_used_connections : 服务启动到现在,同一时刻并行连接数的最大值
Max_used_connections_time 服务启动到现在, Max_used_connections达到当前值的时间
select * from `performance_schema`.global_status where variable_name='Connections' 服务启动以来,总共连接次数
thread_cache_size 线程缓存 threads_connected 与 show processlist一致
查看当前连接
show processlist
show full processlist