一尘不染

在同一MySql实例上克隆MySQL数据库

mysql

我想编写一个脚本,将当前数据库复制sitedb1sitedb2同一mysql数据库实例上。我知道我可以将sitedb1转储到sql脚本中:

mysqldump -u root -p sitedb1 >~/db_name.sql

然后将其导入到中sitedb2。有没有更简单的方法,而无需将第一个数据库转储到sql文件?


阅读 633

收藏
2020-05-17

共1个答案

一尘不染

如手册中“ 复制数据库”中所述,您可以将转储直接通过管道传递到mysql客户端中:

mysqldump db_name | mysql new_db_name

如果您使用的是MyISAM,则 可以 复制文件,但我不建议这样做。这有点狡猾。

综合各种其他答案

双方mysqldumpmysql命令接受设置连接细节(等等),类似的选项:

mysqldump -u <user name> --password=<pwd> <original db> | mysql -u <user name> -p <new db>

另外,如果新数据库尚不存在,则必须事先创建(例如,使用echo "create database new_db_name" | mysql -u <dbuser> -p)。

2020-05-17