web-dev-qa-db-ja.com

PG :: ConnectionBad致命的:ロール「Myname」が存在しません

Herokuにデプロイできるように、PostgreSQLを使用しようとしています。しかし、なぜ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にいます)

私に何ができる?

22
user3408293

私はPG管理ダッシュボードに移動し、そこでdb/userを作成する必要がありました。間違いなく、それはオンラインのチュートリアルが言ったこととは異なるサブディレクトリにありました(おそらく更新されたディレクトリの最終更新)。幸いにも、それを見つけてテーブル/ユーザーを作成し、database.ymlファイルを更新すると、アプリが動作するようになりました。

0
user3408293

エラーは「ロール "Myname"は存在しません」、

postgresqlのユーザー「Myname」を作成します

Sudo -u postgres createuser --superuser Myname

この問題を解決します。

44
errakeshpd

私のために働いたのは: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を直接使用することはできません。

9
Meekohi

Windowsでは、少し簡単だと思います。

システムにpostgresqlとPGAdminをインストールします。 this を参照

Postgresという名前のユーザーを作成し、パスワードを与えます。これを行うように促されます。

次に、 データベースを作成 したい場合は、接続を右クリックして[新しいデータベース]を選択します。これらのデータベースの名前は、database.ymlに書かれているものに対応している必要があります

rake db:migrate Rails_ENV=development(開発|テスト|本番)を実行します。

これらの手順は私にとってうまくいきました。

2
manu29.d

username用にpasswordPostgresqlを作成する必要があります

psqlにパスワードを持つユーザーを作成してみてください

CREATE USER Myname WITH PASSWORD 'your_password';

そしてそれらをあなたのdatabase.ymlに追加する必要があります

username: Myname
password: your_password
1
Pavan

@ 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

N.Bまた、database.ymlファイルのさまざまな環境にユーザー名とパスワードを追加する必要があります。

このリンクを参照することもできます: Rails:pg gemのインストールエラー

0
Addicted