[Laravel] PDOException : SQLSTATE[HY000] [2006] MySQL server has gone away

問題

Laravelを使用したアプリケーションをローカル環境で開発してたとき、
PCを再起動したらDBに接続できなくなった!

PDOException : SQLSTATE[HY000] [2006] MySQL server has gone away

Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109

コマンドやただのPHPからは接続できるのに、Laravelだけダメ!

原因

パスワードがcaching_sha2_passwordではなかったから?

解決策

ALTER USER `username`@`localhost` IDENTIFIED WITH caching_sha2_password BY 'password';

パスワードをcaching_sha2_passwordにしたら解決した。🤔

PCを再起動したら使えなくなったのは謎…。
確かにその前にDBをインストールしなおしてユーザーも新たに作って、
phpMyAdminを使うためにパスワードの暗号化形式を変更したから、それが原因だろうけれど、
再起動する前は使えてたのに…。

参考

Laravel Migration stalls and doesn't do anything
Just went through all the steps listed on the Laravel site to install and get up and running for MacOS HighSierra. I currently have Composer, Homebrew, valet, P...