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

The innodb_system data file~でmacのmysqlが動かない場合の対処法

More than 3 years have passed since last update.

まとめ

  • /usr/local/var/mysqlの所有権が自分になってしまっていないか
    • なっていたら所有権を変える
    • 消して入れ直しても所有権がおかしいのでhomebrewがおかしい状態?

発生した問題

homebrewで mysql: stable 5.7.10 をインストールしていましたが、気がついたらmysqlが起動しなくなっていました。

% mysql.server start
Starting MySQL
. ERROR! The server quit without updating PID file (/usr/local/var/mysql/PCNAME.local.pid).

原因調査

/usr/local/var/mysql/PCNAME.local.errの最後のほうを見てみると、以下のようなエラーが出ていました。

2015-12-20T13:26:05.997337Z 0 [Note] InnoDB: Uses event mutexes
2015-12-20T13:26:05.997344Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2015-12-20T13:26:05.997350Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-12-20T13:26:05.997639Z 0 [Note] InnoDB: Number of pools: 1
2015-12-20T13:26:05.997808Z 0 [Note] InnoDB: Using CPU crc32 instructions
2015-12-20T13:26:06.085311Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2015-12-20T13:26:06.102112Z 0 [Note] InnoDB: Completed initialization of buffer pool
2015-12-20T13:26:06.119514Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2015-12-20T13:26:06.119558Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2015-12-20T13:26:06.119587Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2015-12-20T13:26:06.428463Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2015-12-20T13:26:06.428500Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2015-12-20T13:26:06.428511Z 0 [ERROR] Failed to initialize plugins.
2015-12-20T13:26:06.428517Z 0 [ERROR] Aborting

Errorとして、

The innodb_system data file 'ibdata1' must be writable

と出ていることから、対象のファイルのアクセス権が問題のようです。

解決方法

該当ファイルがある/usr/local/var/mysql/を確認したところ、
ほぼ全てのファイルの所有権が ログインユーザ:admin になっていたため、

sudo chown -R _mysql /usr/local/var/mysql
sudo chmod -R o+rwx /usr/local/var/mysql

を実行することで問題なく起動するようになりました。

補足

問題を解決する過程で一度mysqlをアンインストールし、
かつ/usr/local/var/msylqをフォルダごと消して再インストールしたにも関わらず、このエラーが解決しなかったため、
もしかしたら今のhomebrewが設定する所有権がおかしい状態なのかもしれません。

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
ユーザーは見つかりませんでした