2017-07-03 3 views
0

私はこの種のエラーを取得していpsqlでクエリを実行しようとしたとき、私は、PostgreSQLのに問題に直面してると起動しない:PostgreSQLは、Linuxの

PSQL:サーバーに接続できませんでした:いいえそのようなファイルまたはディレクトリ サーバはローカルで実行されており、Unixドメインソケット "/var/run/postgresql/.s.PGSQL.5432"上の 接続を受け入れていますか?

私は、ウェブ上で見つけた解決策は、このファイルのアクセス権を変更することです:

はsudo chmodの777の/ var /実行/ postgresqlのと、このコマンドラインにpg_ctl -DよるPostgreSQLを再起動します/私はpostgresユーザsudoのsuコマンドがをpostgresにとしてログインした後に/ var/postgresの/ -lログファイルホーム/ MYCOMPUTERは

を再起動しかし、今のところ、私はこのエラーメッセージになっています: はpsql:FATAL:役割 "Postgresは" ありません存在しない

私はウェブで検索し、これを解決する良い方法を見つけられませんでした。

誰かが私を助けてくれますか。あらかじめありがとうございます

+0

ところで、私はローカルでpostgresqlを実行しています – hakif

答えて

1

データベースサーバーを停止し、シングルユーザーモードで起動してください。

次に、どのユーザーがいるかを照会することができます。

postgres実行ファイルがシステムにインストールされている場所を特定する必要があります。 pg_config --bindirとなります。以下では/path/to/postgres/binと仮定します。

  • PostgreSQLオペレーティングシステムのユーザ(通常はpostgres)になります。

  • ストッププロンプトで

/path/to/postgres/bin/postgres --single -D /home/mycomputer/var/postgres/ template1 
  • を持つシングルユーザモードで

pg_ctl stop -D /home/mycomputer/var/postgres/ -m fast 
  • スタートのPostgreSQLとPostgreSQLサーバは、

    を入力します。
    SELECT usename, usesuper FROM pg_user 
    
  • セッションを終了し、Ctrl+Dを押してデータベースをシャットダウンします。

ここで、そのPostgreSQLクラスタ内のすべてのユーザがわかります。

データベースサーバーを起動し、そのうちの1つを使用してデータベースに接続できます。

関連する問題