[英]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.