MYSQL锁表问题的解决方法

2019-01-04 15:19:38王冬梅

把这个写到mysqld_kill_sleep.sh。然后chmod 0 mysqld_kill_sleep.sh,chmod u+rx mysqld_kill_sleep.sh,然后用root账户到cron里面运行即可,时间自己调整。

执行之后显示:

www# ./mysqld_kill_sleep.sh /usr/local/bin/mysql -e "kill 27549" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27750" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27840" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27867" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27899" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27901" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27758" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27875" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27697" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27888" -uroot -p"mysql root的密码"; /usr/local/bin/mysql -e "kill 27861" -uroot -p"mysql root的密码";

如果确认没有问题了,把最后的cat修改为sh即可。

本人改写了下上面的脚本:

#!/bin/bash mysql_pwd="密码" mysql_exec="/usr/local/mysql/bin/mysql" mysql_timeout_dir="/tmp" mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh" mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log" $mysql_exec -uroot -p$mysql_pwd -e "show processlist" | grep -i "Locked" >> $mysql_kill_timeout_log chmod 777 $mysql_kill_timeout_log for line in `$mysql_kill_timeout_log | awk '{print $1}'` do echo "$mysql_exec -uroot -p$mysql_pwd -e "kill $line"" >> $mysql_kill_timeout_sh done chmod 777 $mysql_kill_timeout_sh cat $mysql_kill_timeout_sh

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《php+mysql数据库操作入门教程》

希望本文所述对大家MySQL数据库程序设计有所帮助。

您可能感兴趣的文章:

mysql锁表和解锁语句分享MySQL行级锁、表级锁、页级锁详细介绍通过mysql show processlist 命令检查mysql锁的方法MySQL Innodb表导致死锁日志情况分析与归纳Mysql数据库锁定机制详细介绍详解MySQL中的死锁情况以及对死锁的处理方法一次Mysql死锁排查过程的全纪录mysql 数据库死锁原因及解决办法mysql数据库锁的产生原因及解决办法MySQL死锁问题分析及解决方法实例详解mysql 锁表锁行语句分享(MySQL事务处理)MySQL中Innodb的事务隔离级别和锁的关系的讲解教程Mysql(MyISAM)的读写互斥锁问题的解决方法mysql锁定单个表的方法查找MySQL线程中死锁的ID的方法Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)Mysql 数据库死锁过程分析(select for update)MySQL锁(表锁,行锁,共享锁,排它锁,间隙锁)使用详解