首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >所有表和数据的MySQL转储结构

问所有表和数据的MySQL转储结构
EN

Stack Overflow用户
提问于 2014-01-15 10:51:14
回答 2查看 7.7K关注 0票数 5

我试图转储数据库中所有表的结构,然后只转储我特别想要的表的数据,但我似乎做错了什么,因为我没有得到为数据转储中排除的表创建的空表。

我有一个文本文件,它指定要转储数据的表(称为showtables.txt):

代码语言:javascript
复制
SHOW TABLES FROM mydb
WHERE Tables_in_mydb NOT LIKE '%_history'
AND Tables_in_mydb NOT LIKE '%_log';

然后执行此命令以转储所有表的结构,然后在文本文件中转储该查询返回的表的数据:

代码语言:javascript
复制
mysqldump -u root -pmypassword mydb --no-data > mydump.sql; mysql -u root -pmypassword < showtables.txt -N | xargs mysqldump mydb -u root -pmypassword > mydump.sql -v

我得到显示查询结果中包含的所有表的转储,但没有得到其余表的结构。

如果我只以一个命令的形式运行结构部分,这就可以正常工作,并为所有表转储结构。但将其与数据转储相结合似乎不起作用。

你能告诉我这件事哪里出了问题吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-15 11:10:22

我认为您弄错了命令行参数的顺序(对文件的重定向应该是结束),您需要为xargs提供一个额外的参数,这样我们就可以将数据库名指定给mysqldump。

此外,还需要追加>>转储数据,否则将覆盖每个表的mydump.sql文件:

代码语言:javascript
复制
mysqldump -u root -pmypassword mydb --no-data > mydump.sql
mysql -u root -pmypassword -N < showtables.txt | xargs -I {} mysqldump -v -u root -pmypassword mydb {} >> mydump.sql

资料来源:http://www.cyberciti.biz/faq/linux-unix-bsd-xargs-construct-argument-lists-utility/

票数 5
EN

Stack Overflow用户

发布于 2016-08-22 23:42:39

使用Jon的答案,但是xargs中的-I将为每个表运行一个单独的mysqldump命令。只允许xargs默认值更容易,它将前一个命令的输出附加到下一个命令。mysqldump的最后一个参数是要转储的所有表的列表。

我的解决方案还显示了通过堡垒主机进行连接。在SSH连接上进行流之前的gzip‘’ing比通过线路发送未压缩的SQL要快得多。

代码语言:javascript
复制
FILE=~/production.sql.gz
HOST=ext-db-read-0.cdzvblmx0n9h.us-west-1.rds.amazonaws.com
USER=username
PASS="s3cret"
DB=myapp_prod
EXCLUDE="'activities', 'changelogs'"

ssh bastion.mycompany.com <<EOF > $FILE
    mysqldump -h $HOST -u $USER -p$PASS $DB --no-data | gzip
    mysql -h $HOST -u $USER -p$PASS -N -e "SHOW TABLES WHERE Tables_in_$DB NOT IN ($EXCLUDE)" $DB | xargs mysqldump -v -h $HOST -u $USER -p$PASS $DB | gzip
EOF

如果您不想保存.gz,只需通过gzip -d传输

ssh bastion.mycompany.com <<EOF | gzip -d > $FILE etc

或者直接到本地数据库:

ssh bastion.mycompany.com <<EOF | gzip -d | mysql -uroot myapp_development

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21135407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档