【问题标题】:Broken psql. Cannot access psql client损坏的 psql。无法访问 psql 客户端
【发布时间】:2013-04-09 22:59:24
【问题描述】:

我正在尝试使用 rails 3+ 设置 psql。我关注了这个http://railscasts.com/episodes/342-migrating-to-postgresql,一切顺利。我的 database.yml 有这个:

# PostgreSQL. Versions 8.2 and up are supported.
#
# Install the pg driver:
#   gem install pg
# On Mac OS X with macports:
#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
#   gem install pg
#       Choose the win32 build.
#       Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
development:
  adapter: postgresql
  encoding: unicode
  database: app_development
  pool: 5
  username: root
  password:
  host: localhost
  port: 5432

  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  #host: localhost
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # The server defaults to notice.
  #min_messages: warning

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: postgresql
  encoding: unicode
  database: app_test
  pool: 5
  username: root
  password:
  host: localhost
  port: 5432

production:
  adapter: postgresql
  encoding: unicode
  database: app_production
  pool: 5
  username: root
  password:
  host: localhost
  port: 5432

当我运行 'psql -U root -h localhost -p 5432 -W' 时,无论我给它什么密码,它都无法连接。'rake db:create:all' 也失败了

Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"app_production", "pool"=>5, "username"=>"root", "password"=>nil}

有什么想法吗?

【问题讨论】:

  • 教程没有在database.yml中设置host: localhost。这种差异意味着它不受 pg_hba.conf 中相同的身份验证规则的约束(它使用 unix 域套接字,而不是 TCP 套接字)。这可能解释了为什么它不需要密码,而您却需要。

标签: ruby-on-rails postgresql unix


【解决方案1】:

我不确定您是如何安装 PostgreSQL 的 - 在我的 Mac 上,我发现它通常期望数据库用户名是我的用户名,并且没有密码。你确定你设置了root用户名和密码吗?

【讨论】:

  • 我在安装过程中没有设置密码。把它留空它给了我,psql:fe_sendauth:没有提供密码
  • 你确定用户名应该是root吗?
  • 我试过 root 和我的名字。我认为系统上没有更多用户
  • 当您尝试不使用密码时,您是否删除了-W 标志?
  • 您使用的是什么操作系统?你是如何安装 PostgreSQL 的?
猜你喜欢
  • 2019-02-21
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 2012-09-02
  • 2013-11-22
  • 2022-06-28
相关资源
最近更新 更多