Как подключить базу данных postgresql, используя IP-адрес в python

Я хочу подключить мою базу данных posgresql, используя удаленный ip адрес, но получаю ошибку.

psycopg2.OperationalError: connection to server at "178.56.25.266", port 5432 failed: Connection refused (0x0000274D/10061)
    Is the server running on that host and accepting TCP/IP connections?

Здесь я также делюсь своим кодом на питоне.

import psycopg2
conn = psycopg2.connect(database="test", user='postgres', password='', host='178.56.25.266')
cursor = conn.cursor()
cursor.execute("select version()")
data = cursor.fetchone()
print("Connection established to: ",data)
conn.close()

Пожалуйста, помогите мне решить эту проблему.

Может быть несколько причин, по которым вы получаете ошибку отказа в подключении при попытке подключиться к базе данных PostgreSQL, используя удаленный IP-адрес. Вот несколько возможных решений этой проблемы:

  1. Убедитесь, что сервер PostgreSQL запущен и принимает соединения на указанном вами хосте и порту. Вы можете проверить это, выполнив следующую команду на сервере:
netstat -an | grep 5432

Это покажет, прослушивает ли сервер PostgreSQL порт 5432, который является портом по умолчанию для PostgreSQL. Если он не прослушивает этот порт, вам необходимо запустить сервер или изменить используемый порт.

  1. Если сервер работает и прослушивает правильный порт, убедитесь, что ваш брандмауэр не блокирует соединения с сервером PostgreSQL. Вы можете проверить настройки брандмауэра и добавить исключение для порта 5432, чтобы разрешить подключения.

  2. Если проблема не в брандмауэре, возможно, сервер принимает соединения только с localhost (127.0.0.1), а не с внешних IP-адресов. Вы можете проверить конфигурационный файл PostgreSQL (обычно он называется postgresql.conf) и найти параметр listen_addresses. По умолчанию он установлен на localhost, но вы можете изменить его на *, чтобы разрешить соединения с любого IP-адреса.

    .
  3. Если ни одно из вышеперечисленных решений не работает, возможно, подключению мешает сетевая проблема. Вы можете попробовать использовать команду ping, чтобы проверить, можете ли вы достичь сервера, и использовать команду traceroute, чтобы проверить, нет ли сетевых проблем на пути к серверу.

Сервер postgres блокирует IP-адрес запроса, поэтому сначала необходимо внести его в белый список. Если сервер postgres находится в azure, вы должны иметь возможность добавить сетевое правило с IP-адресом, который вы хотите внести в белый список, порт 5432.

Вернуться на верх