Dockerの知識が浅いくせにDockerで開発しているせいか、最近mysqlでエラーを連発して、大変な思いをしております。
その中でも頻発するエラーがこれ
[ERROR] --initialize specified but the data directory has files in it. Aborting.
解決しても、次に出没するときには忘れてしまうので、記事として残しておくことにします。
エラーがを解決するまでの道のり
上でも見せましたがエラーはこれ
[ERROR] --initialize specified but the data directory has files in it. Aborting.
そして、僕はナイスな回答を見つけてしまいます。
MySQL docker 5.7.6 and later fails to initialize database
これ通りに、mysqlのimageをmariadbに変更してみました
image: mariadb
マイグレーションをする
Laravelを使っているので、マイグレーションが必要です。
$ docker-compose exec phpfpm sh -c 'cd ../ && php artisan migrate' git:feature/5_login_register*
Illuminate\Database\QueryException : SQLSTATE[42S02]: Base table or view not found: 1932 Table 'produce.migrations' doesn't exist i
n engine (SQL: select `migration` from `migrations` order by `batch` asc, `migration` asc)
なぬ!またエラーが出た!!
というわけで、色々調べた結果、データを削除することにしました。
僕はdocker-compose.yml
に
volumes:
- ./db/data:/var/lib/mysql
と書いてあるので、
$ rm -rf db/data
を実行して、
$ docker-compose down && docker-compose up -d
を実行して
$ docker-compose exec phpfpm sh -c 'cd ../ && php artisan migrate'
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
おーできたできた
エラー面倒くせえっすねえ、、、
とりあえず治ったのでこれでよしでしょう!!