![将本地 MySQL 表导出到远程数据库](https://linux22.com/image/712667/%E5%B0%86%E6%9C%AC%E5%9C%B0%20MySQL%20%E8%A1%A8%E5%AF%BC%E5%87%BA%E5%88%B0%E8%BF%9C%E7%A8%8B%E6%95%B0%E6%8D%AE%E5%BA%93.png)
我正在尝试将本地数据库中的某些表导出到具有与这些表同名+一些其他表的远程数据库中(我想用我数据库中的本地表覆盖具有相同名称的远程数据库表,两个数据库都称为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