真心請教大下面的一個問題:
環境: centos 7
mysql 5.7.17
匯出表結構的操作命令:
mysqldump -u root -pxxxxx --socket=mysql.sock --no-data '--log-error=instance_from_3341_20200501.0110_structure.log' --verbose --databases test
本意是想到處mysql資料庫實體test的表結構,運行上面以后,出現的現象是:
1、一直停止在下面的輸出頁面上:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
USE `test`;
然后就是長時間等待,時間很長(最長的有1個小時)
2、然后,漫長等待后,行程就自動退出了,結果是什么檔案都沒有
3、在對應log_error檔案中有下面的記錄:
-- Connecting to localhost...
mysqldump: Got error: 1205: Lock wait timeout exceeded; try restarting transaction when using LOCK TABLES
4、重點是:一個test用戶不行,但是另外的test1運行這個命令很正常
根據上面的錯誤系統,在網上查詢了大量的資料,說的都是如下方面操作:
1、innodb_trx和PROCESSLIST表中存在未提交事務;
2、然后kill掉對應的執行緒
根據上面的提示,我查詢了innodb_trx和PROCESSLIST表中關于test和test1的記錄,發現
這兩個實體都在這些兩個表存在記錄,有些行程長期存在,但是對應的sql陳述句是動態變化的,
INNODB_LOCKS和INNODB_LOCK_WAITS沒有發現鎖的記錄。
所以問題就是:
1、為什么test用戶不行,test1就能正常匯出?
2、test用戶匯出表結構的問題,到底應該如何解決?
非常感謝大家,衷心得到各位大俠的幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/36247.html
標籤:疑難問題
