Apr 27

mysql数据库搬迁脚本 不指定

hqlulu , 17:26 , 技术分享 » Mysql , 评论(0) , 引用(0) , 阅读(383) , Via 本站原创 | |
数据库同一个版本的倒容易,如果不同版本的,那是只能导出数据,然后再导入数据到另外一个数据库。

主要的是有几个步骤:

1 导出sql文件
2 打包文件并发送到另外一个机器
3 解压文件
4 导入sql文件

主要包含:

sh的数组和循环、mysql的导入导出命令行、服务器间文件传输

比如A服务器上要导出数据可以用如下脚本:

export_db.sh

#!/bin/sh

echo "exporting data,wait..."

database=("aslibra" "work" "mysql")
len=${#database[*]}
socket=/Data/app_1/mysql.sock

i=0
while    [ $i -lt $len ]
do
    echo "export db: ${database[$i]}"
    mysqldump -uroot -pwww.aslibra.com --socket=$socket -l -f --default-character-set=utf8 ${database[$i]}> /Data/bak/aslibra/${database[$i]}.sql
    let i++
done

echo "tar files"
cd /Data/bak
tar cvfz aslibra.tgz aslibra

echo "send files"
scp aslibra.tgz root@www.aslibra.com:/Data/backup/aslibra


这里设置了一个数组database,导出相应的数据库

在另外一个机器上:

import.sh

#!/bin/sh

cd /Data/backup/aslibra

echo "extra files"
tar xvfz aslibra.tgz

echo "importing data,wait..."

database=("aslibra" "work")
len=${#database[*]}
socket=/Data/app_9306/mysql.sock

i=0
while    [ $i -lt $len ]
do
    echo "import db: ${database[$i]}"
    mysql -u root -pwww.aslibra.com --socket=$socket --default-character-set=utf8 ${database[$i]} < /Data/backup/aslibra/aslibra/${database[$i]}.sql
    let i++
done


可以选择导入mysql的库,这样用户权限也导入了,另外,要导入的库需要先建立。
Tags: ,
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]