У меня Postgres запущен и работает на одной из моих машин. Его pg_hba.conf
содержит следующую строку:
host all all 0.0.0.0/0 md5
И postgresql.conf
содержит следующие строки:
listen_addresses = '*'
port = 5433
Устройство в моей локальной сети имеет этот IP-адрес 192.168.234.137
. Я пытаюсь подключиться к Postgres с другой машины. Если я использую, например, Navicat, то я могу легко установить sh соединение, так что Postgres, работающий на порту 5433, достижимо. Однако, когда я пытаюсь подключиться к нему с помощью Python, я получаю сообщение об ошибке
Is the server running on host "192.168.234.137" and accepting
TCP/IP connections on port 5433?
Если я переключаюсь обратно на порт 5432 - исправлю postgresql.conf
и перезапустите Postgres - тогда мой Python скрипт начинает работать. Похоже, что Python (я пробовал psycopg2 и sqlalchemy) по какой-то причине связан с этим 5432
номером порта и не принимает другие номера портов. Что не так с этим и как я могу это исправить? Я думаю, просто изменить postgresql.conf
и перезапустить Postgres недостаточно.
PS.
Код, который я запускаю, выглядит так:
>>> connection = psycopg2.connect(user = "postgres",
... password = "postgres",
... host = "192.168.234.137",
... port = "5433",
... database = "test")
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
File "C:\Python34\lib\site-packages\psycopg2-2.6.1-py3.4-win-amd64.egg \psycopg2\__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
psycopg2.OperationalError: could not connect to server: Connection timed out (0x0000274C/10060)
Is the server running on host "192.168.234.137" and accepting
TCP/IP connections on port 5433?