[postgresql] psql:致命的:データベース "<user>"は存在しません



Answers

デフォルトでは、postgresはユーザと同じ名前のデータベースに接続しようとします。 このデフォルトの動作を防ぐには、userとdatabaseを指定します。

psql -U Username DatabaseName 
Question

私はMac用のPostgreSqlアプリを使用しています( http://postgresapp.com/ )。 私は過去に他のマシンで使っていましたが、私のMacBookにインストールするときにいくつか問題があります。 私はアプリケーションをインストールして走った:

psql -h localhost

それは返す:

psql: FATAL:  database "<user>" does not exist

それは私が見つけるしようとしているデータベースを作成するコンソールを実行することはできないようだ。 私はちょうど実行すると同じことが起こります:

psql 

またはアプリケーションドロップダウンメニューからpsqlを起動した場合:

機械の統計情報:

  • OSX 10.8.4

  • psql(PostgreSQL)9.2.4

どんな助けもありがとうございます。

私はまた、homebrew経由でPostgreSQLをインストールしようとしましたが、私は同じ問題を抱えています。 また、次のようなアプリケーションのドキュメントページも読んでいます。

Postgres.appが最初に起動すると、$ USERデータベースが作成されます。これは、指定されていない場合のpsqlのデフォルトデータベースです。 デフォルトユーザーは$ USERで、パスワードはありません。

だから、アプリケーションが$ USERを作成していないように思えるかもしれませんが、私はインストール済みの>アンインストール済みのものを数回再インストールしたので、自分のマシンで何かをする必要があります。

私は答えを見つけましたが、私はこのスレッドで答えたユーザーとしてどのように動作するのか正確にはわかりません - > PostgresqlをMacで実行する:データベース "postgres"は存在しませんでした。 私はpsqlを開くために次のコマンドを使いました:

psql -d template1

私は誰かがこれがなぜ機能するのかについての説明を提供するまで、これを未回答のままにしておきます。




私はpostgresqlをMacで開こうとすると同じエラーに直面した

psql: FATAL:  database "user" does not exist

私はそれを解決するためにこの簡単なコマンドを見つけました:

方法1

$ createdb --owner=postgres --encoding=utf8 user

タイプ

 psql

方法2:

psql -d postgres



同じ問題があった場合、単純なpsql -d postgresがそれを行いました(端末にコマンドを入力してください)




homebrew経由でpostgresqlをインストールするときにこの問題が発生しました。

デフォルトの "postgres"スーパーユーザを作成しなければならなかった:

createuser - 対話的なpostgresは、スーパーユーザーのためにyと答える

createuser - 対話的なユーザは、スーパーユーザのためにyを答えます。




  1. デフォルトユーザーとしてログイン: sudo -i -u postgres
  2. 新しいユーザーを作成する: createuser --interactive
  3. 役割名の入力を求められたら、linux usernameと入力し、スーパーユーザーの質問に対してYesを選択します。
  4. まだpostgresユーザーとしてログインして、データベースを作成します: createdb <username_from_step_3>
  5. コマンドプロンプトで次のように入力して、 psqlを入力してエラーを確認してください。
  6. 出力にはpsql (xxx) Type "help" for help.表示さpsql (xxx) Type "help" for help.



私はまだhomebrewを使ってpostgresqlをインストールした後に上記の問題を抱えていました - 私は/ usr / local / binを/ usr / binの前に自分のパスに入れて解決しました




この質問は検索結果の中で最初のものなので、重複するタイトルを持たないために、私は別の問題を別の方法で解決します。

データベースを指定せずにpsqlクエリファイルを実行すると、同じエラーメッセージが表示されることがあります。 postgresqlにはuse文がないので、コマンドラインでデータベースを指定する必要があります。

psql -d db_name -f query_file.sql



Capistranoで Railsプロジェクトをデプロイするときにこのエラーが発生する場合は、リモートサーバーにデータベースを作成することができます。

あなたのUbuntuにログインし、以下を実行してください:

sudo -u postgres psql

プロンプトが表示されたら、あなたのpostgresユーザーパスワードを入力してください。 次に、次のように入力してデータベースを作成します。

CREATE DATABASE dbname_production;

名前は、本番サーバーのshared/config/database.ymlで指定した名前でなければなりません。

\q入力して終了する






Related