[英]I can not connect to Postgres DB with Strapi on Heroku
尝试使用 Postgres 在 Heroku 上部署 Strapi,如此处所述
https://strapi.io/documentation/v3.x/deployment/heroku.html
但我得到这个错误
error: no pg_hba.conf entry for host "84.212.51.43", user "ssqqeaz***", database "d6gtu***", SSL off
我使用 Heroku Postgres 插件。
我的数据库配置:
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'postgres',
host: env('DATABASE_HOST', '127.0.0.1'),
port: env.int('DATABASE_PORT', 27017),
database: env('DATABASE_NAME', 'strapi'),
username: env('DATABASE_USERNAME', ''),
password: env('DATABASE_PASSWORD', ''),
},
options: {
ssl: true
},
},
},
});
为什么? 请帮忙!
尝试将ssl: true
更改为ssl: false
您发布的当前配置不适用于 Heroku Postgres 数据库。 这里主要关注的是您正在从手动设置的配置变量中读取您的 postgres 数据库 url 的组件。 Heroku 强烈建议不要这样做,因为在发生灾难时他们可能需要将数据库移动到新主机。 当您在应用程序上创建数据库时, DATABASE_URL
由 Heroku 设置,它是您可以依赖的一个配置变量来保持最新状态。 继续...
您需要从DATABASE_URL
配置变量中解析用户名、密码、主机、端口和数据库名称,并将它们提供给settings
块的属性。 根据您提供的错误,我可以告诉您目前没有这样做,因为 Heroku 数据库用户名都以 'u' 开头,所以如果您收到错误user "ssqqeaz***"
,那就是非常错误的。 作为第一步,您可能会尝试在设置块中对这些值进行硬编码以确保其正常工作(确保在执行此操作后轮换凭证,或者清理您的 git 历史记录以防止泄露凭证)。 postgres 连接 url 的模式是这样的: postgres:// $USERNAME: $PASSWORD @ $HOSTNAME: $PORT / $DATABASE_NAME
。
不确定它是否有助于移动您的配置...
从选项键中删除 ssl
在设置键中的密码后插入 ssl 例如。
ssl: env.bool('DATABASE_SSL', false),
还要检查 Heroku 内的应用程序配置变量,并确保您具有所需的 postgres 配置变量设置,并且它们与 heroku 生成的 DATABASE_URL 配置变量匹配。 最后检查你的 ./config/server.js 文件并确保你的主机是 0.0.0.0
例如。
module.exports = ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 1337),
admin: {
auth: {
secret: env('ADMIN_JWT_SECRET', '**********************************'),
},
},
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.