Ошибка «psql: не удалось подключиться к серверу» при изменении порта - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь подключиться к серверу через другой порт стандарта, и появляются следующие ошибки:

[root@pgsql01 ~]# sudo su - postgres -c '/usr/pgsql-11/bin/psql -t -U postgres -p 5000 -c "select pg_is_in_recovery()"'
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.5000"?

[root@postgresql01 ~]# telnet pgsql01 5000
Trying 172.16.16.171...
Connected to pgsql01.
Escape character is '^]'.
Connection closed by foreign host.

И настройки авторизации кажутся правильными:

[root@pgsql01 ~]# cat /var/lib/pgsql/11/data/pg_hba.conf | grep trust | grep post
host    postgres       postgres       172.16.16.171/32        trust
host    postgres       postgres       172.16.16.172/32        trust





[root@pgsql01 ~]# netstat -putan | grep LISTEN | egrep '5432|500'
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      128476/postmaster
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      137571/haproxy
tcp        0      0 0.0.0.0:5001            0.0.0.0:*               LISTEN      137571/haproxy
tcp6       0      0 :::5432                 :::*                    LISTEN      128476/postmaster

I Я использую HAProxy для доступа к серверам:

/etc/haproxy/haproxy.cfg

listen ReadWrite
    bind *:5000
    option httpchk
    http-check expect status 206
    default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
    server pgsql01 pgsql01:5432 maxconn 100 check port 23267
    server pgsql02 pgsql02:5432 maxconn 100 check port 23267
listen ReadOnly
    bind *:5001
    option httpchk
    http-check expect status 206
    default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions
    server pgsql01 pgsql01:5432 maxconn 100 check port 23267
    server pgsql02 pgsql02:5432 maxconn 100 check port 23267


[root@pgsql01 ~]# cat /etc/services | grep pgsqlchk
pgsqlchk        23267/tcp               # pgsqlchk

[root@pgsql01 ~]# cat /etc/xinetd.d/pgsqlchk
service pgsqlchk
{
        flags           = REUSE
        socket_type     = stream
        port            = 23267
        wait            = no
        user            = nobody
        server          = /opt/pgsqlchk
        log_on_failure  += USERID
        disable         = no
        only_from       = 0.0.0.0/0
        per_source      = UNLIMITED
}

Необходимо ли разрешить указанный порт c для доступа или что может произойти? (У меня не включен брандмауэр или iptables)

спасибо!

...