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

16 浏览
0 Comments

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

我有一个MySQL数据库,我想使用Ubuntu Linux命令行界面进行复制,而无需先下载MySQL文件。我尝试了以下命令:\nmysql -uroot -e\'mysqldump -uroot db_old | mysql -uroot backup db_new;\'\n但是出现了以下错误:\nERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use.\n我做错了什么?我想要的是创建一个名为db_new的数据库,其中包含与db_old相同的数据(换句话说,复制db_old并将新数据库命名为db_new,所有这些操作都在一条命令中完成,而无需导出数据到文件)。

0
0 Comments

在Linux命令行界面中,如果想要在不导出SQL文件的情况下复制MySQL数据库,有以下方法可以解决。

首先,创建一个新的数据库:

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

然后运行以下命令(不需要执行“-e”):

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

根据man页面的描述,mysqldump还可以通过从一个MySQL服务器复制数据到另一个MySQL服务器来填充数据库:

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

"-n"选项的缩写是"--no-create-db",如果不需要为root连接设置密码(不建议),则可以从所有语句中删除"-pyourpasswd"。

嗨,我运行了没有执行的命令,但是它没有起作用。我只收到了mysql命令的一长串选项列表。我查看了我的数据库列表,发现没有复制。

这里有一些有用信息:stackoverflow.com/questions/25794

非常感谢你的帮助,它起作用了!不过,对于你的代码需要做一个小小的更新。在第二行中,不需要使用"-n"选项。

0