Удаленное соединение PostgreSQL с pgAdmin - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь установить удаленное соединение через PostgreSQL, запущенный на моем сервере, на основе Ubuntu 16.04. До сих пор, когда я нажимаю кнопку «Сохранить» на pgAdmin, он как бы зависает, ничего не делает. После ввода ... / manage.py runserver My_droplet_IP: 5432 я пробую веб-страницу, и она становится доступной.

Я следовал этому уроку после создания моей капли. https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-16-04

Затем я отредактировал settings.py; pg_hba.conf; файлы postgresql.conf

settings.py:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresqlpsycopg2',
'NAME': '.....',
'USER': '....',
'PASSWORD': '....',
'HOST': '127.0.0.1',
'PORT': '5432',

STATICROOT = os.path.join(BASE_DIR, 'static/') - at the end of the page

И, конечно же, изменил РАЗРЕШЕННЫЕ ХОСТЫ = ['....'] с моим ip капельки.

postgresql.conf listen_address is set to '*'

pg_hba.conf file:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Также разрешен брандмауэр и сделано исключение для 5432.

Есть идеи?

1 Ответ

0 голосов
/ 27 апреля 2018

Прежде всего проверьте, можете ли вы подключиться к базе данных через psql :

psql -h ip_address -d name_of_the_database -U username

Если вы получили сообщение об отказе в соединении, вы должны были установить что-то неправильно и проверить Что я должен проверить, если удаленное соединение с PostgreSQL не работает?

psql: could not connect to server: Connection refused Is the server running on host ip_address

Что я должен проверить, если удаленное подключение к PostgreSQL не работает?

  1. Проверьте конфигурацию аутентификации в pg_hba.conf

    Обычно находится на Linux - /etc/postgresql/version/main/pg_hba.conf. Вы должны разрешить аутентификацию для клиента для определенного IP-адреса со всех IP-адресов:

    # Database administrative login by Unix domain socket
    local     all            postgres        peer
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local     all            all             peer
    # IPv4 local connections:
    host     all             all             0.0.0.0/0               md5
    # IPv6 local connections:
    host     all             all             ::0/0                   md5
    #all ips
    host     all             all             all                     md5
    

    Подробнее о настройке pg_hba.conf вы можете найти в документации .

  2. Затем вы должны настроить прослушивание на определенный порт.

    Вы должны найти postgresql.conf. Обычно находится /etc/postgresql/9.1/main/postgresql.conf) файл и измените строку с listen_address с:

    #listen_address = ''
    

    to (не забудьте удалить #, что означает комментарий):

    listen_address = '*'
    
  3. После каждого шага вы должны перезапустить сервис Postgresql:

    sudo service postgresql restart
    
  4. После шага 2 вы должны увидеть порт 5432 (или 5433) в адресе прослушивания после команды netstat:

    netstat -ntlp
    
  5. После этого вам нужно открыть порт для PostgreSQL в брандмауэре:

    sudo ufw allow 5432
    

    Вы можете проверить настройки брандмауэра с помощью (вы должны увидеть 5432 в списке):

    sudo ufw status
    
  6. Если любой из предыдущих шагов не работает, вам следует проверить, не работает ли PostgreSQL на другом порту (обычно 5433), и повторить предыдущие шаги.

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

Если у вас возникли проблемы с поиском файлов конфигурации, вы можете проверить эту тему Где мои файлы postgres * .conf? .

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