使用场景
需要将数据库db1克隆一份
方式1:使用sql文件
先用mysqldump将db1导出为sql文件,然后再导入新的数据库db2。
先创建db2数据库:
mysql> CREATE DATABASE db2
创建后,可以用 show databases 查看是否创建成功。
mysql> show databases ;
再将db1导出为sql文件:
mysqldump -u root -p db1 > D:\Database_backup\db1.sql
Enter password: **********
最后将sql文件导入到db2:
mysql -u root -p db2 < D:\Database_backup\db1.sql
Enter password: **********
方式2:使用mysqldump+pipe
官方文档:https://dev.mysql.com/doc/refman/8.0/en/copying-databases.html
直接用 pipe的方式,省去手动导出导入sql的步骤。
情况1:如果db1和db2在同一个mysql实例上
mysqldump -u <user name> –password=<pwd> <original db> | mysql -u <user name> -p <new db>
示例:
mysqldump -u root –password=12345 db1 | mysql -u root -p12345 db2
将本机数据数据库拷贝到远程服务器上的数据库中:
mysqladmin create DB_name -u DB_user –password=DB_pass && \
mysqldump -u DB_user –password=DB_pass DB_name | \
mysql -u DB_user –password=DB_pass -h DB_host DB_name
将远程数据库拷贝到本机数据库:
如果网络慢,可以加上–compress参数,压缩数据提升速度
mysqldump -h ‘other_hostname’ –compress db_name | mysql db_name
还可以使用压缩包的方式来克隆,详细的可以见官方文档.
方式3:使用mysqldbcopy
这个需要单独安装mysqldbcopy
mysqldbcopy \
–source=root:your_password@localhost \
–destination=root:your_password@localhost \
db1:db2
参考:
https://dev.mysql.com/doc/refman/8.0/en/copying-databases.html
转载请注明:大步's Blog » Mysql如何克隆数据库