Laravel 5.8 から PostgreSQL に接続しようとして .env に必要な情報を記述し、接続テストをすると
"password authentication failed"
というエラーになってつながらない。
同じ設定でPDOを直接使って接続したら普通に接続できる。
数時間悩んで試行錯誤して、原因が判明。
パスワードに "#" が含まれていて .env に
DB_PASSWORD=abc#123
のように書いていたので、 "#"以降がコメントと見なされていた。
DB_PASSWORD="abc#123"
とダブルクォートで囲んだら接続できた。
アホ過ぎるorz
教訓
"#" を含む可能性がある文字列(パスワード、何かのキーなど)を .env に書くときはダブルクォートで囲んでおいた方が無難。