LoginSignup
0
2

More than 5 years have passed since last update.

MySQL 5.7でmysqldが起動しない件

Last updated at Posted at 2017-04-18

MySQL5.5から5.7に以降した時、playbookがコケてmysqlが立ち上がらなくなったので調査しました。

oppai@test:~$ sudo service mysql start
.................................................................................................................................................................................... * MySQL Community Server 5.7.18 did not start. Please check logs for more details.
oppai@test:~$ sudo mysqld_safe
2017-04-18T09:08:20.732801Z mysqld_safe Logging to '/var/log/mysql.err'.
2017-04-18T09:08:20.748330Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2017-04-18T09:08:20.905812Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
oppai@test:~$

straceで見てるとmysql.errの書き込みで怒られてるのを発見。

open("/var/log/mysql.err", O_WRONLY|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)
open("/var/log/mysql.err", O_WRONLY|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)
open("/var/log/mysql.err", O_WRONLY|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)

でも、権限はあってそう、なぜ?

oppai@test:~$ ll /var/log/mysql.err
-rw-r----- 1 mysql mysql 1590 Apr 18 09:03 /var/log/mysql.err

MySQL5.7のドキュメントにちゃんと書いてました。どうやら、MySQL5.7から書込み可能なディレクトリにerrorログを入れないといけないようです。apt等で入れたときのデフォルトでは log-error=/var/log/mysql.err になってますが、 log-error=/var/log/mysql/mysql.err にすればOKでした。

https://dev.mysql.com/doc/refman/5.7/en/error-log.html
It is common for Yum or APT package installations to configure an error log location under /var/log with an entry like log-error=/var/log/mysqld.log in a server configuration file. Removing the file name from the entry causes the default log file to be used, which is written to the data directory.

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2