web-dev-qa-db-ja.com

Postgres。ロール「root」は存在しません。 Herokuからpg:pullデータベースを試行する場合

PostgresとHerokuが初めてです。 Herokuからデータベースを取得しようとしていますが、単純なものがありません。やった:

heroku pg:pull HEROKU_POSTGRESQL_IVORY_URL localdb

そして、私はエラーを得ました:

createdb: database creation failed: ERROR:  permission denied to create database

それから私は「須藤」で同じことを試みました。そして私は得た:

createdb: could not connect to database template1: FATAL:  role "root" does not exist

だから、見つけられないいくつかの簡単なコマンドが欠けているに違いない。 Linuxでは、Postgresがインストールされ、動作しています。

14

createdbはSQLステートメントのラッパーですCREATE DATABASEそして、データベースに接続する必要があります。

デフォルトでは、すべてのPostgresコマンドラインツールは、現在のオペレーティングシステムユーザーを使用してデータベースに接続しようとします。エラーメッセージは、データベースにrootという名前のユーザーがいないことを示しているためです。したがって、createdbが接続できるようにするには、Postgresスーパーユーザーの名前を渡す必要があります。このユーザーは通常postgresという名前です。

別のオプションは、Linuxユーザーが存在する場合、Linuxユーザーをpostgresに切り替えることです。

Herokuがわからず、どのようにcreatedbを開始したかわかりませんが、ユーザー名を渡すパラメーターは-U(すべてのPostgresコマンドラインプログラム用)。だからあなたは必要だろう

 createdb -U postgres name_of_new_database
28

使用してみてください:

Sudo su-postgres

次に、createdbを使用して:

createdb name_of_db;

1
Ezrqn Kemboi