在macOS下安裝了MySQL服務作些測試,後來有段時間不用了,系統也升級過,最近幾天發現MySQL的服務器已經沒法啓動了,在系統偏好設置的軟件端提示這樣一個告警:mysql
1 Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'。
因此懷疑多是目錄權限的問題,首先查看MySQL都創建了哪些用戶和組sql
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服務,首先應該去系統偏好設置裏看看有沒有勾選開機自動啓動,若是須要開機自動啓動,勾選上就行了。 若是不須要,那每次使用以前,記得啓動服務。app
這裏再順便說一下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的安裝目錄下spa
1 $ cd /usr/local/mysql/bin 2 $ sudo ./mysqld_safe --skip-grant-tables &
登錄無祕MySQL
$ mysql
而後修改密碼,這裏要注意,個人MySQL版本是5.7的,和以前的修改root密碼的方法不一樣,個人user表裏,沒有了Password 字段了,密碼變成加密存儲在 authentication_string 字段里加密存儲。code
1 update mysql.user set authentication_string=password('newpass') where User='root'; 2 flush privileges;
若是是 MySQL 5.6 以前的版本blog
1 update mysql.user set Password=password('newpass') where User='root'; 2 flush privileges;
好了。從新啓動MySQL服務器,密碼已經修改了。ip