強制重啓服務器後啓動mysql不斷報錯誤「code=exited「,」failed「,系統建議我執行」systemctl status mysql.service「,執行後什麼信息都看不出來,只好找下系統日誌看看:php
cat /var/log/syslog
看到了一句有用信息:html
apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/proc/7272/status" pid=7272 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=999 ouid=999
看起來像沒有權限,我就去權限配置文件node
vi /etc/apparmor.d/usr.sbin.mysqld
把報錯的目錄加上讀權限,即把以下3句加到文件末尾:mysql
/proc/*/status r, /sys/devices/system/node/ r, /sys/devices/system/node/node0/meminfo r,
再次嘗試啓動mysql,報出了下面的錯誤:sql
apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=2693 comm="apparmor_parser"
看到unconfined我就預感日誌文件有問題,找到了下面的文章:bash
mysql啓動報錯:start: Job failed to start服務器
依次執行下面的命令,啓動成功app
sudo apt-get install apparmor-utils sudo aa-complain /usr/sbin/mysqld sudo /etc/init.d/apparmor reload sudo mv /var/lib/mysql/ib_logfile* /tmp sudo /etc/init.d/mysql start