psycopg2 подключение к базе данных postgresql - ошибка - PullRequest
0 голосов
/ 18 марта 2020

У меня проблема с подключением к моей postgreSQL базе данных. У меня есть databasename, password, hostname, port, и я использую это:

conn_string = "host='localhost' dbname='my_database' user='postgres' password='secret'"

Но я получил ошибку, как это:

Сервер работает на хосте "...." и принимает соединения TCP / IP через порт 5432

Не знаю, правильно ли я использовал хост, я вставляю значение имени хоста .
В чем разница между именем хоста и хостом? Кто-нибудь может мне помочь?

Ответы [ 3 ]

0 голосов
/ 18 марта 2020

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

0 голосов
/ 18 марта 2020

Разница host и hostname

Разница host и hostname действительно зависит от контекста. В контексте соединения psycopg2 и PostgreSQL host обычно означает IP-адрес сервера PostgreSQL или разрешаемое имя сервера PostgreSQL, например, имя DNS, если оно имеется. Если вы используете сервер linux, вывод команды hostname вряд ли будет работать в вашем случае.

psycopg2 connection

Строка подключения выглядит нормально. Но я предлагаю вам использовать следующий формат подключения:

import psycopg2
try:
    connection = psycopg2.connect(user = "sysadmin",
                                  password = "pynative@#29",
                                  host = "127.0.0.1",
                                  port = "5432",
                                  database = "postgres_db")
except (Exception, psycopg2.Error) as error :
    print ("Error while connecting to PostgreSQL", error)

Вы должны использовать IP-адрес в качестве значения host.

Устранение неполадок

В случае ошибка соединения, вы должны использовать другие инструменты для проверки соединения с сервером PostgreSQL, такие как psql, pgAdmin4 или DBeaver.

Вы также можете использовать инструменты telnet или netcat для проверить сетевое соединение сервера PostgreSQL, например

telnet PostgreSQL_ip_address 5432

nc -v PostgreSQL_ip_address 5432
0 голосов
/ 18 марта 2020
psycopg2.connect(dbname=dbname, user=user, password=password, host=postgres_address, port=postgres_port)

Это рабочий пример для подключения, вы должны определить раннее имя dbname, пользователя, пароль, postgres_address. Если у вас есть ошибка соединения, вы можете использовать ping для тестирования соединения и te lnet для тестирования открытого порта. Или вы можете использовать Beaver для тестового подключения к postgres серверу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...