2016-09-03 12 views
0

LinuxシステムでentripeseDBを使用してPostgres 9.5バージョンをインストールしました。エラーが発生しました:サーバーへの接続エラー:致命的:ロール "postgres"が存在しません

そして、pgadmin3を使ってPostgresに接続し、データベースとテーブルを作成しました。 私はlaravel phpアプリケーションからデータを取得できました。

私のシステムは予期せずshudownしています。

再起動時に私はPostgresサーバーに接続できません。

エラーは次のとおりです。サーバーへの接続

エラー:FATAL:役割 "Postgresが" 存在しません。

これにはどのような理由が考えられますか?そして私はこれをどのように解決できますか?

+0

非常に奇妙なことにスーパーユーザーアカウントの名前を変更しましたか?あなたが追加した別のスーパーユーザーアカウントがありますか? –

+0

私は変わりませんでした。インストール時にpostgressのみスーパーユーザーが作成され、パスワードが追加されます –

答えて

0

スーパーユーザーを削除するために何もせずにこれが起こったのは奇妙です。私はあなたが得ているエラーが正しいかのようにこれに答えるつもりですが、何か他のことが起こっていると思われます。

エラーメッセージが表示される場合は、メインのスーパーユーザー(postgres)はあなたのデータベースに存在しません。あなたがこれを唯一のスーパーユーザと言いましたので、それを元に戻すにはシングルユーザモードでpostgresqlサーバを起動する必要があります。

私はpostgresql 9.5でUbuntu Server 16.04を実行しています。ディレクトリは(私にとってそれはまたpostgresと呼ばれる)は、データベースを所有するOSユーザーにあなたのシステム


  1. サーバーを停止し

    sudo service postgres stop

  2. ログに異なる場合があります。私は以下を使用します:

    sudo -u postgres bash 
    
  3. PostgreSQLサーバをシングルユーザモードで実行します。バックエンド・プロンプトから

    /usr/lib/postgresql/9.5/bin/postgres --single -D /etc/postgresql/9.5/main/ 
    
    PostgreSQL stand-alone backend 9.5.4 
    backend> 
    
  4. :クラスタおよびデータベース名のconfigディレクトリを指定する必要があります。これは、あなたのバックエンドプロンプトを与える必要があります(私のクラスタは、メイン9.5 /で、デシベルもmainと呼ばれています) superuser privilageでpostgresと呼ばれる新しいユーザーを追加します。

    backend> create user postgres superuser; 
    backend> 
    
  5. 終了し、シングルユーザーモード。私はctrl-dを押します。
  6. あなた自身でログインしてください。私にとってそれはただです:PostgreSQLはとして実行されているユーザーを見つけるために

    sudo service postgres start 
    

exit 
  • は、サーバを起動し

    。サーバーがまだ実行中であることを確認してください(つまり、停止した場合はsudo service postgres start)。次に実行中のプロセスを探します:

    ps -ef | grep postgres 
    

    私にとって、これは次のようになります。私の左側の列にはpostgresと書かれています。これは、自分のデータベースクラスタを実行しているOSユーザです。

    postgres 25536  1 0 16:40 ?  00:00:01 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf 
    postgres 25539 25536 0 16:40 ?  00:00:00 postgres: checkpointer process 
    postgres 25540 25536 0 16:40 ?  00:00:00 postgres: writer process 
    postgres 25541 25536 0 16:40 ?  00:00:00 postgres: wal writer process 
    postgres 25542 25536 0 16:40 ?  00:00:00 postgres: autovacuum launcher process 
    postgres 25543 25536 0 16:40 ?  00:00:00 postgres: stats collector process 
    couling 32550 23363 0 21:35 pts/0 00:00:00 grep --color=auto postgres 
    

    は時々、このユーザーがログインするように設定されることはありませんので、お使いのOSのユーザーがpostgresと呼ばれているならば、使用してみてください:あなたは任意の有効なを必要とするデータベース名については

    sudo -u postgres bash 
    

    をあなたのDB名を覚えていない場合は、postgresまたはtemplate0を試してください。

  • +0

    はい。postgressqlの前にpostgress-xcもインストールされています。これで、postgress-xcが削除され、システムが再起動されました。今私はpgadminからのポストを接続することができます。 –

    +0

    ありがとう、実際に私はhttp://tutorialforlinux.com/2014/02/20/how-to-install-latest-postgresql-9-x-on-linux-mint-16-petra-3264bit-をフォローしてPostgresをインストールしました。 linux-easy-guide /。私のシステムに/ opt/PostgresSQl/9にインストールされたPostgresは、ph5psqlをインストールしました。 PostgresのユーザーとDBSをコマンドラインから見たい場合は、sudo su -postgressでコンソールからログインしようとしましたが、PostgresのユーザーとDbを見ることができません。どうすればいいのか教えてくれますか? –

    +0

    もう少し追加しました –

    関連する問題