[解決済み] PostgreSQLの場合。なぜ psql はサーバに接続できないのでしょうか?
質問
私が入力した
psql
と入力すると、こうなります。
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
私は
sudo netstat -nlp | grep 5432
を使って状態を見ましたが、何も表示されませんでした。
そして、私はオンラインで検索し、誰かが私に修正するように言った
pg_hba.conf
を修正するように言われましたが、私はできません。
locate
を実行することができません。そして、私はまた、このコマンドを試してみました
sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
. それは動作することはできません。
どのように解決するのですか?
このエラーは、psql ユーティリティがデータベース サーバーに接続するためのソケットを見つけることができないことを述べています。データベース サービスをバックグラウンドで実行していないか、ソケットが別の場所にあるか、またはおそらく
pg_hba.conf
を修正する必要があります。
ステップ 1: データベースが動作していることを確認する
コマンドはオペレーティング システムによって異なる場合があります。しかし、ほとんどの *ix システムでは、次のコマンドを実行すると、実行中のすべてのプロセスの中から postgres を検索します。
ps -ef | grep postgres
私のシステム、mac osxでは、これは次のように吐き出されます。
501 408 1 0 2Jul15 ?? 0:21.63 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
最後の列は、サーバーを起動するために使用されたコマンドと、そのオプションを示します。
以下を使用して、postgresサーバを起動するために利用可能なすべてのオプションを見ることができます。
man postgres
そこから、オプションの
-D
と
-r
はそれぞれ
datadir
であり
logfilename
.
ステップ2:postgresサービスが稼働している場合
使用する
find
を使って、ソケットの場所を探します。
/tmp
sudo find /tmp/ -name .s.PGSQL.5432
postgresが起動しており、ソケット接続を受け付けている場合、上記はソケットの場所を教えてくれるはずです。私のマシンでは、それは判明しました。
/tmp/.s.PGSQL.5432
次に、このファイルの場所を明示的に指定して、psqlで接続してみてください。
psql -h /tmp/ dbname
ステップ3: サービスは実行されているが、ソケットが表示されない場合
ソケットが見つからないが、サービスが実行されていることが確認できる場合、pg_hba.confファイルがローカルソケットを許可していることを確認します。
をブラウズして
datadir
を見つけると、その中に
pg_hba.conf
ファイルが見つかるはずです。
デフォルトでは、ファイルの最下部付近に以下の行があるはずです。
# "local" is for Unix domain socket connections only
local all all trust
表示されない場合は、ファイルを修正し、postgresサービスを再起動します。
関連
-
どのように定期的にLinux上でpostgresqlのデータベースをバックアップする
-
postgresqlのjsonbデータの問い合わせと変更方法
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] PostgreSQLの場合。PostgreSQLのテーブルを表示する
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] psqlでデータベースを切り替えるには?
-
[解決済み] psqlの代替出力フォーマット
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
-
[解決済み] brew サービスで動作している Postgres サーバーに接続できない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLでバッファキャッシュにデータを読み込む方法
-
Postgresqlのデータベースにおける配列の作成と変更に関する操作
-
PostgreSQL] アクティブリンクのあるデータベースを削除する方法
-
[解決済み] Ubuntu 18.04でPostgreSQLを再起動する方法
-
[解決済み] PostgreSQLで更新+結合を行うには?
-
[解決済み] PostgreSQL は設定/conf ファイルをどこに保存しますか?
-
[解決済み] Postgres の全テーブルの行数を求めるには?
-
[解決済み】PostgreSQLがインデックス付きカラムに対してシーケンシャルスキャンを実行するのはなぜですか?
-
[解決済み] PostgreSQLでタイムスタンプの差を秒単位で求める
-
[解決済み] Postgresql。条件付き一意性制約