背景:目前在处理国产数据库替代mysql,需要测试将mysql数据迁移到替代数据库,迁移的时候需要停止读写,由于开发的数据库是公用的,所以需要拷贝一份数据库用来做测试
方案:Mysql本身提供了mysqldump命令可以完成数据的导入导出备份等操作,以下是操作步骤,直接在mysql本机执行
1,mysqldump命令导出数据表和表数据(数据量大的话耗时会多些)
mysqldump -uuser_xxx -ppassword_xxx db_xxx > db_xxx.sql
其中 user_xxx对应导出数据的用户,password_xxx对应导出数据的用户密码,db_xxx对应要导出的数据库名,执行以上命令后所在目录会生成db_xxx.sql文件
2,创建新的数据库
CREATE DATABASE db_xxx_new;
其中db_xxx_new为新建的数据
3,导入数据库表结构和数据(数据量大的话耗时会多些)
mysql -uuser_xxx -ppassword_xxx db_xxx_new < db_xxx.sql
其中 user_xxx对应导出数据的用户,password_xxx对应导出数据的用户密码,db_xxx对应之前导出的数据库名,db_xxx_new为新建的数据库
另外,mysqldump提供相应的参数可以选择导出的不同选项,mysqldump --help可以查看具体命令