LoginSignup
11
13

More than 5 years have passed since last update.

Laravel+Dockerのmysqlで「--initialize specified but the data directory has files in it. Aborting.」というエラーが出たので解決した話

Posted at

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

おーできたできた

エラー面倒くせえっすねえ、、、

とりあえず治ったのでこれでよしでしょう!!

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13