Mac上MySQL忘記root密碼且沒有權限的處理辦法&workbench的一些tips (轉)


忘記Root密碼腫么辦

Mac上安裝MySQL就不多說了,去mysql的官網上下載最新的mysql包以及workbench,先安裝哪個影響都不大。如果你是第一次安裝,在mysql安裝完成之后,會彈出來一個root賬號的臨時密碼,就像下面的圖:

我第一次的時候以為是個秘鑰啥的,就沒有細看,直接關掉了,直到我在workbench中想要連接mysql時,試了各種密碼都不行,才知道那個密碼是有用的。

沒辦法,我就去網上找,基本上網上說的都是這樣的解決辦法:

我用這樣的方法也確實進去了,不要密碼,但是我也沒法修改root的原始密碼,倒是不影響我適用,於是新建了一個連接,然后在我的本地建了個schema,然后寫了一堆建表、triggle啥的,本來一切都好好的。。。然后某天,我重啟了一下電腦,發現連不進去了。不能每次都繞過認證啊,於是又開始在網上一堆搜解決辦法,最后還是在stackoverflow上面找到了一個適合我的辦法,萬能的stackoverflow!!

這個適合我的辦法就是,重裝MySQL。。。。。

好吧,不要以為在mac上重裝MySQL就是雙擊安裝包啥的,沒那么簡單,因為你根本就找不到傳統的路徑,在應用程序那里也沒有一個圖標啥的,所以,得用命令行刪除,打開終端,然后依次輸入下面的命令

sudo rm /usr/local/mysql  
sudo rm -rf /usr/local/mysql*  
sudo rm -rf /Library/StartupItems/MySQLCOM  
sudo rm -rf /Library/PreferencePanes/My*  
sudo rm -rf ~/Library/PreferencePanes/My*  
sudo rm -rf /Library/Receipts/mysql*  
sudo rm -rf /Library/Receipts/MySQL*  
sudo rm -rf /var/db/receipts/com.mysql.*

rm是remove命令,刪掉的都是mysql的安裝目錄及相關的文件路徑

這樣,再重新雙擊一下安裝包,這次就ok了,記得在最后的時候保存一下那個temp的密碼。

之后在workbench里面,還是會有這個localhost 3306端口的入口,就是我們裝好的mysql了,這次利用保存好的密碼,就可以登錄進去了,其實在你登錄的時候,就會提示你設置一個新的密碼,到此就ok了。

接下來,說一些關於workbench的一些小的tips吧。

最先使用workbench那會我還沒有裝mysql,只是在網上查了下有沒有類似於powerdesinger一樣強大的工具,可以用來設計mysql的數據庫架構等,然后就找到了這個,當時也只是利用它的EER diagram,入口在主界面的左下角:

那個sakila_full的是它的一個示例模板,左邊那個是我自己見的,其實就是類似於PowerDesigner啦:

你可以在這里面設置各個表的結構,還可以設置Foreign key,trigger等

說到foreign key就不得不提在mysql里面的兩種不同的reference關系了:identifying relationship 和 non-identifying relationship,他們分別對應上圖里面的實線和虛線:

虛線是non-identifying ,實線是identifying 的關系,翻譯成中文就是強關聯和弱關聯,所謂強關聯(identifying relationship)就是說引用的外鍵不是獨立存在的,而是依附於它所參照的key的,或者說,某張表是依存於它所引用的表而存在的,不能獨立存在的。

好吧,我知道我解釋的也非常不清楚,同學們還是去google下這兩個之間的區別吧,網上的例子挺多的,我就不細說了。

重點說下最后一個工具,就是在1:n前面有個類似於取色器一樣的那個工具,那個是可以在現有的表結構之上建立外鍵關系的,先點擊一個表中的某個鍵,然后點擊它所引用的表中的某個鍵,這樣就建立好一個foreigner key了,而且它會自動判斷你這個關系是不是identifying的。我所有的外鍵約束都是用這個做好的。

另外我們雙擊某個表,就出來這樣的設置界面:

注意我在id后面的AI列打上了勾,這個列表示是自增序列的意思,注意mysql里面自增序列是每個表獨有的,而不是oracle那樣需要建立一個自增序列的,這個我在之前的blog中也有敘述。然后在最右側,可以設置你這一列的字符集以及注釋信息,這些內容我們通過這樣的可視化界面設置好之后,后面我會介紹如何導出SQL文件,那個文件省去了很多我們手動寫代碼的繁瑣了,特別方便。

在上面那個截圖的底端,我們還可以分別進入到index、foreign key以及trigger等的界面,都可以很直觀的進行設置。

好了,在這里面,我們基本上可以通過可視化的方式,把我們的整個數據庫架構搭建起來,那我們一定希望可以把相應的sql語句輸出,沒問題,接下里就是如何導出了:

file->Export->Forward Engineer SQL CREATE Script...

這里可以選擇導出的位置,還有一些定制化的選項,勾選不同的選項會導致你的sql 腳本發生相應的改變

接下來會詢問要導出的內容,默認你建好的東西都會幫你導出來,我這里有9個表,然后2個觸發器,所以都包含進來,點擊continue就到最后一步了

這里面我們可以看一下我們的之前的那些建好的表啊、觸發器啊語句是如何寫的,是不是很方便啊~這樣做數據庫的移植也非常的方便,而且因為有了這個腳本,這篇blog開頭講到的重新安裝mysql之后我才能迅速地在第一時間恢復數據庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM