天天看點

Linux環境mysql快速備份及遷移

       在項目實施的過程中,經常會面臨資料庫遷移,導出和導出資料,如果用普通的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  //替換為上面解壓的資料庫檔案實際路徑及檔案名稱

至此資料庫備份遷移完畢!