码迷,mamicode.com
首页 > 数据库 > 详细

mysql数据不完整迁移脚本

时间:2016-07-11 19:31:54      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:mysql bash

公司新平台上线,老数据库中有一些原本的用户数据需要迁移到新平台,特地开发这个脚本,以保证数据的完整性,以及效率性
#!/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 "程序需要文件不完整,请检查"
fi
echo "已经将旧数据库中的表迁移到新的数据库中,谢谢使用!"

本文出自 “技术宅私有空间” 博客,请务必保留此出处http://chulinx.blog.51cto.com/4098114/1825337

mysql数据不完整迁移脚本

标签:mysql bash

原文地址:http://chulinx.blog.51cto.com/4098114/1825337

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!