业务有要求,希望将现有的mysql数据库bdi_gj,复制一个新的数据库为bdi_gj_40。
我的操作为:
(1)首先创建一个新库bdi_gj_40
create database bdi_gj_40;
(2)然后使用mysqldump进行导出导入,实现复制效果
mysqldump bdi_gj -ubde_cubigdata -pxxx -h192.168.20.26 -P3306 --add-drop-table |mysql bdi_gj_copy -ubde_cubigdata -pxxx -h192.168.20.26 -P3306
还有一种情况,如果之前导入数据时有两份相同数据而不同库名,可以使用重命名库名的方式实现上面的要求:
(1)首先新建复制的库
(2)然后将以前库的表全部重新rename命名为新库下的表
具体脚本如下:
#!/bin/bash
mysql -uroot -pxxx -e 'create database bdi_gj_4.0'
list_table=$(mysql -uroot -pxxx -Nse "select table_name from information_schema.TABLES where table_schema='proc';")
for table in $list_table
do
mysql -uroot -pxxx -e "rename table proc.$table to bdi_gj_4.0.$table"
done
针对重命名数据库,总结如下: