Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自不同数据库的Mysqldump表?_Mysql_Sql_Database_Mysqldump - Fatal编程技术网

来自不同数据库的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

我想备份两个表:表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 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