想將A服務器中的數據庫快速轉移到B服務器中,一般是先從A服務器中備份下來,下載備份數據,還原到B服務器中。使用phpMyAdmin備份和還原針對數據量很小的情況下很方便,數據量大的話很容易中斷失敗。
如何快速高效的將大數據轉移到另一個服務器呢?綜合起來使用命令行的方式效率最高。
關鍵詞:MYSQL數據庫,mysql備份,mysql還原,數據庫備份,數據庫還原。
數據庫A賬戶信息
服務器地址:127.0.0.1
用戶名:username,密碼:password,數據庫名:dbname
數據庫B賬戶信息
服務器地址:127.0.0.2
用戶名:usernameb,密碼:passwordb,數據庫名:dbnamenew
常規步驟命令行:
備份並壓縮
mysqldump -uusername -ppassword dbname | gzip > /data/wwwroot/www/dbname.sql.gz
解壓並還原
gunzip < /root/dbname.sql.gz | mysql -uusernameb -ppasswordb dbnamenew
最佳方式介紹
還有一種直接將數據庫A直接轉移到數據庫B的方式(在服務器A中執行)
mysqldump --default-character-set=utf8mb4 --host=127.0.0.1 -uusername -ppassword --opt dbname | mysql --host=127.0.0.2 -uusernameb -ppasswordb --default-character-set=utf8mb4 -C dbnamenew
備注 (來此加密(https://letsencrypt.osfipin.com):免費簡單的申請Let’s Encrypt證書,不需要搭建服務器環境。)
1.必須保證服務器B的數據庫能夠服務器A訪問
2.--opt命令可選,建議加上。等同於指定 --add-drop-tables--add-locking --create-option --disable-keys--extended-insert --lock-tables --quick --set-charset。它可以給出很快的轉儲操作並產生一個可以很快裝入MySQL服務器的轉儲文件。
3.--default-character-set=utf8mb4 指定該數據庫連接的字符類型。如果服務器默認未utf8的話,導出的數據可能會丟失四字節的unicode信息(表情之類的)
4.-C 客戶端和服務器之間啟用壓縮傳遞所有信息。當然得要有咯。
mysql通過命令行快速轉移數據庫,一個命令(mysqldump)完成數據備份還原。