這幾天公司新出了個元件化的專案,裡面需要用到mysql資料庫相關的技術,由於之前一直用的mongodb,所以mysql幾乎忘光了,於是只能在linux虛擬機器中重新開始學習。
基本的增刪改查還好,但是在資料備份的上遇到了一些問題,好在一番嘗試之後終於成功。
mysql的api以及網上說的備份命令是:mysqldump -uroot –p 要備份的資料庫名》 目標路徑/目標檔名.sql,於是我就照著敲了一遍,但是結果報了乙個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:
於是查了資料以後,我又進行了一些修改,如圖2:
但是呢,這時候2002是沒有了,取而代之的卻是有出現了1045錯誤:mysqldump: got error: 1045: access denied for user 'root'@'localhost'(using password: yes) when trying to connect,如圖3:
估摸著這意思應該是說root使用者和localhost許可權方面有問題,因為我記得我在設定mysql遠端訪問的時候把host都設定成了%,如圖4:
於是又在網上搜尋了一下之後,又找到了另乙個備份方面的命令,嘗試之後發現可行,如圖5:
至此,已經在linux虛擬機器中成功備份mysql資料庫,但是這個命令未免就太長了,再想到mysql的api說的應該總不會錯吧,於是便想著優化一下。
那麼,既然1045出現的錯誤我已經大概能猜到是使用者許可權的問題,於是便從這裡下手,沒有root的localhost,那就加上吧。進入資料庫,使用mysql,如圖4,然後新增使用者,如圖6:
再次檢視user表,可以發現成功新增,如圖7:
那麼備份的命令便可以變成優化之後的了,如圖8:
那麼最後,大概就是見證奇蹟的時刻了吧,該驗證api上的說法了:輸命令,回車,再次成功備份,至此算是大功告成了,如圖10:
總結一下,備份的話這裡可以細分為三種命令方式,只是勉強弄懂了的話就知道其實還是一種而已。
mysql命令新建 mysql命令方式新建資料庫
之前小沃寫過一篇較為詳細的mysql基本操作,如果大家有不熟悉的,這裡只是快速記錄下新建乙個資料庫,同時建立乙個同名使用者並讓其擁有對這個資料庫完整控制許可權的方法。新建如下 create database gogs create user gogs create user gogs localho...
Linux中source命令的使用方式
source命令是乙個內建的shell 命令,用於從當前shell會話中的檔案讀取和執行命令。source命令通常用於保留 更改當前shell中的環境變數。簡而言之,source乙個指令碼,將會在當前shell中執行execute命令。source命令可用於 source命令的語法 source命令...
linux中mysql常用命令
使用linux,要用mysql,必須對其常用命令非常熟悉.下面是蒐集的一些常用命令 1.linux下啟動mysql的命令 mysqladmin start ect init.d mysql start 前面為mysql的安裝路徑 2.linux下重啟mysql的命令 mysqladmin resta...