mysql:还原在mysqldump中使用“ --tab”选项创建的备份

Rob*_*y75 4 mysql mysqldump

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

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

Rob*_*y75 5

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


saa*_*aaj 4

*.txt官方文档没有隐藏导入这些约束和外键约束的情况。仍然存在一个长期存在的bug#19996来实现外键忽略mysqlimport。所以必须手动完成。

#!/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
Run Code Online (Sandbox Code Playgroud)

*.sql另外我想指出,存储由 生成的这些每表文件没有多大意义mysqldump --tab,因为字段上还存在外键问题。由于架构始终是已知的,因此我建议在备份完成后删除它们。