Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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を修正したところ、無事起動できました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした