Linux CentOS 7を実行しているラップトップでPostgreSQLデータベースを作成しました( これらの指示に従って )。
ここで、デフォルトデータベースの ホスト名アドレス とは何かを理解したいと思います。 localhost
だと思いましたが、違います。
psql -h
コマンドで使用する名前またはIPアドレスを知りたい。基本的に、このpsql -h HOSTNAME
コマンドを実行すると、psql
コマンドだけで同じ結果が得られるため、データベースに接続できます。
デフォルトデータベースのホスト名アドレスとは何ですか?
> service postgresql status
状態:
●postgresql.service-PostgreSQLデータベースサーバーロード済み:ロード済み(/usr/lib/systemd/system/postgresql.service; enabled;ベンダープリセット:無効)アクティブ:2017年3月30日14:40:30からアクティブ(実行中) EDT; 1日前1時間メインPID:2256(postgres
一方、psql -h 127.0.0.1
とpsql -h 127.0.0.1 -U davide
の両方がこのメッセージを生成します。
psql:致命的:ユーザー「davide」のID認証に失敗しました `
同じマシンから接続している場合は、localhost
を使用します
特定のコンピューターは、異なるソケット(アドレス:ポートのペア)でPostgreSQLの複数のインスタンスを実行できます。デフォルトのポートは5432です
特定のPostgreSQLサーバーは、同じインスタンスで複数のデータベースを実行できます。 postgres
データベースは常にそこにあります。 「デフォルトのデータベース」は実際にはありません。
サービスが有効になっていて実行されていますか?設定しましたかlisten_addresses
postgresql.confにあり、pg_hba.confに認証を設定しますか?
サービスは実際に実行されていますか?
Linuxのデフォルトでは、TCPではなくUNIXドメインソケットを介して接続するため、ホスト名はありません。
明示的なオプションでデフォルトを再現したい場合は、-h /var/run/postgresql
(yumからインストールした場合)または-h /tmp
(デフォルト設定を使用してソースからインストールした場合)のようになります。