久しぶりにbrew updateをしてみたのはいいんですが、その後Railsのアプリケーション(hogehoge)でmigrationを実行するとこんなエラーが出てきました。
1 |
Mysql2::Error: Can't read dir of './hogehoge/' (errno: 13): SHOW TABLES |
ふぁ!?こんなエラーははじめて見たのでちょっと焦る。。。
グーグル先生にきいてみるとMySQLの権限がおかしくなってて、brew updateの際に、/usr/local/mysql/data
以下のディレクトリの所有者が_mysql:wheel
ではなく$user:wheel
になってしまっていたのが原因みたい。本来、MySQLのディレクトリの所有者は_mysql:wheel
であるべきらしい。確認すると、
1 2 3 |
$ cd /usr/local/mysql/data $ ls -l drwx------ 144 $user wheel 4896 9 6 18:00 hogehoge |
所有者が$user:wheel
になっていました。そこで、
1 |
$ sudo chown -R _mysql:wheel /usr/local/mysql/data |
で/mysql/data以下のディレクトリの権限を_mysql:wheelに渡します。chownコマンドについてはここを見て下さい。もう一度migrationを実行。
1 2 |
$ cd /rails_app/hogehoge $ bundle exec rake db:migrate |
いけました!!
【参考URL】http://stackoverflow.com/questions/6050903/mysql2-error-on-rails-migration
みかさ
ピンバック: homebrewをいじったら Mysql2::Error: Can’t read dir of (errno: 13 – Permission denied): SHOW TABLES LIKE ‘schema_migrations’) が出て来て焦った – せんべいって美味しいよね