先diss下自己,其實mac利用brew安裝mysql還是比較簡單的。
但是這次安裝,只要遇到問題我就網上搜,搜索結果一大堆解決方法,本來問題比較明朗,但是搜的多了,就會出現其他連鎖反應。
【朋友超哥曾經說過:“走的太遠 容易忘記回去的方向,寫的太多 容易忘記原有的邏輯......”】
自己沒有冷靜的思考問題,盲目的去按照別人的建議去操作,最后亂七八糟的,也許也是自己技術能力不過關的原因之一吧。
所以在自己踩過太多坑的基礎上,寫下此文mac利用brew安裝mysql 8.0.13的過程。
一、官網下載Mysql 8.0.13
下載地址:https://dev.mysql.com/downloads/mysql/
進入此網站,會自動匹配到你的操作系統,可直接下載.dmg文件。
二、利用brew安裝mysql:
Homebrew是macOS缺失的軟件包管理器,使 macOS更完整,譬如可以安裝Apple Store沒有預裝,但你需要的東西。
更多詳情請查看Homebrew官網:https://brew.sh/index_zh-cn.html
一定要安裝Homebrew成功。
安裝Mysql前,需要先把之前的文件清理干凈(如果第一次安裝,此步驟可忽略)
執行下列命令
- sudo rm /usr/local/mysql
- sudo rm -rf /usr/local/mysql*
- sudo rm -rf /Library/StartupItems/MySQLCOM
- sudo rm -rf /Library/PreferencePanes/My*
- 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.*
利用brew安裝mysql,輸入如下命令:
brew install mysql
brew install mysql.jpg
三、常用的brew命令
獲取service列表
brew services list
重啟mysql服務
brew services restart mysql
停止mysql服務
brew services stop
四、終端登錄mysql
剛才的截圖中有提到,brew安裝的mysql,root用戶登錄沒有密碼,不用輸入密碼,直接回車即可
mysql -u root -p.jpg
五、查詢用戶密碼:
查詢用戶密碼命令:
use mysql;
select host,user,authentication_string from user;
- host:允許用戶登錄的ip‘位置’%表示可以遠程;
- user:當前數據庫的用戶名;
authentication_string:用戶密碼【重點字段,后面有提到此字段】;
執行sql語句.jpg
六、設置(或修改)root用戶密碼
默認root密碼為空的話 ,下面使用navicat就無法連接,所以我們需要修改root的密碼。
“此處踩過N多坑,后來查閱很多才知道在mysql 5.7.9以后廢棄了password字段和password()函數;而改為authentication_string字段表示用戶密碼。”下面直接放出目前修改root密碼的步驟:
一、如果當前root用戶authentication_string字段下有內容,需要先將其設置為空。若已經是為空直接進行步驟二。
use mysql;
update user set authentication_string='' where user='root';
二、使用ALTER修改root用戶密碼,如下:
ALTER user 'root'@'localhost' IDENTIFIED BY '新密碼';
此處有兩點需要注意:
- 不需要flush privileges來刷新權限。
密碼要包含大寫字母,小寫字母,數字,特殊符號。
image修改成功后; 退出重新使用用戶名密碼登錄即可。
注意: 一定不要采取 如下形式修改密碼:
use mysql;
update user set authentication_string="新密碼" where user="root";
因為這樣會給user表中root用戶的authentication_string字段下設置了newpassword值;
當再使用
ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'
時會報錯的;因為authentication_string字段下只能是mysql加密后的41位字符串密碼;其他的會報格式錯誤;
*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE
七、利用navicat連接本地數據庫
第一次連接時,明明賬號密碼都正確,連接還是報錯提示。
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
分析下:
1、在MySQL 8.0.4版本之前,執行:SET PASSWORD=PASSWORD('[新密碼]');
2、但是MySQL 8.0.4開始,這樣默認是不行的。
3、因為之前,MySQL的密碼認證插件是“mysql_native_password”,而現在使用的是“caching_sha2_password”。所以我們這里需要再修改一次root密碼。
先登錄進入mysql環境:執行下面三個命令。(記得帶上分號)
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
FLUSH PRIVILEGES;
完美解決啊
navicat成功連接.jpg