mysql:恢复使用mysqldump中的“--tab”选项创建的备份

时间:2013-11-27 17:00:28

标签: mysql mysqldump

mysqldump具有“--tab”选项,可以为每个表拆分转储单独的文件。 mysql为每个表创建一个.sql文件(带有模式)和一个.txt文件(带有数据)。

.sql文件工作正常,但如何从.txt文件导入数据?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

官方文档没有转换导入这些*.txt和外键约束的情况。在mysqlimport中仍然存在开放的长期bug#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

另外我想请注意,存储由*.sql生成的每个表mysqldump --tab文件没有多大意义,因为这也是一个外键问题。领域。由于模式总是已知,我建议在备份完成后删除它们。