我想编写一个脚本,将我的当前数据库sitedb1
复制到同一mysql数据库实例上的sitedb2
。我知道我可以将sitedb1转储到sql脚本中:
mysqldump -u root -p sitedb1 >~/db_name.sql
然后将其导入到
sitedb2
。有没有更简单的方法,而无需将第一个数据库转储到sql文件?
最佳答案
正如手册在Copying Databases中所述,您可以将转储直接通过管道传递到mysql客户端:
mysqldump db_name | mysql new_db_name
如果您使用的是MyISAM,则可以复制文件,但我不建议这样做。这有点狡猾。
综合各种其他答案
mysqldump
和mysql
命令都接受用于设置连接详细信息的选项(以及更多),例如: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
)。
关于mysql - 在同一MySql实例上克隆MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58699674/