macOS Sierra 下的MySQL 無法啟動的原因


在macOS下安裝了MySQL服務做些測試,后來有段時間不用了,系統也升級過,最近幾天發現MySQL的服務器已經無法啟動了,在系統偏好設置的軟件端提示這樣一個告警:

1 Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'

所以懷疑可能是目錄權限的問題,首先查看MySQL都建立了哪些用戶和組

1 # cat /etc/passwd | grep mysql
2 _mysql:*:74:74:MySQL Server:/var/empty:/usr/bin/false
3 # cat /etc/group | grep mysql 
4 _mysql:*:74:

看起來是用戶和組名字發生了變化,具體原來是什么名字不記得了,直接改

1 # sudo chown -R _mysql /usr/local/mysql/data


另外要說的是,如果你的電腦開機了發現沒有啟動MySQL服務,首先應該去系統偏好設置里看看有沒有勾選開機自動啟動,如果需要開機自動啟動,勾選上就好了。 如果不需要,那每次使用之前,記得啟動服務。

這里再順便說一下MySQL的root密碼忘記了該如何恢復的解決方法:
首先確定系統的版本,比如我的系統是下面這樣的

1 $ cat /System/Library/CoreServices/SystemVersion.plist
2 Mac OS X 10.12.1

確定MySQL的版本

1 $ mysql --version
2 mysql Ver 14.14 Distrib 5.7.15, for osx10.11 (x86_64) using EditLine wrapper

切換到MySQL的安裝目錄下

1 $ cd /usr/local/mysql/bin
2 $ sudo ./mysqld_safe --skip-grant-tables &

登陸無秘MySQL
$ mysql
然后修改密碼,這里要注意,我的MySQL版本是5.7的,和之前的修改root密碼的方法不同,我的user表里,沒有了Password 字段了,密碼變成加密存儲在 authentication_string 字段里加密存儲。

1 update mysql.user set authentication_string=password('newpass') where User='root';
2 flush privileges;

如果是 MySQL 5.6 之前的版本

1 update mysql.user set Password=password('newpass') where User='root';
2 flush privileges;

好了。重新啟動MySQL服務器,密碼已經修改了。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com