将本地MySQL表导出到远程数据库

我试图只导出本地数据库中的一些表,到一个远程数据库,这些数据库具有相同名称的这些表+一些其他表(我想覆盖与本地具有相同名称的远程数据库表我的数据库,这两个数据库被称为wordpress )。

在Google之后,我想下面的命令应该可以工作:

 mysqldump -u USER --single-transaction --compress --order-by-primary --databases wordpress wp_posts wp_postmeta wp_comments wp_commentmeta wp_users wp_usermeta -pPASSWORD1 | mysql -u USER -pPASSWORD2 --port=REMOTE_PORT --host=REMOTE_HOST 

但是,它给了我下面的错误:

 mysqldump: Got error: 1049: Unknown database 'wp_posts' when selecting the database 

为什么?

--databases让你指定你想要转储哪些数据,所以你要做的就是告诉它转储wordpress数据库中wordpress之后的所有数据库。

你要这个

 mysqldump -u USER --single-transaction --order-by-primary wordpress wp_posts wp_postmeta wp_comments wp_commentmeta wp_users wp_usermeta -pPASSWORD1 | mysql -u USER -pPASSWORD2 --port=REMOTE_PORT --host=REMOTE_HOST wordpress 

只要删除--databases标志。 我也将--compress标志添加到mysql客户端导入。 另外请确保您在远程端创build数据库

 CREATE DATABASE wordpress; 

这里是一个mysqldump的帮助

 Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS] For more options, use mysqldump --help