我刚刚在这台Mac上安装了最新的Rails,我刚刚运行:
rails new testApp2 -d=postgresql
因此,一旦构建了我的新应用程序,我就启动了rails服务器:
rails s
但是当我尝试访问http://localhost:3000/上的网站时,我收到以下错误:
fe_sendauth: no password supplied
在提取的来源中,它已在以下行停止:
@connection = PGconn.connect(@connection_parameters)
我试图遵循其他一些解决方案,但它们非常复杂,我觉得我可能错过了一个软件或更简单的东西。请有人能给我一个我能理解的解决方案吗?有原因。
在我的database.yml中,我有以下内容:
# PostgreSQL. Versions 8.2 and up are supported.
#
# Install the pg driver:
# gem install pg
# On OS X with Homebrew:
# gem install pg -- --with-pg-config=/usr/local/bin/pg_config
# On 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'
#
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: 5
development:
<<: *default
database: testApp_development
# The specified database role being used to connect to postgres.
# To create additional roles in postgres see `$ createuser --help`.
# When left blank, postgres will use the default role. This is
# the same name as the operating system user that initialized the database.
#username: testApp
# The password associated with the postgres role (username).
#password:
# 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
# The TCP port the server listens on. Defaults to 5432.
# If your server runs on a different port number, change accordingly.
#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
# Defaults to warning.
#min_messages: notice
# 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:
<<: *default
database: testApp_test
# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
# DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
# production:
# url: <%= ENV['DATABASE_URL'] %>
#
production:
<<: *default
database: testApp_production
username: postgres
password: <%= ENV['password'] %>
我无法让postgres.app工作,因为我一直收到一个错误,即它不会在这个版本的OSX(10.6.8)上运行,即使它声明它可以使用这个版本。所以我正在运行pgAdmin3 - 我认为它类似。
答案 0 :(得分:0)
更改md5(或其他)以信任您的用户,pg_hba.conf中的本地连接 - 这将允许您在没有密码的情况下进行连接...
答案 1 :(得分:0)
在您的database.yml中,您有testApp2
作为您的用户名。通常(至少在Mac上)Postgres会在Mac上创建具有您帐户名称的用户。也就是说,如果您使用用户名andy
登录Mac,则Postgres的用户为andy
且没有密码。看起来您在数据库中有一个名为testApp2
的用户,否则它会给您错误:
FATAL: role "testApp2" does not exist
因此,您有一个名为&#34; testApp2&#34;的用户,您可以为该用户创建密码并将其添加到您的database.yml文件中。您可以使用psql
从命令行执行此操作。或者,您可以将database.yml
中的用户更改为计算机上的帐户名称,因为该用户已设置为无需密码即可信任。