我面臨同樣的問題,因爲你的innoDB被破壞,所有使用innoDB表的數據庫都顯示正在使用中,所以引發了這個問題。
要解決此問題,您需要按照下面的步驟
得到100%的乾淨的表空間,你需要與innodb_force_recovery = 4啓動MySQL,採取mysqldump和它在InnoDB上的一個新的實例恢復(由新鮮的我意味着你必須刪除ibdata1和所有數據庫目錄)。
UPDATE:
此時MySQL是開始innodb_force_recovery = X(!X = 0)所有數據庫的
採取轉儲:
mysqldump的--skip-鎖表-A > alldb.sql
檢查其中的MySQL保持其文件(在我的情況下,它的/ var/lib中/ mysql /下):
MySQL的-NBe 「SELECT @@ DATADIR」
在/ var/lib中/ MySQL的/ 停止MySQL的
中mysqladmin關閉
移動舊版本的MySQL文件到安全的地方
MV的/ var/lib中/ MySQL的/var/lib/mysql.old
創建新的系統數據庫
的mkdir的/ var/lib中/ MySQL的
mysql_install_db的
啓動MySQL
/etc/init.d/mysql開始
恢復轉儲
MySQL的< alldb.sql
恢復可能需要很長的時間,如果數據庫大。
另一個竅門可能在這種情況下工作。在每個InnoDB表上運行ALTER TABLE ... ENGINE INNODB。它將重建所有的InnoDB索引,因此錯誤將消失。
++++++++++++++++++++++++++++++++++++++++++++++ +++
另一個解決方案是從備份還原數據庫。
對於這第一個你需要刪除ibdata1中文件
CD的/ var/lib中/ MySQL的
RM -f ibdata1中
然後使用以下命令恢復所有數據庫逐一
的mysql -u用戶名-p數據庫名< backupfile.sql
++++++++++++++++++++++++++++++++++ ++++++++++++++++
1.您的帖子中沒有問題,只是一系列的錯誤。 2.如果一切都在昨天工作,並且今天不再工作,那麼可能應該詢問您的提供商/系統管理員他們對您的網站做了什麼。 – Shadow
對不起,我的英文不好。但這是我的VPS,因此提供商不支持。我自己安裝它。現在上面有一些錯誤,但我不知道如何解決它。感謝幫助! – nhansay