日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql锁表问题的解决方法_MYSQL锁表问题的解决方法

發布時間:2023/12/1 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql锁表问题的解决方法_MYSQL锁表问题的解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例講述了MYSQL鎖表問題的解決方法。分享給大家供大家參考,具體如下:

很多時候!一不小心就鎖表!這里講解決鎖表終極方法!

案例一

mysql>show processlist;

參看sql語句

一般少的話

mysql>kill thread_id;

就可以解決了

kill掉第一個鎖表的進程, 依然沒有改善. 既然不改善, 咱們就想辦法將所有鎖表的進程kill掉吧, 簡單的腳本如下.

#!/bin/bash

mysql - u root - e " show processlist " | grep - i " Locked " >> locked_log . txt

for line in ` cat locked_log.txt | awk '{print $1 }' `

do

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

done

現在kill_thread_id.sql的內容像這個樣子

kill 66402982 ;

kill 66402983 ;

kill 66402986 ;

kill 66402991 ;

.....

好了, 我們在mysql的shell中執行, 就可以把所有鎖表的進程殺死了.

mysql > source kill_thread_id . sql

當然了, 也可以一行搞定

for id in `mysqladmin processlist | grep -i locked | awk '{print $1}'`

do

mysqladmin kill ${id}

done

案例二

如果大批量的操作能夠通過一系列的select語句產生,那么理論上就能對這些結果批量處理。

但是mysql并沒用提供eval這樣的對結果集進行分析操作的功能。所以只能現將select結果保存到臨時文件中,然后再執行臨時文件中的指令。

具體過程如下:

mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root';

+------------------------+

| concat('KILL ',id,';')

+------------------------+

| KILL 3101;

| KILL 2946;

+------------------------+

2 rows IN SET (0.00 sec)

mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root' INTO OUTFILE '/tmp/a.txt';

Query OK, 2 rows affected (0.00 sec)

mysql> source /tmp/a.txt;

Query OK, 0 rows affected (0.00 sec)

案例三

MySQL + PHP的模式在大并發壓力下經常會導致MySQL中存在大量僵死進程,導致服務掛死。為了自動干掉這些進程,弄了個腳本,放在服務器后臺通過crontab自動執行。發現這樣做了以后,的確很好的緩解了這個問題。把這個腳本發出來和大家Share.

根據自己的實際需要,做了一些修改:

SHELL腳本:mysqld_kill_sleep.sh

#!/bin/sh

mysql_pwd="root的密碼"

mysqladmin_exec="/usr/local/bin/mysqladmin"

mysql_exec="/usr/local/bin/mysql"

mysql_timeout_dir="/tmp"

mysql_timeout_log="$mysql_timeout_dir/mysql_timeout.log"

mysql_kill_timeout_sh="$mysql_timeout_dir/mysql_kill_timeout.sh"

mysql_kill_timeout_log="$mysql_timeout_dir/mysql_kill_timeout.log"

$mysqladmin_exec -uroot -p"$mysql_pwd" processlist | awk '{ print $12 , $2 ,$4}' | grep -v Time | grep -v '|' | sort -rn > $mysql_timeout_log

awk '{if($1>30 && $3!="root") print "'""$mysql_exec""' -e " "\"" "kill",$2 "\"" " -uroot " "-p""\"""'""$mysql_pwd""'""\"" ";" }' $mysql_timeout_log > $mysql_kill_timeout_sh

echo "check start ...." >> $mysql_kill_timeout_log

echo `date` >> $mysql_kill_timeout_log

cat $mysql_kill_timeout_sh

把這個寫到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锁表问题的解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av在线免费网站 | 亚洲av成人精品日韩在线播放 | 福利社91| 久久久精品一区二区三区 | 91黄色免费 | 国产在线视频你懂的 | 日韩在线电影一区二区 | 国产黄色大片在线观看 | 一级激情视频 | 精东传媒在线 | 亚洲欧美在线综合 | 99久久婷婷国产一区二区三区 | 夜夜嗨av一区二区三区网页 | 久久视频精品在线 | 在线精品一区二区三区 | 国产激情精品一区二区三区 | 成人片黄网站久久久免费 | aa一级片 | 少妇无码吹潮 | 性生活在线视频 | 天天干天天操天天碰 | 天堂999| 欧美人与动性xxxxx杂性 | 超碰在线进入 | 啪啪网站免费看 | 国产黄色在线观看 | 国产精品久久久久久久久借妻 | 欧美日韩一区免费 | 日韩视频在线观看一区 | 1024香蕉视频 | 娇妻玩4p被三个男人伺候电影 | 国内性爱视频 | 樱桃视频一区二区三区 | 少妇高潮21p| 国产伦精品一区二区三区千人斩 | 伊人黄色 | 玖玖玖国产精品 | 成人片在线看 | 91精品久久久久久久久久入口 | 一级毛片黄色 | 久久精品这里 | 欧美日韩亚洲国产综合 | 精品在线免费观看 | 久久久久久久久久综合 | 中文字幕乱码中文乱码777 | 久久久久中文字幕亚洲精品 | 日日夜夜狠狠爱 | 91综合精品 | 久久国产免费 | 高清在线一区 | 欧美激情一区二区三区蜜桃视频 | 日韩中文字幕在线播放 | 国产区一区二区三 | 国产精品免费视频观看 | 曰批免费视频播放免费 | 无码人妻少妇色欲av一区二区 | 国产成人精品无码播放 | 久久精品高清视频 | 亚洲综合p | 黄色片子视频 | 日韩中文在线视频 | 国产午夜精品在线观看 | 女攻总攻大胸奶汁(高h) | 99热最新网址 | 99热这里只有精 | 国内自拍小视频 | 在线一区观看 | 熟女自拍一区 | 亚洲欧美高清在线 | 国产jizz| 日出白浆视频 | 欧美亚洲一 | 男人久久久 | 草草草av | 97视频国产 | 涩涩涩999| 午夜精华| 日本一二三区视频在线 | a√天堂资源在线 | 久热国产在线 | 中文字幕欧美视频 | 波多野结衣网站 | 日本不卡高清视频 | 国产美女主播在线观看 | 东方伊甸园av在线 | 欧美一区二区免费 | 波多野结衣一区二区三区四区 | 91成人看片 | 四虎影库永久在线 | 狠狠夜| 一区二区在线观看视频 | 911香蕉| 青青操视频在线观看 | 成人一区二区电影 | 欧美丝袜一区二区 | 91精品国产一区二区在线观看 | 日本国产在线 | 日韩在线精品视频 | 国产一卡二卡在线 |