之前我问this question,我刚回到这个问题。
我有一个MySQL数据库的备份脚本,使用带有
mysqldump
选项的--tab
,因此它为结构生成.sql
文件,并生成.txt
文件(管道) - 分离)的内容。
链接问题的答案在导入SQL文件(表结构)时有效,但在导入某些表时也会得到外键约束错误(因为该表有自己的外键)。这两个命令是这样的:
cat <(echo "SET FOREIGN_KEY_CHECKS=0;") "table.sql" | mysql [user/pass] database
mysqlimport [user/pass] --local --fields-terminated-by="|" database "table.txt"
看起来这是requested years ago on their bug tracker但从未实施过。有什么方法吗?
请注意,由于各种原因,我想继续使用tab选项(它更快,并且使用git更好,因为每行都在一个单独的行上)。
答案 0 :(得分:12)
在运行数据库创建脚本之前,您可以通过以下命令行将mysql全局系统变量'foreign_key_checks'临时设置为off / zero值。
mysql --host=localhost --user=USER --password -e "SET GLOBAL foreign_key_checks=0"
在命令行上输入密码是不安全的。省略它并仅指定--password
而不是--password=MYPATH
将迫使系统在继续之前询问用户。