我正在尝试将本地数据库中的某些表导出到具有与这些表同名+一些其他表的远程数据库中(我想用我数据库中的本地表覆盖具有相同名称的远程数据库表,两个数据库都称为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
为什么?
答案1
--databases
让您指定要转储的数据库,因此您正在做的就是告诉它转储 wordpress 数据库中的所有数据库(在 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 客户端。另外,请确保在远程端创建数据库
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