PG :: ConnectionBad致命:角色" Myname"不存在

时间:2014-04-28 10:14:15

标签: ruby-on-rails postgresql heroku ruby-on-rails-4 localhost

我正在尝试使用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 btw上)

我该怎么办?

7 个答案:

答案 0 :(得分:37)

错误是“角色”Myname“不存在”,

为Postgresql创建用户“Myname”

  

sudo -u postgres createuser --superuser Myname

它将解决此问题。

答案 1 :(得分:9)

对我有用的是:protected void btn_Submit_Click1(object sender, EventArgs e) { var Basket = (List<string>)Session["cart"]; // ADD THIS LINE foreach (GridViewRow row in Basket.Rows) {

createuser -P -d -e Myname

如果在OSX上安装带有自制程序的Postgresql,则没有默认的-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. 用户,如果没有先设置用户,您将无法直接使用postgres

答案 2 :(得分:0)

您应为username

创建passwordPostgresql

尝试使用psql

中的密码创建用户
CREATE USER Myname WITH PASSWORD 'your_password';

您应该将这些内容添加到database.yml作为

username: Myname
password: your_password

答案 3 :(得分:0)

@ user3408293

  1. 安装后为postgresql创建用户

    sudo -u postgres createuser --superuser $ USER

    sudo -u postgres createuser pgs_root

  2. 设置postgresql用户的用户密码

    sudo -u postgres psql postgres

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

  3. N.B您还应该在database.yml文件中的不同环境中添加用户名和密码。

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

答案 4 :(得分:0)

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

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

创建名为postgres的用户并为其提供密码。你会得到很好的提示。

然后,当您想要create databases时,只需右键单击您的连接并选择“新建数据库”。这些数据库的名称应与database.yml

中的内容相对应

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

这些步骤对我有用。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

使用此命令来使用您的Postgres用户:

sudo su-postgres

现在使用此命令创建用户:

createuser -s -r'用户名'

现在退出

错误已解决。