今天接了新的任務需要從遠程伺服器把MySQL資料庫的資料匯入到本地。這真是有點趕鴨子上架的感覺。因為之前幾乎沒有接觸過mysql,而且MySQL是部署在Linux伺服器上,更主要的是MySQL資料庫伺服器不能直接通過公網IP訪問,需要先登入一台Linux伺服器作為踏板在另一台Linux伺服器上操作。
既然任務來了,不能不做。在網上搜了一大圈,終於有了眉目。大致步驟如下:
1.登入到遠程Linux伺服器
遠程伺服器可以用SSH協議來登入,開始使用PUTTY,可是發現串連後不能粘貼密碼,伺服器密碼不下20位,而且什麼字元都有,一個個輸顯然太累了,後來問了對Linux比較熟的同事,推薦我用SSH Secure Shell Client。一用,果然好用。
2.從遠程伺服器登入到mysql資料庫伺服器
遠程伺服器是Linux系統,要從它登入到別的Linux系統只能使用ssh了。
#ssh [mysql伺服器IP]
之後會讓輸入密碼,因為是在SSH Secure Shell Client裡操作,可以直接粘貼密碼。
3.將mysql資料庫dump出來
由於不知道mysql資料庫的名稱,首先用mysql命令登入,show databases查看資料庫。
mysqldump -u使用者名稱 -p密碼 資料庫名 >dump檔案的路徑和名稱
4.將dump檔案由mysql伺服器拷貝到遠程伺服器上
scp [mysql伺服器IP]:dump檔案 .
由於遠程伺服器和mysql伺服器都是用root登入,執行命令後,會要求輸入mysql伺服器的root的密碼。輸入密碼後,dump檔案會拷貝到root的家裡邊。
5.壓縮dump檔案
dump出的檔案有1G多,嘗試直接下載,速度最快時只有100多K,要下載好幾個小時。先壓縮一下吧。
bzip2 -zv dump檔案
壓縮用了不到5分鐘,壓縮有100多M,這樣下載起來就省時間了。壓縮後是bz2檔案,未壓縮的檔案不見了。www.britepic.org原來bzip2還有個-k選項,可以保留壓縮前的檔案。
6.從遠程伺服器拷貝檔案到本地
這步就簡單了,SSH Secure Shell Client軟體提供了一個“SSH Secure File Transfer Client”,布局跟cuteftp有點類似。