docker環境のLaravelプロジェクトでWindowsにインストールしたMysqlへ接続しようとしたらエラー。
PDOException: SQLSTATE[HY000] [1130] Host 'host.docker.internal' is not allowed to connect to this MySQL server
ホストマシンとdockerではそれぞれ別のネットワークを利用しているため、MySQL側がlocalhostから接続しか許可していないとdockerコンテナ側からはDB接続ができません。
MySQL側の問題となります。権限付与で解決できます。
「WITH GRANT OPTION」が重要。MySQLの権限変更とか滅多に行わないので都度ググるハメになりますね
GRANT ALL PRIVILEGES ON *.* TO 'root'@'host.docker.internal' WITH GRANT OPTION;
そもそもdocker使ってるのにホストマシンでMySQL動かしてる時点で運用方法としておかしいんですが、こうして解決できるよ、と備忘録