运行 laravel 迁移时出现密码身份验证失败错误
Password authentication failed error on running laravel migration
我正在尝试在 DigitalOcean Droplet 上部署我的 Laravel 应用程序。 Droplet 是使用 nginx、php7 和 postgres 设置的,我按照 DigitalOcean 的教程了解如何设置它们。然后我尝试按照 this tutorial 如何使用 git 挂钩等部署 Laravel 应用程序。
现在应用程序本身已启动并且 运行ning,我可以访问页面和所有内容。但是我不能运行php artisan migrate
。我一直在更改 .env
文件上的数据库用户名、名称和密码,但我总是得到 exact 相同的错误:
[Illuminate\Database\QueryException]
SQLSTATE[08006] [7] FATAL: password authentication failed for user "deploy"
FATAL: password authentication failed for user "deploy" (SQL: select * from information_schema.tables where table_schema = apollo and table_name = migrations)
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[08006] [7] FATAL: password authentication failed for user "deploy"
FATAL: password authentication failed for user "deploy"
[PDOException]
SQLSTATE[08006] [7] FATAL: password authentication failed for user "deploy"
FATAL: password authentication failed for user "deploy"
这是我最新的 .env
数据库配置:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USERNAME=postgres
DB_DATABASE=postgres
DB_PASSWORD=[my password]
DB_SCHEMA=public
如您所见,荒谬的是,即使将 DB_USERNAME
设置为 postgres
,错误仍然会显示 for user "deploy"
.
我一直在谷歌搜索,最接近的事情,或者我是这么认为的,是更新 /etc/postgresql/9.5/main/postgresql.conf
上的一些配置,也就是制作 listen_addresses = '*'
。我更新了它,重新启动了 postgres 服务,但仍然得到完全相同的错误。
谁能帮我指出我遗漏了什么?
谢谢。
这是由于缓存造成的。
当你运行、php artisan config:cache
时,它会缓存配置文件。每当事情发生变化时,您需要保持 运行 更新缓存文件。但是,如果您从不 运行 该命令,它就不会缓存。
这对于生产来说没问题,因为配置不会经常更改。但是在暂存或开发期间,您可以通过清除缓存来禁用缓存,而不是 运行 缓存命令
因此,只需 运行 php artisan config:clear
,不要 运行 之前的命令以避免缓存
我正在尝试在 DigitalOcean Droplet 上部署我的 Laravel 应用程序。 Droplet 是使用 nginx、php7 和 postgres 设置的,我按照 DigitalOcean 的教程了解如何设置它们。然后我尝试按照 this tutorial 如何使用 git 挂钩等部署 Laravel 应用程序。
现在应用程序本身已启动并且 运行ning,我可以访问页面和所有内容。但是我不能运行php artisan migrate
。我一直在更改 .env
文件上的数据库用户名、名称和密码,但我总是得到 exact 相同的错误:
[Illuminate\Database\QueryException]
SQLSTATE[08006] [7] FATAL: password authentication failed for user "deploy"
FATAL: password authentication failed for user "deploy" (SQL: select * from information_schema.tables where table_schema = apollo and table_name = migrations)
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[08006] [7] FATAL: password authentication failed for user "deploy"
FATAL: password authentication failed for user "deploy"
[PDOException]
SQLSTATE[08006] [7] FATAL: password authentication failed for user "deploy"
FATAL: password authentication failed for user "deploy"
这是我最新的 .env
数据库配置:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USERNAME=postgres
DB_DATABASE=postgres
DB_PASSWORD=[my password]
DB_SCHEMA=public
如您所见,荒谬的是,即使将 DB_USERNAME
设置为 postgres
,错误仍然会显示 for user "deploy"
.
我一直在谷歌搜索,最接近的事情,或者我是这么认为的,是更新 /etc/postgresql/9.5/main/postgresql.conf
上的一些配置,也就是制作 listen_addresses = '*'
。我更新了它,重新启动了 postgres 服务,但仍然得到完全相同的错误。
谁能帮我指出我遗漏了什么?
谢谢。
这是由于缓存造成的。
当你运行、php artisan config:cache
时,它会缓存配置文件。每当事情发生变化时,您需要保持 运行 更新缓存文件。但是,如果您从不 运行 该命令,它就不会缓存。
这对于生产来说没问题,因为配置不会经常更改。但是在暂存或开发期间,您可以通过清除缓存来禁用缓存,而不是 运行 缓存命令
因此,只需 运行 php artisan config:clear
,不要 运行 之前的命令以避免缓存