mysql 杀掉(kill) lock进程脚本

杀掉lock进程最快的方法是重启mysql,像你这种情况,1000多sql锁住了,最好是重启
如果不允许重启,我提供一个shell脚本,生成 kill id命令杀掉lock线程,如下:
------------------------------------
#!/bin/bash
mysql -u root -e "show processlist"|grep -i "Locked" >> locked.txt;
for line in awk ‘{print $1}‘ locked.txt
do
echo "kill $line;">>kill_lock.sql
done
----------------------------------

执行完脚本后,会生成kill_lock.sql文件,内容类似如下:

kill 1;
kill 2;
kill 3;
-------------------这些对应的都是lock的sessionid,直接复制文件里的内容,然后在mysql里执行就ok 了

至于排查哪条sql引起的,这个有点难了,不过你可以尝试开启慢查日志和无索引日志来确认比较耗时的查询,避免再次出现堵塞

时间: 2024-10-03 14:00:41

mysql 杀掉(kill) lock进程脚本的相关文章

MySQL中kill所有慢查询进程和锁表进程

1.kill所有慢查询进程: #!/bin/bash mysql -uroot -pMy_Password -e "show processlist" | grep -i "Query" > slow_query.log for query in `cat slow_query.log | awk '{print $1}'` do echo "kill $query;" > kill_slow_query.sql done 登录mys

shell脚本根据端口号kill掉进程

假设一个应用场景,在某种环境下, 我们需要去关闭某个应用进程, 然后重新部署启动.不一样的场景需要使用不一样的脚本,比如在使用tomcat时,可以通过start.up.sh和shutdown.sh进行操作,但是别的好像就没有好的办法了,所以采用的是kill掉应用的PID, 然后重新部署启动.然而每次启动的PID都是不一样的, 但是我们知道的是每次都会启动同样的端口号, 如果通过端口号查询到应用的PID再去kill掉,就会省事很多. 接下来可以在shell中通过端口查询PID port=8030

linux kill杀死进程

背景:这个命令总是记不住,在此稍作记录,方便查看! 1 杀死进程 1.1 查看进程 此时如果我想杀了火狐的进程就在终端输入: $ kill -s 9 1827 其中-s 9 制定了传递给进程的信号是9,即强制.尽快终止进程.各个终止信号及其作用见附录. 简单吧,但有个问题,进程少了则无所谓,进程多了,就会觉得痛苦了,无论是ps -ef 还是ps -aux,每次都要在一大串进程信息里面查找到要杀的进程,看的眼都花了. 进阶篇: 改进1: 把ps的查询结果通过管道给grep查找包含特定字符串的进程.

oracle查看锁表进程,杀掉锁表进程

查看锁表进程SQL语句1: select sess.sid,     sess.serial#,     lo.oracle_username,     lo.os_user_name,     ao.object_name,     lo.locked_mode     from v$locked_object lo,     dba_objects ao,     v$session sess where ao.object_id = lo.object_id and lo.session_

Oracle 查看锁表进程_杀掉锁表进程 [转]

查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid; 查看锁表进程SQL语句2: sel

批量kill java进程方法-引出子shell和反引用

方法: kill –9 `pgrep java` 使用上述命令可以将服务器上运行的所有java进程一次性kill掉. 扩展:子shell和反应用在shell脚本中的作用 先来看一个子shell的例子: # cat text1.txt 1 2 3 4 5 # text01=$(cat text1.txt) #echo $text01 1 2 3 4 5 从例子可以看出,子shell是用$()引用起来的部分,子shell运行作为一个单独的进程,并不会父shell产生影响.子shell输出默认不保留换

sqlserver,杀掉死锁的进程

USE [erpdb1]GO/****** Object:  StoredProcedure [dbo].[p_lockinfo_MyKill]    Script Date: 12/26/2014 14:59:58 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER OFFGO ALTER proc [dbo].[p_lockinfo_MyKill]@kill_lock_spid bit=1,  --是否杀掉死锁的进程,1 杀掉, 0 仅显示@sho

在本地计算机无法启动MYSQL服务错误1067进程意外终止

在本地计算机无法启动MYSQL服务错误1067进程意外终止 这种情况一般是my.ini文件配置出错了, 你可以删除系统目录下的my.ini文件, 把下面的内容重新写入my.ini文件试试, 要适当地改写一下文件路径 我的my.ini 2007年12月31日[WinMySQLAdmin]Server=C:/MYSQL/mysql/bin/mysqld-opt.exeuser=root [mysqld]basedir=C:/MYSQL/mysqldatadir=C:/MYSQL/mysql/data

Linux中Kill掉进程的10种方法

常规篇: 首先,用ps查看进程,方法如下: 复制代码 代码如下: $ ps -ef--smx 1822 1 0 11:38 ? 00:00:49 gnome-terminalsmx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helpersmx 1824 1822 0 11:38 pts/0 00:00:02 bashsmx 1827 1 4 11:38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-binsmx 1857