本文主要给大家介绍mysql数据库迁移及脚本开发,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在亿速云行业资讯里面关注我的更新文章的。
公司新平台上线,老数据库中有一些原本的用户数据需要迁移到新平台,特地开发这个脚本,以保证数据的完整性,以及效率性
#!/bin/bash
##到出旧数据库中需要的表echo "请在脚本语言目录下准备3个文件,一个为tables.txt,里面列出需要从旧数据库中导出的表名,另一个是oldmysqlauth旧数据库的用户账号密码以及数据库,第三个是newmysqlauth新数据库的用户账号密码以及数据库,分别列出格式为: 1 2 3 ..."
counts=`awk 'BEGIN{t=0;} { t++; } END{print t; }' tables.txt`
i=1
mkdir sql
if [ -e tables.txt ] && [ -e oldmysqlauth ] && [ -e newmysqlauth ];
then
while [ $i -le $counts ];
do
table=`awk -v awk_i="$i" 'NR==awk_i{print}' tables.txt`;
/usr/bin/mysqldump -u`awk 'NR==1{print}' oldmysqlauth` -p`awk 'NR==2{print}' oldmysqlauth` `awk 'NR==3{print}' oldmysqlauth` $table > sql/$table.sql
i=$((i+1))
done
else
echo "程序需要文件不完整,请检查"
fi
echo "已经将您需要的表从旧的数据库中导出,即将进行数据表还原"
##将旧数据库中导出的表导入新数据库中
k=1
if [ -e tables.txt ] && [ -e oldmysqlauth ] && [ -e newmysqlauth ];
then
while [ $k -le $counts ];
do
table=`awk -v awk_k="$k" 'NR==awk_k{print}' tables.txt`;
/usr/bin/mysql -u`awk 'NR==1{print}' newmysqlauth` -p`awk 'NR==2{print}' newmysqlauth` `awk 'NR==3{print}' newmysqlauth` < /root/datapopulate/sql/$table.sql
k=$((k+1))
done
else
echo "程序需要文件不完整,请检查"
fiecho "已经将旧数据库中的表迁移到新的数据库中,谢谢使用!"看了以上关于mysql数据库迁移及脚本开发,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。