mysql连接数查看常用sql语句+如何永久性修改参数
SHOW VARIABLES LIKE 'max_connections'; #查看数据连接数
SHOW VARIABLES LIKE 'max_connect_errors' ; #100 最大错误连接数。连续失败连接数超过着数值,这个ip就会被db拒绝访问。需要执行:FLUASH HOSTS; 这个命令去解除。
SHOW STATUS LIKE 'Threads_connected'; #查看曾经的线程连接数
SHOW STATUS LIKE 'Max_used_connections'; #查看最大使用过的连接数
SHOW VARIABLES LIKE 'wait_timeout'; #查看 db的非交互式空闲等待时间
SHOW VARIABLES LIKE 'interactive_timeout'; #查看 db的交互式空闲等待时间
查看正在执行的sql:
show processlist;
show full processlist;
1.如何修改 max_connect_errors
当一个代理ip访问数据库由于错误连接达到上下后,这个ip就会被数据库拒绝。 解决方案:
1. 临时方案: 1) 可以临时修改大一些这个错误连接数: SET GLOBAL max_connect_errors = 100; SHOW VARIABLES LIKE 'max_connect_errors' ; 2) 修改步骤一后,还需要“刷新数据库”: mysql -u root #先登录数据库 mysqladmin -uroot -p flush-hosts; 登录后执行这个关键命令: FLUSH HOSTS; 2.永久解决方案 在 my.cnf 中 [mysqld] 添加 max_connect_errors=100 重启生效。
添加方式:
3.1 编辑db的管理配置文件(systemd方式管理服务),路径可能是:
sudo vim /etc/my.cnf.d/server.cnf
或者:
sudo vim /etc/my.cnf
3.2 添加
[mariadb]
max_connect_errors=100
3.3 重启db:
sudo systemctl daemon-reload #此处可不用执行这个命令,只要在mariadb.service文件修改了才需要执行这个加载命令
sudo systemctl restart mariadb.service
2.如何修改 max_connections
方案1. 临时修改 1.修改命令: SET GLOBAL max_connections = 1300; 2.上面的命令修改完成后,还需要验证是否生效,可以用 SHOW VARIABLES LIKE 'max_connections'; 这个命令来确认 方案2:永久 修改方案: 1.修改mysql的配置文件
编辑db的管理配置文件,路径可能是:
sudo vim /etc/my.cnf.d/server.cnf
或者:路径如下 sudo vim /etc/my.cnf
然后,添加配置:
[mariadb]
max_connections = 1300
2.重启mysql
sudo systemctl restart mariadb.service
3.如果重启后不生效如何解决:
linux中大多数采用了systemd服务管理的方式,systemd服务可能是限制的问题导致了,这很关键,因为很多现代Linux发行版都使用systemd。
如果MariaDB服务文件的LimitNOFILE设置过低,会限制最大连接数。展示的情况和用户的问题非常相似,都是配置了高连接数但实际生效值很低
3.1 编辑mariadb.service
sudo vi /usr/lib/systemd/system/mariadb.service
3.2 在[Service]部分添加或修改文件描述符限制:
[Service]
LimitNOFILE=65535
3.3 重新加载systemd配置并重启MariaDB:
sudo systemctl daemon-reload
sudo systemctl restart mariadb
3.4 排查配置覆盖
MariaDB会按顺序读取多个配置文件,后读取的配置会覆盖前面的。
检查配置加载顺序:执行以下命令可以查看配置文件的读取顺序 :
mysql --help | grep "my.cnf"
检查冲突配置:
根据上一步找到的路径,逐一检查所有配置文件(尤其是/etc/my.cnf, /etc/my.cnf.d/*.cnf),确保没有在其他地方重复设置max_connections并覆盖了你的修改

浙公网安备 33010602011771号