localhost
でPostgreSQLに接続しようとしています コンピューターで実行されているスクリプトを使用していますが、PostgreSQLサーバーは実行されていません。
これを機能させるには、リモートサーバーにSSHで接続し、そこでPythonスクリプトを実行する必要があります。ここで、PostgreSQLサーバーはPythonスクリプトに対して「ローカル」です。
(そのため、psql
を実行します 動作します-リモートサーバーで実行しているため 、ここでPostgreSQLはpsql
に対して「ローカル」です 。
または、次のこともできます。
-
SSHトンネルを使用してPostgreSQLポートを転送 ローカルコンピュータからリモートコンピュータへ。または
-
サーバーでリモート接続を有効にした後、ホスト名またはIPアドレスを使用してTCP/IP経由でリモートPostgreSQLサーバーに直接接続します。
localhost
ではなく、サーバーのIPアドレスまたはホスト名を接続文字列に入力するだけであることに注意してください。 機能しません リモート接続を受け入れるようにサーバーを構成しない限り 。 listen_addresses
を設定する必要があります 非ローカル接続をリッスンするには、必要なファイアウォールルールを追加し、pg_hba.conf
を設定します リモートマシンからの接続を許可し、できればSSLを設定します。これはすべて、PostgreSQLユーザーマニュアルのクライアント認証の章で説明されています。
SSHトンネルの方が簡単で理解しやすいでしょう。