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















 
 
 



 
 
 
 