當一開始使用 brew install mysql
你就悲劇了
會下載最新版並開始安裝
以下指令得知當前下載哪一最新版本:
1 | $ brew info 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
清除乾淨後,大致上幾個步驟
安裝
1
brew install mysql@5.7
輸出 path
1
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
對 zsh 做重新載入
1
source ~/.zshrc
啟動 mysql@5.7
1
2brew service start mysql@5.7
brew services list檢查進程 ID 是否存在
1
ps -ax | grep mysql
登入
1
mysql -uroot
以上是我是過好幾遍的安裝流程
甚至還測試找一台空機重頭安裝
照著做直接無縫使用 Mysql@5.7
還是奉勸大家不要安裝錯誤阿~
OS: 要是與其花三天降版,不如直接整台電腦重新裝
安裝 mariadb
安裝 Homebrew 檢查更新 Homebrew
1
2# 安裝
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"1
2
3# 檢查更新
brew doctor
brew update查 mariadb 穩定版並安裝
查看版本 1
2brew info mariadb
> mariadb: stable 10.4.13 (bottled)安裝 1
brew install mariadb
執行資料庫安裝程式
1
mysql_install_db
mysql 啟動
1
2
3mysql.server start
> Starting MariaDB
> SUCCESS!建議都透過 brew services 去啟動
1
2brew services stop mariadb
brew services start mariadb也建議不要用
restart
指令
要檢查 process id1
2launchctl list | grep mariadb
> 64804 0 homebrew.mxcl.mariadb進入 mysql
如果在第三步安裝時,不是使用 root 權限安裝
則會創建兩個帳號,且會告知
root 只能由 root 帳戶登入
user 可以由 user 帳戶無密碼登入假如當前是 user 帳戶 1
2
3
4
5# 則會遇到權限問題
mysql -u root
# 則可以直接登入
mysql -u user接下來看個人設定,看專案 database 的設定檔
1
2username: root
password:一般 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;1
2username: root
password: YOURPWD這邊提一下,我安裝的是 mysql 5.5 版本
如果是5.7 可能設定密碼會需要參考此篇:
Access Denied for MYSQL ERROR 1045
創建 Database
以 rails 專案為例,使用 rake 指令創建
1 | rake db:create |
跑 migrate 時,要是遇到類似以下的問題
1 | usr/local/opt/mysql/lib/libmysqlclient.21.dylib |
因為專案在使用 mysql
套件時
路徑預設是 usr/local/opt/mysql/lib/
但是我們裝的是 mysql@5.7
所以預設路徑是 usr/local/opt/mysql@5.7/lib/
以我的為例:
1 | # 創建假的 mysql 資料夾 |
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修改密碼與忘記密碼重設