問題:執行ALTER TABLE table1 ADD COLUMN name text(10) NOT NULL;時,sql語句卡住不動,如下圖:
思路:
1、通過mysql日志查找原因,查log語句:select * from INFORMATION_SCHEMA.processlist where COMMAND = "Query"\G
2、通過log可以看到是資料表被鎖定,鎖定的原因是有其他項目正連接配接着這個資料庫,是以要更改表首先要斷掉其他連結。
解決方法:
先執行下面語句關閉指定表的連接配接,然後再執行上面修改表的sql語句即可,且不影響其他項目對mysql的操作。
mysql -uroot -p123456 -e 'show processlist' | awk '/table_name/{ print $1}' | xargs -i mysql -uroot -p123456 -e 'kill {}'