我试图只导出本地数据库中的一些表,到一个远程数据库,这些数据库具有相同名称的这些表+一些其他表(我想覆盖与本地具有相同名称的远程数据库表我的数据库,这两个数据库被称为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