mysql too many connections问题,kill掉所有锁表进程
来源:互联网 发布:poi设置数据有效性 编辑:程序博客网 时间:2024/06/05 14:36
说明:
因为线上mysql实例太多,也就经常会遇到Too many connections的问题。出现这种问题的时候业务已经出现问题。此时最重要的还是先恢复业务。这里可以先获取show innodb status和show full processlist的信息以便等会分析原因。当然要先能连得进mysql。可以通过临时将连接数稍微调大,让自己能登陆上去,一般这种情况下登陆的时候也会出现Too many connections的提示,那么该如何做呢?这时候可以在主上面写一个死循环不停的连接主mysql以保证自己能正常登录,如:while true;do mysql -uroot -ppassword -S /tmp/mysql_3306.sock;done
实现:
1.手动清除锁表进程
mysql> show processlist; //进到mysql后,可以看到一大堆sleep进程没有一千也有几百条,而且时间都很长。
| 106089637 | test | 192.168.2.8:44449 | TEST | Lock | 134 |
| 106089638 | test | 192.168.2.8:44451 | TEST | Lock | 4123 |
……
出来好几屏幕的, , 查询语句把表锁住了,.
mysql> kill thread_id; // kill掉第一个锁表进程, 依然没有改善. 既然不改善, 咱们就想办法将所有锁表的进程kill掉吧, 简单的脚本如下.
2.shell脚本批量清除锁表进程
#!/bin/bashmysql -uroot -e "show processlist" | grep -i "Locked" >> locked_log.txtfor line in `cat locked_log.txt | awk '{print $1}'`do echo "kill $line;" >> kill_thread_id.sqldone
现在kill_thread_id.sql的内容像这个样子
kill 66402982;
kill 66402983;
kill 66402986;
kill 66402991;
…..
好了, 我们在mysql的shell中执行, 就可以把所有锁表的进程杀死了.
mysql> source kill_thread_id.sql
当然了, 也可以一行搞定
#!/bin/bashfor id in `mysqladmin processlist | grep -i locked | awk '{print $1}'`domysqladmin kill ${id}done
附录:
当然,可以通过限制用户连接mysql的连接数也可以一直程度上缓存mysql实例多导致的锁表多问题。
# mysql -uroot -p
mysql> grant all on username.*to’databasename’@’localhost’ with MAX_USER_CONNECTIONS 4 MAX_CONNECTIONS_PER_HOUR 1000; //WITH MAX_USER_CONNECTIONS 4,限制最大连接数;MAX_CONNECTIONS_PER_HOUR 1000,限制每小时最大连接数
- mysql too many connections问题,kill掉所有锁表进程
- Mysql Too many connections问题
- mysql: Too many connections
- mysql Too many connections
- mysql Too many connections
- mysql "too many connections"
- Mysql too many connections
- MySQL too many connections
- Mysql中too many connections问题
- (转)MySQL: Too many connections
- MYSQL错误Too many connections
- mysql too many connections解决
- mysql Too many connections 异常
- Mysql too many connections解决办法
- MySql Too many connections solution
- MySQL 1040 Too many connections
- MySQL Too many connections 解决方案
- 【Mysql】too many connections 错误
- Oracle 字符函数
- 关于 can not find hdf5.h(hdf5:没有那个文件或目录)的解决方法
- 深度学习性能提升的诀窍
- Cortex-M0的BOD中断及重启-掉电检测的可利用性+BOD汇编启动
- Java工厂设计模式-lambda表达式简单实例
- mysql too many connections问题,kill掉所有锁表进程
- 求助:如何在mvc下获取 header 以及 payload?
- 如何在官网下载最新Spring
- [2012长春]Bit Magic UVALive
- chromium 初识简介
- ViewPager和Fragment
- 实验二静态链表
- 懒人读算法(二)-细胞问题
- 你看到的是阿里巴巴成立达摩院 而我看到的是未来