LoginSignup
13
17

More than 5 years have passed since last update.

MySQLをインストールしたけど起動しないときのデバッグ方法

Posted at

MySQLをインストールしたのに起動しなくて困ったときどうデバッグしていったらいいかについてのメモです。

要約

  • my.cnfにlog-errorを設定しないとログを吐かないので問題がなんだか分からない
  • MySQL 5.5からmy.cnfの[mysqld]の項目default-character-setがなくなったので代わりにcharacter-set-serverを設定する

環境

FreeBSD 10
MySQL 5.6

インストールから起動まで

# pkg install mysql56-server
# /usr/sbin/sysrc mysql_enable=YES mysql_dbdir="/usr/local/mysql/data"
# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
[mysqld]
skip-character-set-client-handshake
default-character-set = utf8
datadir=/usr/local/mysql/data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[mysql]
default-character-set = utf8
# mkdir -p /usr/local/mysql/data
# chown -R mysql:mysql /usr/local/mysql
# chmod 764 /usr/local/mysql
# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
# /usr/local/etc/rc.d/mysql-server status
mysql is not running.

MySQLが起動しません。起動しない原因を探すにもエラーメッセージは何も出てこないし、どこにもエラーログがありません。それもそのはず、MySQLのエラーログの出力先をmy.cnfで設定しないといけないからです。エラーログを出力するには以下のようにmy.cnfに追記します(参考)。

[mysqld]
log-error=/var/log/mysql/mysqld.log

そして指定したディレクトリを用意

# mkdir /var/log/mysql
# chown mysql:mysql /var/log/mysql
# chmod 664 /var/log/mysql

改めて起動してみると

# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
# cat /var/log/mysql/mysqld-error.log | grep ERROR
2015-12-13 03:16:51 4794 [ERROR] /usr/local/libexec/mysqld: unknown variable 'default-character-set=utf8'
2015-12-13 03:16:51 4794 [ERROR] Aborting

エラーの原因が分かりました。default-character-set=utf8が良くないようです。調べてみると、MySQL5.5からはcharacter-set-server=utf8としないといけないそうです(参考)。my.cnfを修正したところ、無事起動できました。

13
17
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
13
17