linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

這幾天公司新出了個組件化的項目,里面需要用到mysql數(shù)據(jù)庫相關(guān)的技術(shù),由于之前一直用的mongodb,所以mysql幾乎忘光了,于是只能在linux虛擬機中重新開始學(xué)習(xí)。

基本的增刪改查還好,但是在數(shù)據(jù)備份的上遇到了一些問題,好在一番嘗試之后終于成功。

Mysql的api以及網(wǎng)上說的備份命令是:mysqldump? -uroot –p 要備份的數(shù)據(jù)庫名> 目標路徑/目標文件名.sql,于是我就照著敲了一遍,但是結(jié)果報了一個2002的異常(補充:一開始用這個命令的時候是提示找不到mysqldump的,后來用了軟連接ln把mysqldump命令實際地址連接到usr/bin):

mysqldump:Got?error:?2002:?Can't?connect?to?local?MySQL?server?through?socket'/tmp/mysql.sock'?(2)?when?trying?to?connect,  如圖1:

?linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

于是查了資料以后,我又進行了一些修改,如圖2:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

但是呢,這時候2002是沒有了,取而代之的卻是有出現(xiàn)了1045錯誤:mysqldump: Got error: 1045: Access denied for user ‘root’@’localhost'(using password: YES) when trying to connect,如圖3:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

估摸著這意思應(yīng)該是說root用戶和localhost權(quán)限方面有問題,因為我記得我在設(shè)置mysql遠程訪問的時候把host都設(shè)置成了%,如圖4:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

于是又在網(wǎng)上搜索了一下之后,又找到了另一個備份方面的命令,嘗試之后發(fā)現(xiàn)可行,如圖5:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

至此,已經(jīng)在linux虛擬機中成功備份mysql數(shù)據(jù)庫,但是這個命令未免就太長了,再想到mysql的api說的應(yīng)該總不會錯吧,于是便想著優(yōu)化一下。

那么,既然1045出現(xiàn)的錯誤我已經(jīng)大概能猜到是用戶權(quán)限的問題,于是便從這里下手,沒有root的localhost,那就加上吧。進入數(shù)據(jù)庫,使用mysql,如圖4,然后添加用戶,如圖6:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

再次查看user表,可以發(fā)現(xiàn)成功添加,如圖7:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

那么備份的命令便可以變成優(yōu)化之后的了,如圖8:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

顯而易見,命令變短了,只是依舊還不夠短,于是再次查找資料后找到了一個解決辦法,需要把mysql.sock的實際指向地址給鏈接到2002錯誤中的地址,我的修改如圖9:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

那么最后,大概就是見證奇跡的時刻了吧,該驗證api上的說法了:輸命令,回車,再次成功備份,至此算是大功告成了,如圖10:

linux中mysql命令方式備份數(shù)據(jù)的問題的詳解

總結(jié)一下,備份的話這里可以細分為三種命令方式,只是勉強弄懂了的話就知道其實還是一種而已。 ?

?以上就是linux中mysql命令方式備份數(shù)據(jù)的問題的詳解的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.php.cn)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊12 分享