在mac上面,安裝MySQL一不小心忘記保存自動生成的初始密碼就悲劇,各種百度。以前,沒寫過博客,或許是覺得自己太菜鳥了吧,每次遇到問題總是百度別人的博客,有點不好意思了,所以把自己這次遇到的問題,記錄下來,希望對后面遇到這類問題的同學有幫助。
傻瓜式的安裝,總是讓你不太注意安裝的信息上說了什么,就像沒有人會讀安裝軟件的協議一樣,會把非常重要的信息丟掉了。比如,安轉mysql時的初始密碼;
                                                                                
安裝完mysql之后,會有個窗口提示你 root 用戶訪問localhost時的初始密碼:我這個就是 !u*_o!J3(t(F 誰要把這個密碼能記住,那我太佩服了。截圖是 在mac 右側通知欄提示的。關了窗口也沒關系,查看通知也行。但是通知信息也刪了,就可能麻煩了,你要么去查看系統的log,要么接著百度網上的各種方法,反正不懂原理,就只能碰了,真是鬧心。
好了說說,我遇到的情況吧。我一共裝過兩次在mac平臺,第一次,整的真想摔了mac,第二次比較順利??赡苁怯辛说谝淮蔚氖?。
第一次是吧安裝時的初始密碼忘了,又對mac ox系統不懂,也不懂linux,都不知道在哪里看這些東西。所以只能一次又一次的百度,人家提示的那些命令。當然你若是保存這個初始密碼會比較好弄。
打開終端,當你敲mysql  系統提示  -bash: mysql: command not found 那說明系統shell不認識這個命令,你需要,在 ~/.bash_PRofile 文件里配置這個命令 這個隱藏文件是當你啟動終端這個程序的時候,這個程序就回自動去讀取的文件。就像下面這樣。
你不能完全抄我的這個路徑,你需要自己去路徑下看下自己mac上具體的路徑,但是大提上都一樣的,你的mac不一定裝的是 5.7.17-macos10.12-x86_64 的mysql 可能這里需要改動下,其實許多的命令都可以在這里配置,如 python / svn 等等。
當你參照百度的博客的提示 敲mysql -u root -p 是系統提示:

mysql 拒絕了你的訪問,而且 using passWord : 一會兒是YES ,一會兒是NO,怎么回事,有點懵逼了,系統在發什么神經。其實當你在輸入密碼的時候,輸入123456,輸入root都是不對的,有人說win系統默認是123456,我沒弄過就不說了,你輸本機的登錄密碼還是不對。當你沒有注意上面的那個提示,A temporary password is generated for root@localhost:!u*_o!J3(t(F 為root@localhost生成的一個臨時的密碼:!u*_o!J3(t(F ,你要輸這個就對了。就進去了,like that。

迫不及待輸入下 show databases; 想看下有什么數據庫,系統提示你,先把臨時的密碼改掉。like that。

alter 這個命令 我還不不熟悉,第一次安裝數據庫,就是想學下數據可操作的語句,上來就整著么難的,我擦,百度吧。
百度說 用 set password=123456; 就能把root的密碼改成123456,我試了一下

系統說,他不認識。我擦,
這里的密碼是要加上單引號的,可能雙引號也行,可能password這個字斷在設計的時候不是個int類型的也不是double而是varchar類型,字符串,想一下也對啊。
改成 SET PASSWROD = '123456' 就好了

現在來 show databases; 就能顯示出來了。like this。

最后,還要執行 flush privileges;這個命令的意思是,讓上面的修改生效。真是麻煩,尤其是對第一次接觸和使用數據庫的人來說。like this。

上面所述的是你 記住了安裝mysql時的初始密碼,著么干就好了,那要忘了呢?有兩種方式,1. 卸載mysql重新安裝,下次安裝時注意那個生成的初始密碼,由于mysql不是應用層軟件,卸載起來也沒那么容易,詳細請百度。2.這種方式是先stop mysql 再進入到安全模式,然后 重新打開一個終端,進入到mysql,然后,執行mysql的命令修改 root的密碼。
詳細步驟可以參考https://segmentfault.com/a/1190000002955092,也可以看我下面寫的。
第一步: cd /usr/local/mysql-5.7.17-macos10.12-x86_64/bin 目錄下,/mysql-5.7.17-macos10.12-x86_64這個要看你自己mac上面具體叫什么名字了,最好自己cd進到local看下。
第二步:sudo ./mysqld_safe --skip-grant-tables & 后面的&最好加上。
第三步:重新打開個終端窗口,敲mysql 就進入到了安全模式下的mysql環境了,可以修改 root的密碼了。
輸入這個 update mysql.user set password='123456' where user='root';
第四步:flush privileges; 重新設置下權限,就ok了
如果這樣你就通過了,那恭喜你,非常幸運,因為,我自己敲第三步命令時,系統提示我,不認識password這個字段,悲劇了。like this,或許我第一次,忘記初始密碼時,這么搞,就OK了,那次搞了接近3個月的時間,也不是天天弄,反正過個一兩個星期,就弄一次。堅持住沒摔mac。只是無數次我槽,從心中飄過。

這怎么辦?臥槽,看下user這個表都有什么字段唄,然后修改下。like that。

著有點暈,show create table user; 看下那個和密碼相關的字段在創建的時候時varchar類型的,畢竟密碼在保存時一般都是字符串的。

沒有一個是字符串的,看來這個表中沒有密碼了, 這個問題我也搞不定了,若果您也遇到這種情況,我建議您重新安裝下mysql軟件,記住初始密碼,按照我上面說的做吧。
以后隨著理論知識的的深入,在給大家,解釋怎么解決,這次就先寫這么多了。希望大家多多批評指導。謝謝
新聞熱點
疑難解答