1

PostgreSQL で CentOS を実行している別のデータベース サーバーに接続する Asp.net に Web アプリケーションがあります。この設定はうまくいきます。

データベース サーバーのパフォーマンスを向上させるために、CentOS サーバーでデータベース接続をプールするために PgPool-II をインストールして構成しようとしています。

構成後、CentOS コマンド ラインから pgpool で構成されたポートを使用して PostgreSQL に接続できるので、pgpool が稼働していると仮定します。

新しい pgpool ポートを使用して Web アプリケーションからデータベース サーバーに接続しようとすると、イベント ログに次の NpgdslException が記録されます。

「[ip-address of db-server]」への接続を確立できませんでした

いくつかの構成ファイル:

pgpool.conf:

listen_address = '*'
port = 6432
pcp_port = 9898

enable_pool_hba = true

socket_dir = '/tmp'
pcp_socket_dir = '/tmp'

backend_hostname = ''
backend_port = 5432

num_init_children = 50
max_pool = 4
connection_life_time = 120
client_idle_limit = 0

debug_level = 0

pool_hba.conf:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# Network access
host    all             all     192.168.0.0/24          md5

/etc/sysconfig/iptables で構成された CentOS ファイアウォールですべてのポートを開いています。 したがって、Web アプリケーションでポート 5432 に接続している場合はすべて問題ありませんが、ポートを 6432 (pgpool のポート) に変更すると、前述の例外が発生します。

誰でも私を助けることができますか?

4

1 に答える 1

0

最初に行うことは、pgpool が正しいポートで実行されていることを確認することです。これは、fuser を使用して簡単に行うことができます。

fuser -n tcp 6432

何も返されない場合は、ポートで何もリッスンしていません。その場合、pgpool が実行されていることを確認します。

ps -A | grep pgpool

これが grep のみを表示する場合、pgpool は開始されていません。起動方法については、rpm 情報を参照してください。これにはchkconfigsystem

于 2013-05-25T03:27:15.330 に答える