
最近公司安排任務(wù)去研究unity ar ,這對(duì)于一心在web開(kāi)發(fā),特別是前端技術(shù)的我,可以說(shuō)帶來(lái)了不少困擾和情緒上的變動(dòng)??墒钱?dāng)我靜下心來(lái)想想,夢(mèng)想是夢(mèng)想,實(shí)際是實(shí)際,帶著夢(mèng)想走著實(shí)際的路,哪個(gè)不是學(xué)么,更何況ar,vr現(xiàn)在正火著呢。不管怎么樣我依然不會(huì)改變web開(kāi)發(fā)的人生之路,如果現(xiàn)在改變不了現(xiàn)狀,那就等到有能力改變現(xiàn)狀的時(shí)候,我會(huì)堅(jiān)持下去,一直待到時(shí)機(jī)成熟時(shí)。好了扯遠(yuǎn)了,回到正題。
電腦系統(tǒng)從win換到mac后,最大的變化就是整個(gè)人都蒙蔽了。mac和win的操作有很大的差別,所以長(zhǎng)久在win的開(kāi)發(fā)習(xí)慣都要進(jìn)行相應(yīng)的改變。沒(méi)辦法,只能一步步學(xué)習(xí)mac上好的開(kāi)發(fā)習(xí)慣。
1、mysql的n次安裝與卸載
mysql mac上的安裝方式有兩種,一種是直接去mysql 官方下載mac的安裝包,跟隨著指引一直next就行。安裝成功后,會(huì)彈出一個(gè)對(duì)話框,里面告訴你臨時(shí)的mysql本地登錄密碼。然后找到mac 的偏好設(shè)置,可以發(fā)現(xiàn)多出一項(xiàng)mysql圖標(biāo),點(diǎn)擊打開(kāi),點(diǎn)擊start mysql service 按鈕打開(kāi)mysql 服務(wù)就ok了。
可是本人好死不死就是忘記了提示的登錄密碼,接下來(lái)一系列的百度的指令操作、卸載、重裝直接導(dǎo)致mac start mysql服務(wù)失效,沒(méi)有反應(yīng)。這里得吐槽一下自己沒(méi)有冷靜的思考問(wèn)題。盲目的去跟隨別人的建議去操作,沒(méi)有任何意義。
2、homebrew 安裝 mysql
換個(gè)思路吧,homebrew這個(gè)mac套件還不錯(cuò),傳送門(mén):
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.*
好了,接下來(lái),安裝homebrew,打開(kāi)終端,復(fù)制官網(wǎng)提供的指令,接下來(lái)就是指令自己去安裝了。
安裝mysql
brew install mysql
啟動(dòng)mysql
mysql.server start
報(bào)錯(cuò) 多個(gè)端口沒(méi)有被允許 (mysqld_safe.pid: Permission denied),看來(lái)之前卸載依然有問(wèn)題
看下哪些多余的端口,pid還在運(yùn)行,指令查看
ps -ef|grep mysqld
ps -ef|grep mysql
通過(guò)指令把多余的殺掉
sudo kill -g pid號(hào)
sudo 很重要,在win系統(tǒng)中往往不需要,但是mac的安全機(jī)制經(jīng)常要在指令前加上sudo ,如果不輸入會(huì)報(bào)錯(cuò),所以加上為好。
再一次啟動(dòng)還是報(bào)同樣的錯(cuò)
運(yùn)行指令
sudo mysqld_safe --skip-grant-tables
--skip-grant-tables是個(gè)mysql一個(gè)參數(shù)。它表示在啟動(dòng)mysql時(shí)不啟動(dòng)grant-tables,授權(quán)表。這個(gè)授權(quán)表就是之前授權(quán)拒絕的原因所在。
發(fā)現(xiàn)終于看到success的字樣了
趕緊把密碼改過(guò)來(lái),此時(shí)此刻,進(jìn)入mysql 密碼是空的,進(jìn)入后修改密碼
update user set password=password('你的新密碼') where user='root'
但是報(bào)錯(cuò)又來(lái)了
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
需要刷新用戶(hù)表
flush privileges
flush privileges的基本解釋?zhuān)核举|(zhì)上的作用是將當(dāng)前user和privilige表中的用戶(hù)信息/權(quán)限設(shè)置從mysql庫(kù)(MySQL數(shù)據(jù)庫(kù)的內(nèi)置庫(kù))中提取到內(nèi)存里。MySQL用戶(hù)數(shù)據(jù)和權(quán)限有修改后,希望在"不重啟MySQL服務(wù)"的情況下直接生效,那么就需要執(zhí)行這個(gè)命令。通常是在修改ROOT帳號(hào)的設(shè)置后,怕重啟后無(wú)法再登錄進(jìn)來(lái),那么直接flush之后就可以看權(quán)限設(shè)置是否生效。而不必冒太大風(fēng)險(xiǎn)。