it-swarm-ja.com

Linux上のPostgreSQLでは、pg_hba.confとpostgresql.confを編集してPostgresを再起動すると、再起動時にクラスターがクラッシュします(「ダウン」します)

Ubuntu 18.10ラップトップにPostgresSQLデータベースがあり、Windows 10PostgreSQLを使用してデスクトップ上のラップトップデータベースにアクセスしたいと考えています。MicrosoftのPowerBIの使用方法を学習しており、PowerBIはWindowsでのみ使用できるためです。

したがって、postgresql.confファイルを次のように編集しました。

listen_addresses = '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」でログインしようとすると次のようになります。

[email protected]_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を介して家の近くにある他のコンピューター(および家のみ)からの接続を許可できるようにするにはどうすればよいですか?

1
Humble-Data-22

Postgresインスタンスが再起動しない場合は、常にpg_lsclusters/var/log/postgresql/postgresql-11-main.log)で示されるログファイルを最初に確認する必要があります。サーバーが再起動するとすぐに終了する理由を示すエラーメッセージが表示されます。

上記の変更に基づくと、listen_addressesで指定したアドレスの1つをリッスンできない可能性があります。これらのアドレスは、接続が予想されるデバイスのリモートアドレスではなく、サーバーにインストールされているネットワークインターフェイスに対応している必要があります。サーバー上のこれらのインターフェースは、ip a listコマンドでリストできます。

送信元/宛先に関しては、これはpg_hba.confの反対であり、接続が許可されている(さらに一般的にはlocalhostを許可する)リモートアドレス(サーバーのPOVからリモート)を一覧表示できます。ローカル接続)。

0
Daniel Vérité