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

将本地 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

为什么?

答案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

相关内容