在 Linux CLI 中复制 MySQL 数据库而不导出 SQL 文件

Duplicate MySQL Database in Linux CLI without Exporting an SQL File

我有一个 MySQL 数据库,我想使用 Ubuntu Linux CLI 复制它,而无需先下载 MySQL 文件。我尝试了以下命令:

mysql -uroot -e'mysql转储 -uroot db_old | mysql -uroot 备份 db_new;'

但是出现了这个错误: 第 1 行的错误 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解要使用的正确语法。

我做错了什么?我正在寻找的是要创建的 db_new 包含与 db_old 相同的数据(换句话说,复制 db_old 并将新数据库命名为 db_new,全部在一条命令,无需将数据导出到文件)。

首先,创建新数据库

mysql -uroot -pyourpasswd -e "Create database db_new;"

然后运行如下(不用执行"-e")

mysqldump -uroot -pyourpasswd -n db_old | mysql -uroot -pyourpasswd db_new;

来自手册页:

mysqldump 对于通过复制数据填充数据库也非常有用 从一个 MySQL 服务器到另一个:

   shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

“-n”选项是“--no-create-db”的缩写

如果您的 root 连接不需要密码(不推荐),请从所有语句中删除“-pyourpasswd”