MySQLサーバ起動エラー 'The server quit without updating PID file '

Snow Leopardでは、MySQLを起動すると次のようなエラーが出ます。

PIDファイルを更新せずにサーバーが終了しました。

my.cnf

[mysqld]
port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

pid-file=/var/run/mysqld/mysqld.pid

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

.err"という接尾辞のついたログファイルを探してみると、より詳しい情報が得られるはずです。その中にあるかもしれません。

gt; /usr/local/var/mysql/your_computer_name.local.err

おそらくパーミッションの問題です。

mysqlのインスタンスが起動しているか確認してください。

ps -ef | grep mysql

起動している場合は、停止するか、プロセスを kill してください。

kill -9 PID

ここで、PIDは、前のコマンドの出力でユーザー名の横に表示された番号です。

  1. /usr/local/var/mysql/ の所有権を確認します。

ls -laF /usr/local/var/mysql/ja

root "が所有している場合は、"mysql "または "your_user "に変更してください。

sudo chown -R mysql /usr/local/var/mysql/

解説 (18)

エラーログには何と書かれていますか? 私もこのエラーが出ましたが、結局はmy.cnfの設定が古くて無効だったようで、mysqlのエラーログにはそれが示されていました。 設定が悪いのでなければ、エラーログは少なくとも正しい方向を示しているはずです。

まあ、この時点でOPは修正したと思いますが...このエラーを見ている他の人にも正しい方向を示してくれるといいですね。

解説 (0)

これがあなたのためになることを願っています。

エラーログを確認したところ、以下のようになっていました。

120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended

そして解決するために、mysqlフォルダ全体の所有権を与えました。

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.21-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.21-osx10.6-x86_64

それから(コマンドラインでもできます)、/usr/local/mysql-5.5.21-osx10.6-x86_64にあるフォルダの"get info"メニューの中から、(_mysqlmysqlユーザーに所有権を与えた後)囲まれたすべてのフォルダにパーミッションを適用しました。これはただのエイリアスなので、エイリアスにこれを加える必要はありません。

フォルダの名前は、お使いのmysqlのインストールバージョンによって異なります。

解説 (0)