如何將所有MySQL數據庫從舊服務器轉移到新服務器上?
譯文【51CTO.com快譯】在服務器之間轉移或遷移MySQL/MariaDB數據庫通常只需要幾個輕松的步驟,但轉移數據要花一段時間,長短取決于想要轉移的數據多少。
你在本文中將了解如何將所有MySQL/MariaDB數據庫從舊的Linux服務器轉移或遷移到新服務器,成功地導入,并證實數據已遷移到位。
重要說明:
- 務必確保裝有同一發行版的兩臺服務器上安裝了同一版本的MySQL。
- 務必確保兩臺服務器上都有足夠的閑置空間,以保存數據庫轉儲文件和導入的數據庫。
- 千萬別考慮將數據庫的data目錄轉移到另一臺服務器上。別亂動數據庫的內部結構,不然將來會出問題。
將MySQL數據庫導出到轉儲文件
先登錄進入到舊服務器,使用systemctl命令,停止mysql/mariadb服務,如下所示:
- # systemctl stop mariadb
- OR
- # systemctl stop mysql
然后使用mysqldump命令,將所有MySQL數據庫轉儲到一個文件。
- # mysqldump -u [user] -p --all-databases > all_databases.sql
一旦轉儲完畢,你就可以準備轉移數據庫了。
如果你想轉儲單單一個數據庫,可以使用該命令:
- # mysqldump -u root -p --opt [database name] > database_name.sql
將MySQL數據庫轉儲文件轉移到新服務器
現在使用scp命令,將數據庫轉儲文件轉移到新服務器的主目錄下,如下所示:
- # scp all_databases.sql user@example.com:~/ [All Databases]
- # scp database_name.sql user@example.com:~/ [Singe Database]
一旦連接,數據庫將轉移到新服務器。
將MySQL數據庫轉儲文件導入到新服務器
一旦MySQL轉儲文件轉移到了新服務器,你就可以使用下列命令將所有數據庫導入到MySQL。
- # mysql -u [user] -p --all-databases < all_databases.sql [All Databases]
- # mysql -u [user] -p newdatabase < database_name.sql [Singe Database]
一旦導入完成,你可以在mysql shell上使用下列命令,核實兩臺服務器上的數據庫。
- # mysql -u user -p
- # show databases;
將MySQL數據庫和用戶轉移到新服務器
如果你想把所有的MySQL數據庫、用戶、權限和數據結構從舊服務器統統轉移到新服務器,可以使用rsync命令,將來自mysql/mariadb數據目錄的所有內容轉移到新服務器,如下所示:
- # rsync -avz /var/lib/mysql/* user@example.com:/var/lib/mysql/
一旦轉移完成,你就可以將mysql/mariadb數據目錄設成歸用戶mysql和用戶組mysql所有,然后列出目錄,檢查所有文件已轉移過去。
- # chown mysql:mysql -R /var/lib/mysql/
- # ls -l /var/lib/mysql/
就這樣!你已從本文了解了如何將所有MySQL/MariaDB數據庫從一臺服務器輕松遷移到另一臺服務器。你覺得這個方法相比其他方法怎樣?歡迎留言交流。
原文標題:How to Transfer All MySQL Databases From Old to New Server,作者:Aaron Kili
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】