簡體   English   中英

mysql:恢復使用mysqldump中的“--tab”選項創建的備份

[英]mysql: Restore backup that was created with “--tab” option in mysqldump

mysqldump具有“--tab”選項,可以為每個表拆分轉儲單獨的文件。 mysql為每個表創建一個.sql文件(帶有模式)和一個.txt文件(帶有數據)。

.sql文件工作正常,但如何從.txt文件導入數據?

我自己找到了解決方案,請看這里: http//dev.mysql.com/doc/refman/5.1/en/reloading-delimited-text-dumps.html

官方文檔不會轉換導入這些*.txt和外鍵約束的情況。 mysqlimport實現外鍵忽略仍有開放的長期存在的錯誤#19996 所以必須手動完成。

#!/bin/bash -e

DIR=/path/to/csv/backup
DATABASE=database
USER=user
PASSWORD=password

for filename in $DIR/*.txt
do
tablename=`basename $filename .txt`
mysql --user=$USER --password=$PASSWORD $DATABASE <<EOF
  SET FOREIGN_KEY_CHECKS=0;
  LOAD DATA INFILE '$filename' INTO TABLE \`$tablename\`;
EOF
done

另外我想指出,存儲mysqldump --tab生成的每個表*.sql文件沒有多大意義,因為在字段上也存在外鍵問題。 由於模式總是已知的,我建議在備份完成后刪除它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM