在項目實施的過程當中,常常會面臨數據庫遷移,導出和導出數據,若是用普通的mysql客戶端備份,時間較長且容易出錯。那麼mysql快速備份及遷移,就成爲數據庫遷移的重中之重。mysql
下面介紹我在項目實現過程當中用到的方法。sql
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 進行解壓spa
4.切換到mysql 的 路徑下, 好比 cd /usr/local/mysql/bin 而後 root 帳戶登陸 ./mysql -u root -p 到 mysql> 的狀態。code
5.查看全部的數據庫 show databases;(特別注意,若是遷移過來的數據的須要更改數據庫名稱,就要在第3步前修改備份文件裏的數據庫的名稱)blog
若是有相同的數據庫名稱,須要先備份以前的數據庫,不然後面數據遷移的過程當中,會覆蓋掉以前的數據。ip
6.建立新的數據庫名稱: CREATE DATABASE dbname;class
7.切換到當前的數據庫 :use dbname;登錄
8.在mysql> 狀態 source /mnt/dbname.sql //替換爲上面解壓的數據庫文件實際路徑及文件名稱
至此數據庫備份遷移完畢!