不管會不會,我是這樣在mac上n次安裝與卸載mysql的

咬咬牙,堅(jiān)持就會成為習(xí)慣

最近公司安排任務(wù)去研究unity ar ,這對于一心在web開發(fā),特別是前端技術(shù)的我,可以說帶來了不少困擾和情緒上的變動。可是當(dāng)我靜下心來想想,夢想是夢想,實(shí)際是實(shí)際,帶著夢想走著實(shí)際的路,哪個不是學(xué)么,更何況ar,vr現(xiàn)在正火著呢。不管怎么樣我依然不會改變web開發(fā)的人生之路,如果現(xiàn)在改變不了現(xiàn)狀,那就等到有能力改變現(xiàn)狀的時候,我會堅(jiān)持下去,一直待到時機(jī)成熟時。好了扯遠(yuǎn)了,回到正題。

電腦系統(tǒng)從win換到mac后,最大的變化就是整個人都蒙蔽了。mac和win的操作有很大的差別,所以長久在win的開發(fā)習(xí)慣都要進(jìn)行相應(yīng)的改變。沒辦法,只能一步步學(xué)習(xí)mac上好的開發(fā)習(xí)慣。

1、mysql的n次安裝與卸載

mysql mac上的安裝方式有兩種,一種是直接去mysql 官方下載mac的安裝包,跟隨著指引一直next就行。安裝成功后,會彈出一個對話框,里面告訴你臨時的mysql本地登錄密碼。然后找到mac 的偏好設(shè)置,可以發(fā)現(xiàn)多出一項(xiàng)mysql圖標(biāo),點(diǎn)擊打開,點(diǎn)擊start mysql service 按鈕打開mysql 服務(wù)就ok了。

可是本人好死不死就是忘記了提示的登錄密碼,接下來一系列的百度的指令操作、卸載、重裝直接導(dǎo)致mac start mysql服務(wù)失效,沒有反應(yīng)。這里得吐槽一下自己沒有冷靜的思考問題。盲目的去跟隨別人的建議去操作,沒有任何意義。

2、homebrew 安裝 mysql

換個思路吧,homebrew這個mac套件還不錯,傳送門:

https://brew.sh/index_zh-cn.html

首先先把之前的mysql清理干凈,指令清理方式如下:

sudo rm /usr/local/mysql sudo rm -rf /usr/local/var/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* vim /etc/hostconfig and removed the line MYSQLCOM=-YES- 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.*

好了,接下來,安裝homebrew,打開終端,復(fù)制官網(wǎng)提供的指令,接下來就是指令自己去安裝了。

安裝mysql

brew install mysql

啟動mysql

mysql.server start

報(bào)錯 多個端口沒有被允許 (mysqld_safe.pid: Permission denied),看來之前卸載依然有問題

看下哪些多余的端口,pid還在運(yùn)行,指令查看

ps -ef|grep mysqld

ps -ef|grep mysql

通過指令把多余的殺掉

sudo kill -g pid號

sudo 很重要,在win系統(tǒng)中往往不需要,但是mac的安全機(jī)制經(jīng)常要在指令前加上sudo ,如果不輸入會報(bào)錯,所以加上為好。

再一次啟動還是報(bào)同樣的錯

運(yùn)行指令

sudo mysqld_safe --skip-grant-tables

--skip-grant-tables是個mysql一個參數(shù)。它表示在啟動mysql時不啟動grant-tables,授權(quán)表。這個授權(quán)表就是之前授權(quán)拒絕的原因所在。

發(fā)現(xiàn)終于看到success的字樣了

趕緊把密碼改過來,此時此刻,進(jìn)入mysql 密碼是空的,進(jìn)入后修改密碼

update user set password=password('你的新密碼') where user='root'

但是報(bào)錯又來了

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

需要刷新用戶表

flush privileges

flush privileges的基本解釋:它本質(zhì)上的作用是將當(dāng)前user和privilige表中的用戶信息/權(quán)限設(shè)置從mysql庫(MySQL數(shù)據(jù)庫的內(nèi)置庫)中提取到內(nèi)存里。MySQL用戶數(shù)據(jù)和權(quán)限有修改后,希望在"不重啟MySQL服務(wù)"的情況下直接生效,那么就需要執(zhí)行這個命令。通常是在修改ROOT帳號的設(shè)置后,怕重啟后無法再登錄進(jìn)來,那么直接flush之后就可以看權(quán)限設(shè)置是否生效。而不必冒太大風(fēng)險。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容