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