Linux环境mysql快速备份及迁移

时间:2021-10-03 03:12:26

       在项目实施的过程中,经常会面临数据库迁移,导出和导出数据,如果用普通的mysql客户端备份,时间较长且容易出错。那么mysql快速备份及迁移,就成为数据库迁移的重中之重。

下面介绍我在项目实现过程中用到的方法。

      1.为了方便,这边直接将需要执行的SQL语句写成脚本dbbak.sh。脚本内容如下:       

#!/bin/sh
#bak dir
BACKUP_ROOT=备份路径

BACKUP_FILEDIR=$BACKUP_ROOT

#current date
DATE=$(date  %Y%m%d)

###backup db
DB_NAME=dfdb
DB_USER="用户名"
DB_PASS="密码"
DB_HOST="IP地址"

cd /usr/local/mysql/bin
#DB_NAME=dbname
./mysqldump -h$DB_HOST -P12306 -u$DB_USER -p$DB_PASS --default-character-set=utf8 -q -B dbname | gzip > $BACKUP_FILEDIR/dbname-$DATE.sql.gz

2.备份数据库,执行上述脚本文件,会生成 dbname-xxx.sql.zip 文件,即是备份好的数据库文件

3.下载备份好的 dbname-xxx.sql.zip 文件,上传到新的服务器中,然后执行gzip -d  dbname-xxx.sql.zip  进行解压

4.切换到mysql 的 路径下, 比如  cd /usr/local/mysql/bin   然后 root 账户登录  ./mysql -u root -p  到 mysql> 的状态。

5.查看所有的数据库   show databases;(特别注意,如果迁移过来的数据的需要更改数据库名称,就要在第3步前修改备份文件里的数据库的名称)

  如果有相同的数据库名称,需要先备份之前的数据库,否则后面数据迁移的过程中,会覆盖掉之前的数据。

6.创建新的数据库名称: CREATE DATABASE dbname;

7.切换到当前的数据库 :use dbname;

8.在mysql> 状态 source  /mnt/dbname.sql  //替换为上面解压的数据库文件实际路径及文件名称

至此数据库备份迁移完毕!