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 上)
我能做什么?
【问题讨论】:
您应该将username
和password
提供给您的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
创建一个username
和password
尝试在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 时没有这样的文件或目录