これはなに
DockerのMySQLを5.7から8.0にアップデートする方法です。
docker composeを使ってる前提です。
手順
docker/mysql/Dockerfile
- FROM mysql:5.7
+ FROM mysql:8.0
docker/mysql/Dockerfile
のバージョンを書き換えます。
docker-compose build mysql
docker-compose build
するとバージョンアップされます。
ダメそうなら
docker-compose build --no-cache mysql
で試してみてください。
再度mysqlコンテナを起動すると、自動でデータのアップグレードが行われ、MySQL8.0として使えるようになります。
一度データがアップグレードされてしまうと、過去のバージョンのMySQLでは動作しなくなってしまう可能性があるので注意してください。
Laravelで発生する問題の解消
mysql8からデフォルトのauth plugin
が変更になっていて
それにlaravelが対応していなく以下のエラーが発生します。
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from `users` where
そこで、以下の設定をmy.conf
に設定します。
my.conf
default-authentication-plugin = mysql_native_password
以上、 参考になりましたら幸いです。