Postgresql错误,“没有pg_hba.conf条目”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Postgresql错误,“没有pg_hba.conf条目”相关的知识,希望对你有一定的参考价值。

我是编程的新手。我正在构建一个rails应用程序,现在想将它推送到Heroku。我跟着Heroku's guidelines将我的数据库从sqlite 3转换为postresql。执行此操作后,当我尝试迁移甚至在本地主机上检出我的应用程序时,我收到此错误

“PG :: ConnectionBad:FATAL:主机”[local]“没有pg_hba.conf条目,用户”keemtaker“,数据库”tuma_database_development“,SSL关闭”

我检查了同样问题的先前答案,但它对我来说是如此令人困惑和压倒性的。如果我能得到一步一步的指导来解决这个错误,那就太好了。我之前使用过PostgreSQL没有任何问题。这就是我的gemfile的样子

    source 'https://rubygems.org'
ruby '2.3.4'

gem 'figaro'
gem 'jbuilder', '~> 2.0'
gem 'puma'
gem 'rails', '5.1.4'
gem 'redis'
gem 'cloudinary'
gem 'carrierwave', '~> 1.2'
gem 'rails_admin', '~> 1.2'
gem 'pg'

gem 'autoprefixer-rails'
gem 'bootstrap-sass'
gem 'jquery-rails'
gem 'font-awesome-sass'
gem 'sass-rails'
gem 'simple_form'
gem 'turbolinks', '~> 5.0.0'
gem 'coffee-rails'

gem 'uglifier'
gem 'webpacker'
gem 'devise'
gem 'ransack'
gem 'trix'


gem "letter_opener", group: :development


group :development do
  gem 'web-console', '>= 3.3.0'
end

group :development, :test do
  # gem 'binding_of_caller'
  # gem 'better_errors'

  gem 'pry-byebug'
  gem 'pry-rails'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

在我的database.yml中,我有

    default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: tuma_database_development

test:
  <<: *default
  database: tuma_database_test

production:
  <<: *default
  database: tuma_database_production
答案

通过这种配置,您的应用程序将查找本地数据库,在heroku上,您没有

但是see here the config they're advising

  1. 添加postgres附加组件
  2. 将生产配置行替换为上面链接中显示的配置行

安装附加组件时,heroku将在项目中添加DATABASE_URL环境变量。 Rails会自动查找并选择这个变量(see here

另一答案

您需要为Heroku指定数据库URL,因为您无法访问其基础结构上的本地数据库。用这个替换你的productiondatabase.yml部分:

production:
  url: <%= ENV["DATABASE_URL"] %>
  pool: 15

所以你的完整database.yml看起来像这样:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: tuma_database_development

test:
  <<: *default
  database: tuma_database_test

production:
  <<: *default
  url: <%= ENV["DATABASE_URL"] %>

资料来源:Getting started with Rails on Heroku

以上是关于Postgresql错误,“没有pg_hba.conf条目”的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 安装 - 错误加载模块

postgresql 错误:由于用户请求而取消语句

postgresql“而不是”错误

尝试 PostgreSQL 主从 WAL 复制时出现“主 PostgreSQL 标识符与从属 PostgreSQL 标识符不匹配”错误

XAMPP + PostgreSQL = 错误

PostgreSQL 和 Django 的权限被拒绝错误。授予 PostgreSQL 用户管理员权限