[Laravel] Laradockハマりどころメモ(MySQL関連)

スポンサーリンク

簡単にLaravel環境が作れるみたいな触れ込みのLaradockですが、実際はDockerを高度にカスタマイズしたものなので設定をちゃんと読まないとあんまりよくわからない感じになったりして、学習コスト高くない?と思ったりする今日このごろです。
その中でMySQL関連で気になったことのメモです。

MySQLのバージョン8が入る

env-exampleのMYSQL_VERSIONにはデフォルトでlatestが設定されているので、これをcpして.envを作ってビルドすると今だとMySQL8が入ります。
8は下記の通り認証方式が変わっていたりGRANTでのユーザー作成方法が変わっていたりとか色々めんどいので初回ビルド前にバージョンを5.7に指定してしまうほうが楽かもしれません。

MySQL8で認証方法が変わっている

MySQL8から認証方式がなんか新しいものに変わっています。
そのせいでLaravelがマイグレーションに失敗したりします。(現在もまだするかは確認していません)
これを旧バージョンの認証方法に直すには
[laradockディレクトリ]/mysql/my.cnfに以下を追加します。

[mysqld]
default-authentication-plugin=mysql_native_password

ただmy.cnfはmysqlのDockerfile内のCOPYコマンドででイメージに埋め込まれるようなので、my.cnfの変更を(コンテナ単位でなく)継続的に反映したかったらmysqlのイメージを作り直す必要があります。

Sequel ProがMySQL8に繋ごうとするとクラッシュする

Macの便利なMySQL用GUIクライアントSequel ProがMySQL8に対応しておらずMySQL8のサーバーに接続するとクラッシュします。
これは安定版でなく最新の開発バージョンを入れると修正されています。
アイコンにシロップがかかっていないのが若干寂しいですが…。

Homebrewから

$ brew cask install homebrew/cask-versions/sequel-pro-nightly

Webから

Test Builds

コメント