爲了測試,我做了以下操作:
systemctl stop mysql.service
id mysql #顯示uid=1001(mysql) gid=1001(mysql) 組=1001(mysql)
userdel mysql
useradd -d /home/mysql mysql
然後id mysql #顯示uid=1004(mysql) gid=1004(mysql) 組=1004(mysql)
啓動MySQL服務器:
systemctl start mysql.service
#然後就報下面的錯
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
#這是執行systemctl status mysql.service
#得下面信息:
Process: 2971 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
#在錯誤日誌中找到下面一條錯誤信息:
2017-07-08T11:04:45.551671Z 0 [Warning] Failed to set up SSL because of the following SSL library
error: SSL context is not usable without certificate and private key
#然後發現/home/mysql下的文件屬性中的uid和gid都是1001,因爲當前的mysql用戶的uid,gid都爲1001,有跟據上面的錯誤信息,可以推出,是帳號驗證的問題,解決方法是在useradd時指定uid和gid
所以正確的方式:
systemctl stop mysql.service
sudo id mysql #這裏的結果用在下面的useradd中指定uid和gid,例如uid=1001,gid=1001
sudo userdel mysql
sudo groupadd -g 1001 mysql
sudo useradd -g1001 -u1001 -d /home/mysql mysql #現在就可以成功啓動MysQL數據庫服務器了
sudo passwd mysql #設置mysql賬戶的密碼
systemctl start mysql.service
OK!
堅持學習