shel脚本mysql锁表_centos下shell脚本kill掉mysql锁表进程【笔记】

当服务器硬盘空间达到100%时,可能导致MySQL出现锁表现象。通过清理硬盘空间并使用shell脚本杀死锁表进程可以暂时解决问题。此外,可以通过设置MySQL用户权限,限制其最大连接数来缓解锁表问题,如`GRANT ALL ON [email protected] WITH MAX_USER_CONNECTIONS 4 MAX_CONNECTIONS_PER_HOUR 1000`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天发现服务器上的mysql出现锁表了,show processlist后发现好多都是因为写进session才锁表的,看到这个想起了会不会是硬盘空间不够了,马上查看了服务器硬盘空间,发现都100%了,马上清理硬盘空间,清理完后,还要杀掉mysql里锁表的进程,网上搜了个shell脚本来kill锁表的进程。

1.下面是脚本内容:

cat /root/soft_shell/mysql_sleep_kill.sh

#!/bin/bash

>/root/locked_log.txt

>kill_thread_id.sql

mysql -u root -e "show processlist" -p写你mysql密码|grep -i "Waiting">>/root/locked_log.txt

for line in `cat /root/locked_log.txt | awk ‘{print $1}‘`

do

echo "kill $line;" >> kill_thread_id.sql

done

执行了脚本后,还要把kill_thread_id.sql导入进去,如下:

mysql>source kill_thread_id.sql

导入进去后就会自动kill掉锁表的进程.

2.也可以通过限制用户连接mysql的连接数也可以一直程度上缓存mysql实例多导致的锁表多问题:

mysql> grant all on [email protected] with MAX_USER_CONNECTIONS 4 MAX_CONNECTIONS_PER_HOUR 1000;  //WITH MAX_USER_CONNECTIONS 4,限制最大连接数;MAX_CONNECTIONS_PER_HOUR 1000,限制每小时最大连接数

原文:https://www.cnblogs.com/68xi/p/9328308.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值