1

我在 AWS 上的弹性豆茎上有一个 laravel 应用程序。我使用 Postgres 作为数据库。它是 AWS linux 2。

当我尝试将本地连接到数据库时,我收到此错误。

我尝试修改数据库的入站规则,仍然无法正常工作。

Illuminate\Database\QueryException: SQLSTATE[08006] [7] FATAL: 用户“postgres”的密码认证失败 FATAL: 用户“postgres”的密码认证失败(SQL: select count(*) as aggregate from “user” where “phoneNumber " = +1111111111111111) 在第 692 行的文件 /var/app/current/vendor/laravel/framework/src/Illuminate/Database/Connection.php 中

4

2 回答 2

3

如果您的数据库是 AWS RDS 上的托管 PostgreSQL

然后你可能想重置用户的密码postgres

根据RDS 手册

要修改主用户密码,请执行以下步骤:

  1. 打开Amazon RDS 控制台
  2. 选择数据库
  3. 选择 RDS 数据库实例,然后选择Modify
    注意:如果您使用 Aurora,请展开集群,然后选择您要修改的实例。然后,选择修改
  4. 在“新主密码”字段中输入您要使用的主用户密码。
    注意:密码更改是异步的,并且会尽快应用。此更改忽略立即应用设置。
  5. 选择继续,然后选择修改数据库实例

RDS 仪表板上的 RDS 数据库实例的状态字段更改为reset-master-credentials。修改完成后,Status列变为Available。您还可以使用Amazon RDS APIAWS 命令​​行界面 (AWS CLI)修改 RDS 数据库实例。

如果您的数据库是自行部署到AWS EC2实例的

然后,您可能希望启用基于密码的postgres用户身份验证。默认情况下,它对新数据库实例禁用。

  1. 查找pg_hba.conf文件 要在您的服务器上查找 pg_hba.conf 文件,您可以查看 PostgreSQL 配置目录。例如:
find /etc/postgresql/ -name pg_hba.conf
  1. 然后在你的文件中打开找到的文件${EDITOR}
  2. 要允许对来自本地 192.168.0.0/24 网络的任何连接进行 md5 密码验证,请添加如下行:
# TYPE    DATABASE    USER        ADDRESS         METHOD  OPTIONS
host      all         all         192.0.0.0/24    md5
  1. 然后重启PostgreSQL:
sudo pgctl restart
于 2021-09-18T13:57:40.723 回答
1

你是对的@Yasen,谢谢。

更改密码有效

我早些时候想到了它,但是我只是不断地使用相同的密码创建新的数据库实例并且它一直失败。

无论如何,根本问题是密码在 laravel 中包含“#”和“#”,因此 php 表示注释;因此,它以某种方式影响了验证过程。

于 2021-09-19T17:41:07.337 回答