2013-03-19 100 views
1

下面是我使用使用mysqldump來備份我的數據庫開關:的mysqldump備份丟失了所有InnoDB表而不是MyISAM表

/usr/bin/mysqldump -u **** --password=**** --single-transaction --database **** > /filepath/filename.sql 

我導入到我的本地數據庫使用窗口(服務器是Linux )有:

mysql -u root 

use databasename 

source c:/filepath/filename.sql 

當我比較服務器數據庫詩句地方,InnoDB表丟失,下面是結果「顯示引擎;」在本地數據庫中:

show engines

+0

你能找到在你丟失的表是固定的文件'/ filepath/filename.sql'當你用文本編輯器打開它時?顯示'show engines'的輸出,也許INNODB被禁用。 – Jens 2013-03-19 08:48:13

+0

我編輯了顯示引擎結果到原始文章中,我可能需要返回給您與.sql文件超過千兆字節,崇高將加載它最終但它需要一段時間 – arcanine 2013-03-19 08:57:08

+0

哪個版本的mysql你使用(在Windows上)? – Jens 2013-03-19 08:57:27

回答

0

這可能是--single-transaction選項。你在做轉儲的時候是否可能改變了桌子?如果是的話,alter table將在交易之外完成。它將創建一個臨時表,刪除原始表並重命名臨時表。由於原始表格已「消失」,因此不會將其放入轉儲文件中。

您可以嘗試使用--lock-tables來查看是否有效。

+0

- 增加了單事務來試圖解決這個問題,沒有交換機的情況下存在相同的問題,在備份期間表結構不會改變:( – arcanine 2013-03-20 12:19:30

0

我最終解決了這個由完全擦本地數據庫,然後從備份重裝數據庫,不知道爲什麼本地數據庫中並沒有顯示InnoDB表,但