エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

mysql8以降使って、Laravelのmigrateができない問題【337日目】

環境作ったらmigrateができなかった

PHP+MySQLで環境作成したら、動かない。
マイグレーションしようとすると、PDOのエラーが出る。

デフォルトのパスワード認証のやり方が変わって、
caching_sha2_passwordって設定だから、接続できないよーって。

なので、mysql_native_passwordという設定に戻したい。

Dockerで対応

これをどこかに設定しておきたい。ただ、プロセス切って再起動すると、
データが消えるのでどうにかしたい。

docker-composeで、該当のファイルをマウントして書き換える。

docker-compose.yml

  mysql:
    container_name: study-laravel_mysql
    image: mysql:8.0.12
    volumes:
      - ./mysql-conf.d:/etc/mysql/conf.d

mysql-conf.d/default_authentication.cnf

[mysqld]
default_authentication_plugin= mysql_native_password

これで、コンテナ初回起動時に設定が変わる。

起動時に変わるので、コンテナ落としてあげてね。