49

以下に示すように、Postgre DB サーバーを通過するこのバッチ ファイルを実行し、2 つの異なる SQL ファイルを実行しようとしました。

set PGPASSWORD=blah
cls
@echo on
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query1.sql
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query2.sql

しかし、問題は、query1 または query2 のコマンドのいずれかで次のエラーが発生する場合があることです。

psql: server closed the connection unexpectedly 
This probably means the server terminated abnormally
before or while processing the request.

これは時々しか発生しないので、なぜそれが起こっているのか完全にはわかりません。なぜこれが当てはまるのか、この問題の解決策があるかどうかを誰かが説明できますか。ありがとう!

更新: 実際の Postgre アプリケーションでリモート サーバーを開こうとすると、同じエラーが発生することもあります。

また、エラー ポップアップからクリックした直後に、この Guru Hint も表示されます。

データベースのエンコード データベース VA-trac は、SQL_ASCII エンコードを使用してデータを格納するために作成されます。このエンコーディングは、7 ビット文字に対してのみ定義されています。8 番目のビットが設定された文字 (非 ASCII 文字 127 ~ 255) の意味は定義されていません。したがって、サーバーがデータを他のエンコーディングに変換することはできません。非 ASCII データをデータベースに格納する場合は、必要に応じて異なるクライアント エンコーディングへの自動変換を利用できるように、ロケール文字セットを表す適切なデータベース エンコーディングを使用することを強くお勧めします。非 ASCII データを SQL_ASCII データベースに格納すると、コード変換の問題が原因で、データベースに書き込まれたり、データベースから読み取られたりする奇妙な文字に遭遇することがあります。これにより、さまざまなクライアント プログラムやドライバーを使用してデータベースにアクセスする際に、頭の痛い問題が発生する可能性があります。

とにかく、サーバーはその後も開き、その時点からデータベースにアクセスできます.

4

10 に答える 10

40

情報のためにこれをここに残して、

このエラーは、PostgreSQL サーバーが別のマシン上にあり、外部インターフェイスをリッスンしていない場合にも発生する可能性があります。

この特定の問題をデバッグするには、次の手順に従います。

  • postgresql.conf を見てください。sudo vim /etc/postgresql/9.3/main/postgresql.conf
  • 次の行を追加します。listen_addresses = '*'
  • サービスを再起動しますsudo /etc/init.d/postgresql restart

(上記のコマンドはubuntu用です。他のLinuxディストリビューションまたはOSでは、これらのファイルへのパスが異なる場合があります)

注:'*'リッスン アドレスに使用すると、すべてのインターフェイスでリッスンします。そうする場合'0.0.0.0'、すべての ipv4 をリッスンし、そうする場合'::'、すべての ipv6 をリッスンします。

http://www.postgresql.org/docs/9.3/static/runtime-config-connection.html

于 2015-09-29T12:57:37.380 に答える
25

ローカルとサーバーの間でpostgre SQLのバージョンが一致していなかったため、同じバージョンのPostgreSQLをコンピューターにインストールすると問題が解決したことが原因であることが判明しました。ありがとう!

于 2013-04-12T17:46:24.900 に答える
3

これは古い投稿ですが...

このエラーコードを取得する正当な理由になる可能性があるため、誰もpg_hbaファイルについて話していないことに驚いた.

設定を忘れた人はこちらをチェックしてください: http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

于 2016-04-07T12:32:04.917 に答える
1

私の場合、pgAdmin4 を介して ssh トンネル接続を使用しようとしていましたが、その前AllowTcpForwarding noにサーバーの/etc/ssh/sshd_config. しかし、そうあるべきですAllowTcpForwarding yes

于 2021-07-13T20:32:12.753 に答える
0

最初にユーザーのパスワードを設定することで解決しました。

ターミナルで

sudo -u <username> psql

ALTER USER <username> PASSWORD 'SetPassword';
# ALTER ROLE

\q

pgAdminで

**Connection**

Host name/address: 127.0.0.1
Port: 5432
Maintenance database: postgres
username: postgres
password: XXXXXX
于 2020-11-15T03:43:34.830 に答える