原本以為在Mac下安裝配置mysql是一個很簡單的事情,結果在這個過程中遇到了很多麻煩。花了快兩個小時才將問題解決。寫這篇文章的目的就是希望大家可以快速的在Mac下安裝配置好mysql,少走些彎路!
Mac下如何安裝mysql?
當然是使用Homebrew啦,至於什麼是Homebrew和如何安裝Homebrew,請自己去Homebrew官網上看。成功安裝Homebrew之後,執行以下指令安裝mysql:
brew install mysql
安裝完成之後,可使用以下指令查看mysql安裝資訊:
brew info mysql
詳細安裝資訊如下:
可看見的Dependencies的小叉,用如下命令重新安裝cmake:
brew unlink cmake brew install cmake
再次查看mysql安裝信息,可發現紅色小叉變成了綠色小勾,說明依賴問題解決:
問題來了!
當我以為mysql已經安裝成功,用mysql -uroot連接資料庫的時候,出現了以下錯誤:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (62)
去查看系統快取資料夾,下面根本就沒有mysql.sock這個檔案。網路上有一些貼文說要去找或建立my.conf然後修改mysql.sock的路徑什麼的,我試了半天,發現根本沒用!然後我靜下來思考,覺得系統快取資料夾(/tmp)下沒有mysql.sock這個文件,應該是沒有成功生成,那為什麼沒有成功生成呢?查了一圈下來,發現有帖子說是因為沒有創建基礎表什麼的,於是我使用mysql_install_db想去創建基礎表,結果又出瞭如下錯誤:
ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxx.local.pid).
莫名奇妙,怎麼又說沒能成功更新PID文件呢?又去網路上看了半天,有貼文說可以先kill掉mysql的進程,然後怎麼怎麼樣,結果試了半天,發現還是沒用!痛苦了好半天,終於在一個貼文的回覆看見了一個高人的指點,說可以去看mysql錯誤日誌,查看mysql錯誤日誌指令如下:
cat /usr/local/var/mysql/xxx-mini.local.err
日誌裡面的[note]和[warning]可以不用管它,我直接找到了[error]即錯誤訊息:
知道是什麼問題了吧!居然是沒有讀寫權限惹得禍!使用dscl . list /Users | grep my可查到mysql在mac裡的用戶名是_mysql,然後修改mysql文件夾的擁有者:
sudo chown _mysql -R /usr/local/var/mysql/
大功告成!使用sudo mysql.server start就可以看到Starting MySQL .. SUCCESS!,這表示mysql已經正常啟動囉!