該当ケース
- ConoHa VPSでサーバー稼働。イメージタイプ「Laravel」で起動。
- Laravelでデータベースを利用。.envにてDB_HOST=localhost、DB_USERNAME=root、DB_PASSWORD=デフォルトのパスワード
- マイグレーションは動く
- Modelを経由して動かそうとすると、「[HY000] [1698] Access denied for user 'root'@'localhost'」となる
ポイント
- マイグレーションは動いた = usernameやパスワードはあってるはず → DBは大丈夫と思った
- Laravel側の設定のほうがどちらかといえば経験が少なかったので、なんか変なことしたかな?と思った
- デバッグするとPDOの接続でコケる → マイグレーションは動いているのになんでだ…と無限ループ
結果
コンソールからDBにログインし、
select user,host,password from mysql.user;
とすると、passwordがinvalidになってました。
どうやらこのケースはパスワード再設定するといけるっぽいので、
SET PASSWORD FOR root@localhost=password('パスワード');
としました。
結果、動くようになりました。
一言
ちなみにこれで4時間無駄にしました。