来自不同数据库的Mysqldump表?
我想备份两个表:表1和表2 表1来自数据库数据库1 表2来自数据库数据库2 有没有一种方法可以通过一个mysqldump调用来转储它们 我知道我能做到:来自不同数据库的Mysqldump表?,mysql,sql,database,mysqldump,Mysql,Sql,Database,Mysqldump,我想备份两个表:表1和表2 表1来自数据库数据库1 表2来自数据库数据库2 有没有一种方法可以通过一个mysqldump调用来转储它们 我知道我能做到: mysqldump -S unixSocket --skip-comments --default-character-set=utf8 --databases database1 --tables table1 > /tmp/file.sql 但是如何从不同的数据库转储两个表呢?语法是: mysqldump --databases d
mysqldump -S unixSocket --skip-comments --default-character-set=utf8 --databases database1 --tables table1 > /tmp/file.sql
但是如何从不同的数据库转储两个表呢?语法是:
mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql
mysqldump--databases db_name1[db_name2…]>my_databases.sql
查阅参考资料:
希望对您有所帮助调用mysqldump有三种常用方法: 只有第一个允许您选择数据库和表名,但不允许多个数据库。如果使用第二个或第三个选项,将转储选定的数据库(第二个)或所有数据库(第三个) 所以,您可以这样做,但需要转储到整个数据库 正如MichałPowaga在评论中所说,你也可以做两次 第一次使用“
/tmp/file.sql
”
第二次使用“>/tmp/file.sql追加
”
使用mysqldump
两次,但第二次将重定向到文件作为append>/tmp/file.sql
用于linux/bash,oneliner:
(mysqldump dbname1——表表1;mysqldump dbname2——表2)|gzip>dump.sql.gz
这可能是一种解决方法,但您可以忽略不想备份的其他表
例如在你的情况下:
mysqldump --databases database1 database2 --ignore-table=database1.table2 --ignore-table=database2.table1
您需要使用每个--ignore table语句定义不希望转储的每个表
祝你好运 没有一个优雅的解决方案,为什么只限于一个mysqldump调用?做两次,但第二次使用>/tmp/file.sql
:-)。@MichałPowaga会将它附加到文件而不是重写?@RichardKnop,是的,如果存在它会附加到文件,如果不存在它会创建新的文件@MichałPowaga好的,把它作为一个答案发布,我会接受它。这会转储整个数据库,而问题是只转储某些表您不能将--数据库
与多个数据库结合使用--表
。
mysqldump --databases database1 database2 --ignore-table=database1.table2 --ignore-table=database2.table1