當一開始使用 brew install mysql
你就悲劇了
會下載最新版並開始安裝
以下指令得知當前下載哪一最新版本:
降版的不歸路上有一種「壞路不能走的體悟」
大家都說
「要是一開始就避開最新版 version 8 就省去很多事!」
OS 吶喊
「一開始我就不知道阿~~~~~」
在 mysql@5.7
降版中,以下是你常見遇到的問題:
zsh: command not found: mysql
- 這種問題很簡單,安裝完 mysql
- 都會要你打印到 zsh file 複製以下這段到裡面即可
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH
- 參考 zsh: command not found: mysql
Access denied for user 'root'@'localhost'
- 很標準權限問題
- root 在過程中會重置到忘記要不要密碼?
- 以及是否可以使用 root 登入?
The server quit without updating PID file
- pid 找不到或者重複
- 參考 Mysql啟報錯報The server quit without updating PID file
unknown variable 'mysqlx-bind-address=127.0.0.1'
- 同上面那篇。
- 將藏在 my.cnf 的這段註解掉或拿掉即可
Can't connect to local MySQL server through socket
- 這是我一直不知道如何解,因為跟其他 error 交錯
- 要是找到降版過程解這個問題的核心,麻煩幫我留言指教
- 參考:Can’t connect to local MySQL server through socket [SOLVED & FIXED]
Mysql 降版起因
為了可以使用蜜蜂罐 Sequel Pro
version 8 會直接 crash 一直轉要求送崩潰報告
為了要避開 mysql version 8
聽說太多不兼容,各個同事遇到不同的問題
同時要能透過 mysql -u root -p
登入
遇到能背景有啟動,但是就是上述其他問題,一直鬼打牆
第一步: fully remove mysql
有兩種
一種是降版無限地獄
一種是安裝 mariadb 安裝該穩定版
不過不外乎都要刪・乾・淨!
為了安裝 mysql@5.7
過程
發現簡單的 brew uninstall mysql
並不會完全移除 mysql
相關檔案
所以這邊要提醒一點,要移除乾淨!
可以參考這兩篇
Uninstall all those broken versions of MySQL and re-install it with Brew on Mac Mavericks
或者簡書版:在Mac OS X上怎么彻底卸载mysql
我照上述第一個連結操作
並每一個資料夾一個一個逛
只要是 mysql 就二話不說,刪除!
最後在我鍥而不捨精神下,最後找到移除乾淨的重點!
此
/usr/local/opt
路徑下mysql@5.7
是我最後下載正確的檔案,原本是mysql
且rm -rf mysql
刪不掉,跑sudo rm -rf mysql
才成功刪除。移除根目錄的
mysql_history
移除 zsh 檔案裡面的 mysql path
務必重啟電腦
開始安裝MySQL
安裝 Mysql@5.7
降版參考: operatino/MySQL_5-7_macOS.md
清除乾淨後,大致上幾個步驟
安裝
輸出 path
對 zsh 做重新載入
啟動 mysql@5.7
檢查進程 ID 是否存在
登入
以上是我是過好幾遍的安裝流程
甚至還測試找一台空機重頭安裝
照著做直接無縫使用 Mysql@5.7
還是奉勸大家不要安裝錯誤阿~
OS: 要是與其花三天降版,不如直接整台電腦重新裝
安裝 mariadb
安裝 Homebrew 檢查更新 Homebrew
查 mariadb 穩定版並安裝
執行資料庫安裝程式
mysql 啟動
建議都透過 brew services 去啟動
也建議不要用
restart
指令
要檢查 process id進入 mysql
如果在第三步安裝時,不是使用 root 權限安裝
則會創建兩個帳號,且會告知
root 只能由 root 帳戶登入
user 可以由 user 帳戶無密碼登入接下來看個人設定,看專案 database 的設定檔
一般 mac 不會使用 root 帳號進行開發
如果想使用 root 進行 databases 操作
那就用 user 登入 mysql,再去改 root 密碼
再填回設定檔,如下:登入改 root 密碼 1
2
3
4mysql -u user
MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('YOURPWD');
MariaDB [(none)]> FLUSH PRIVILEGES;這邊提一下,我安裝的是 mysql 5.5 版本
如果是5.7 可能設定密碼會需要參考此篇:
Access Denied for MYSQL ERROR 1045
創建 Database
以 rails 專案為例,使用 rake 指令創建
跑 migrate 時,要是遇到類似以下的問題
因為專案在使用 mysql
套件時
路徑預設是 usr/local/opt/mysql/lib/
但是我們裝的是 mysql@5.7
所以預設路徑是 usr/local/opt/mysql@5.7/lib/
以我的為例:
1 | # sudo ln -s {mysql@5.7 libmysqlclient.dylib 檔案路徑} {上述要的路徑} |
- 最後沒採用,因為穩定版是
mariadb@10.4
換算為mysql@5.5
,還是有部分程式碼不兼容 - 發現前幾天才出穩定版的
mariadb@10.5
- 問題參考資料 rails + MySQL on OSX: Library not loaded: libmysqlclient.18.dylib
Ref
安裝 mariadb 參考以下:
額外補充指令: brew services
在 fully remove mysql 有刪除相關檔案
看這資料,可以瞭解背後刪的是什麼,更安心
解釋版本與 Mysql 分支: MariaDB 維基百科
查詢指令: MySQL修改密碼與忘記密碼重設