PG::ConnectionBad FATAL: 角色“我的名字”不存在

Posted

技术标签:

【中文标题】PG::ConnectionBad FATAL: 角色“我的名字”不存在【英文标题】:PG::ConnectionBad FATAL: role "Myname" does not exist 【发布时间】:2014-06-13 20:07:03 【问题描述】:

我正在尝试使用 PostgreSQL,以便可以部署到 Heroku。但是我不能再运行 localhost 为什么?我收到以下消息:

PG::ConnectionBad
FATAL: role "Myname" does not exist

这是我的databse.yml

development:
  adapter: postgresql
  database: my_database_development
  pool: 5
  timeout: 5000

test:
  adapter: postgresql
  database: my_database_test
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: my_database_production
  pool: 5
  timeout: 5000 

这是我的 gemfile:

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.3'

# Use pg as the database for Active Record
gem 'pg'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'

# Use Uglifier as compressor for javascript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.1.2'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

gem 'rails_12factor', group: :production

似乎 pg 需要我创建用户或数据库,但我无法或不知道如何创建。找不到任何对我有用的命令(顺便说一句,我在 Windows 上)

我能做什么?

【问题讨论】:

您应该将usernamepassword 提供给您的database.yml 文件 我怎么知道我的密码是什么? 【参考方案1】:

错误是“角色“我的名字”不存在”,

为 Postgresql 创建用户“Myname”

sudo -u postgres createuser --superuser 我的名字

它会解决这个问题。

【讨论】:

【参考方案2】:

对我有用的是:createuser -P -d -e Myname

-P  If given, createuser will issue a prompt for the password of the new user.
      This is not necessary if you do not plan on using password authentication.
-d  The new user will be allowed to create databases.
-e  Echo the commands that createuser generates and sends to the server.

如果你在 OSX 上使用 homebrew 安装 Postgresql,没有默认的postgres 用户,如果不先设置用户,你将无法直接使用psql

【讨论】:

【参考方案3】:

在 Windows 上,我相信它会更容易一些。

为您的系统安装 postgresql 和 PGAdmin。见this

创建一个名为 postgres 的用户并给它一个密码。系统会很好地提示您执行此操作。

然后,当您想create databases 时,只需右键单击您的连接并选择新建数据库。这些数据库的名称应与您的database.yml中所写的内容相对应

运行rake db:migrate RAILS_ENV=development(开发|测试|生产)。

这些步骤对我有用。

【讨论】:

【参考方案4】:

使用这个命令来使用你的 Postgres 用户:

sudo su - postgres

现在使用这个命令创建一个用户:

createuser -s -r '用户名'

现在退出

错误已解决。

【讨论】:

【参考方案5】:

您应该为您的Postgresql 创建一个usernamepassword

尝试在psql中创建一个密码用户

CREATE USER Myname WITH PASSWORD 'your_password';

您应该将这些添加到您的database.yml

username: Myname
password: your_password

【讨论】:

【参考方案6】:

@user3408293

    安装后为postgresql创建一个用户

    sudo -u postgres createuser --superuser $USER

    sudo -u postgres createuser pgs_root

    为postgresql用户设置用户密码

    sudo -u postgres psql postgres

    (对于 psql 提示符) postgres=# \passsword for ex.- postgres=# \passsword pgs_root

注意,您还应该在 database.yml 文件中将用户名和密码添加到不同的环境。

您也可以参考这个链接:Rails: Error installing pg gem

【讨论】:

sudo 命令在我的电脑上不起作用。相信它在 Windows 上不起作用 这可能会对您有所帮助。 superuser.com/questions/42537/… 实际上我在 windows 机器上使用 gitbash 而不是 windows 命令行,抱歉应该指定。这太糟糕了,我什么都做不了.. 摆脱它,否则你将陷入困境:)【参考方案7】:

我必须进入我的 PG 管理仪表板并在那里创建一个数据库/用户。不幸的是,它位于与在线教程所说的不同的子目录中(可能是上次更新的更新目录目标)。幸运的是,我能够找到它并在那里创建表/用户,更新我的 database.yml 文件,然后我的应用程序就可以工作了!

【讨论】:

以上是关于PG::ConnectionBad FATAL: 角色“我的名字”不存在的主要内容,如果未能解决你的问题,请参考以下文章

PG::ConnectionBad - 无法连接到服务器:连接被拒绝

如何修复:PG::ConnectionBad:fe_sendauth:未提供密码

PG::ConnectionBad: 运行 export DATABASE_URL=postgres://$(whoami) 后无法翻译主机名错误

PG :: ConnectionBad:无法连接到服务器:连接被拒绝

Github 操作工作流 PG::ConnectionBad:无法连接到服务器:运行 bundle exec rake 时没有这样的文件或目录

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