【问题标题】:Fresh-installation laravel project can't access postgresql database but can do php migrate全新安装的laravel项目无法访问postgresql数据库但可以进行php迁移
【发布时间】:2018-03-19 09:10:51
【问题描述】:

两天前我已经问过这个问题,这里是链接 Got "password authentication failed for user" but in pgAdmin 3 its working

但我仍然没有得到解决问题的答案。

于是我尝试新建一个laravel项目,然后编辑.env文件,检查php artisan migrate是否可以运行。

在我运行php artisan migrate 之后它正在运行,所以这意味着我对 PostgreSQL 数据库的凭据是正确的,对吧?如果不是,它会告诉您用户“postgres”的密码验证失败,但我根本没有收到任何错误,所以我进入下一步。现在,在我确保一切正常后,我运行php artisan make:auth,它完全没有错误,所以我转到网络浏览器然后运行该站点,我单击register / login 按钮,填写字段,然后提交,噩梦又发生了

我从网站收到这条消息

SQLSTATE[08006] [7] 致命:用户“postgres”的密码验证失败 致命:用户“postgres”的密码验证失败(SQL:从“用户”中选择计数(*)作为聚合,其中“电子邮件”=测试@test.com)

尽管php artisan migrate 运行得非常好,所以我不知道为什么会这样。以前有人遇到过这个问题吗?或者为什么会这样?

我已经搜索了所有可能解决此问题的关键字,但我找不到答案,这真的让我压力很大。

关于我正在使用的信息:

PostgreSQL 9.6.8

Laravel 5.6

Ubuntu 17.10

已编辑:这是我的pg_hba.conf

【问题讨论】:

  • 你检查过这个answer吗?
  • 清除配置缓存后尝试
  • @Taacoo 我已经试过了
  • 社区给了我很多,所以我总是愿意尽一切可能回馈。顺便说一句,我很高兴。愿您尽快发现错误。
  • @parthu_panther 你真好

标签: php laravel postgresql ubuntu


【解决方案1】:

检查配置目录中的 database.php 文件,并检查 pgsql 数组。如果从 .env 访问数据库凭据值在那里不起作用,请直接将凭据放在那里进行测试。希望它会有所帮助。 Artisan 命令通过直接从 .env 文件而不是从 database.php 访问凭据来工作,这就是迁移起作用的原因。

【讨论】:

  • 我已经设置了 env 和 database.php,在我问这个问题之前,我遇到了这个问题大约 3 天。但问题只是 laravel 无法访问 psql 数据库
  • 您是否更改了 database.php 中的默认连接。 'default' => env('DB_CONNECTION', 'pgsql'),
  • 是的,我已经这样做了,并将 vars 设置为正确的登录凭据(我可以将此凭据与 pgAdmin 一起使用,甚至我可以使用 php artisan migrate,只设置 env 文件,所以我相信env文件或凭证没有问题)
  • 将用户名和密码直接放入database.php,检查是否有效。
  • 如果这不起作用,请清除您的配置和缓存。 php artisan 配置:清除 php artisan 缓存:清除
【解决方案2】:

我遇到了类似的问题,我生成的密码包含字符:'#'。这使它成为注释行,忽略密码的其余部分。我刚刚改了密码。

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    • 2019-02-27
    • 2019-08-26
    • 2021-01-25
    相关资源
    最近更新 更多