1
我試圖還原一個MySQL從列表轉儲SQL文件如:如何知道是否有一個已經鎖定表的MySQL
for file in *.sql; do mysql ... < $file;done
這種策略完美的作品,但對於某個表沒有關係「T。實際上它會一直保持阻塞狀態,直到我終止命令。 這裏是顯示的狀態「SHOW FULL PROCESSLIST」
LOCK TABLES `ms_lims_properties` WRTIE
我無法解釋爲什麼我的負荷保持鎖定這樣,那裏的表應只包含5行。
下面是相應的SQL文件的樣本:
LOCK TABLES `ms_lims_properties` WRITE;
/*!40000 ALTER TABLE ms_lims_properties DISABLE KEYS */;
INSERT INTO ms_lims_properties VALUES (1...
/*!40000 ALTER TABLE `ms_lims_properties` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET [email protected]_TIME_ZONE */;
它使用MyISAM數據作爲引擎,所以我不知道如何來檢查是否有任何鎖的地方...... 狀態我可從MySQL管理員看到的是:
Waiting for table
我試圖刪除數據庫,具有相同的結果重新創建它... :(
有人有線索嗎?
非常感謝
嗨CloudyDna,實際上這組命令是由轉儲爲每個sql文件(1文件= 1表)創建並寫入每個文件。但是,其他表通常沒有任何鎖,例如'ms_lims_property'表的鎖。例如: 鎖定表'識別'寫; /*!40000 ALTER TABLE' identification' DISABLE KEYS * /; INSERT INTO'identification' VALUES(64115,1457842,44, – Emmanuel 2013-04-09 07:01:01
會更容易理解,如果我可以自己查看服務器,然後可能會爲您修復它。因爲從這個問題我不能完全理解問題 – 2013-04-09 08:41:31
問題是,表'ms_lims_properties'沒有用數據封裝,它很好創建,但它看起來像一旦表創建查詢'鎖定表...寫'卡住了很久,插入沒有完成 鎖定表的查詢被鎖定 這顯示正在運行'SHOW FULL PORCESSLIST' – Emmanuel 2013-04-09 09:06:55