質問: 'localhost,my_public_ip_address,my_local_ip_address' したがって、pg_hba.confファイルを次のように編集しました(これらの行をファイルの一番下に追加します)。host all all my_local_ip_address md5 host all all my_public_ip_address md5 この後、私は実行します:sudo /etc/init.d/postgresql restart sudo pg_lsclusters postgresqlサービスは、問題を示唆する信じられないほど高速に再起動し、lsclustersは次のように報告します。ver cluster port status owner data directory log file 11 main 5432 down postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log 何らかの理由で、pg_hba.confとpostgresql.confを編集するとクラスターがクラッシュし、「psqlpostgres」または「psql-h localhost -d my_database-umy_user_name」でログインしようとすると次のようになります。me@me-computer_name:~$ psql postgres 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"? 元の.confバックアップを元に戻した変更で復元し、postgresql 11を再起動するとすぐに、すべてが完全に正常に機能します。 2つの.confファイルを編集するとクライアントがクラッシュするのはなぜですか?また、クライアントがパブリック/ローカルipを介して家の近くにある他のコンピューター(および家のみ)からの接続を許可できるようにするにはどうすればよいですか?
回答: postgresインスタンスが再起動しない場合は、常にpg_lsclusters(/var/log/postgresql/postgresql-11-main.log)で示されるログファイルを最初に確認する必要があります。サーバーが再起動するとすぐに終了する理由を示すエラーメッセージが表示されます。上記の変更に基づくと、listen_addressesで指定したアドレスの1つをリッスンできない可能性があります。これらのアドレスは、接続が予想されるデバイスのリモートアドレスではなく、サーバーにインストールされているネットワークインターフェイスに対応している必要があります。サーバー上のこれらのインターフェースは、ip a listコマンドでリストできます。送信元/宛先に関しては、これはpg_hba.confの反対であり、接続が許可されている(さらに一般的にはlocalhostを許可する)リモートアドレス(サーバーのpovからリモート)を一覧表示できます。ローカル接続)。