Postgresql не слушает порт 5432 ubuntu
Я пытаюсь подключиться со своим клиентом (Macbook Pro) к базе данных Postgres, расположенной в другом PC в той же сети (Ubuntu) Я могу видеть базу данных с хоста с pgAdmin, подключаясь к localhost, но не могу видеть с клиента.
Я разрешил все соединения в pg_hba.conf и postgresql.conf
Я пытаюсь подключиться от клиента через pgAdmin к серверу IP, где хранится база данных (192.168.1.34) и порт 5432
и я получаю эту ошибку что я делаю не так?
Я что-то упускаю
Прочитав предложения, я могу сказать: На машине ubuntu (домашний тестовый сервер) У меня нет брандмауэра. Постгрес работает.
Я попытался с консоли ubuntu получить доступ к базе данных: psql -h 127.0.0.1 mydatabase postgres и может подключаться (что означает, что сервер работает и имя пользователя в порядке) Но если я попытаюсь получить доступ к той же базе данных, с той же машины, меняя localhost на IP, я не смогу подключиться. Не должно ли быть psql -h 127.0.0.1 mydatabase postgres таким же, как psql -h 192.168.1.34 mydatabase postgres , когда я подключаюсь с сервера?
Может быть, находится в петле, как предположил Ален?
4 ответа
Я пробовал открывать порты в IPTables году, Установите адрес прослушивания на * Добавлено хозяин все 23.81.27.0/24 доверять и даже хозяин все 0.0.0.0/0 доверять YouGetSignal показывает, что порт закрыт, и я не могу подключиться к своему DB через PgAdmin. Я получаю не удалось подключиться к.
поэтому я искал это около 2 недель и не могу найти никакого законного ответа. У меня есть два проекта, один-сервер, а другой-клиент. Мне удалось создать только консольное клиентское приложение, которое отправляет данные только ONCE на сервер, а затем завершает работу. Ничего больше. Итак , как я.
Он не подключается, поэтому, скорее всего, он не прослушивает правильный интерфейс или заблокирован брандмауэром.
Работает ли postgres?
Postgres прослушивает tcp/5432 на вашем LAN IP или 0.0.0.0 (все интерфейсы)?
Он может прослушиваться только на 127.0.0.1 (loopback), что означает, что он не может быть доступен с Mac.
Если он не слушает или находится в цикле обратной связи, проверьте postgresql.conf на наличие адресов прослушивания:
Есть ли брандмауэр, работающий на коробке Ubuntu?
Убедитесь, что как минимум разрешены входящие подключения к tcp/5432 с IP компьютера Mac.
GUFW упрощает настройку, но это можно сделать и с помощью iptables.
Дополнительная справка по настройке Ubuntu:
Вероятно, вы настроили следующие два файла
Если это не так, добавьте правило в свои iptables:
0/0: Если вы хотите, чтобы кто-нибудь получил к нему доступ.
Вы можете изменить его на определенный IP - адрес или диапазон IP-адресов.
Вы разрешили postgresql принимать запросы из внешней сети. Для этого вам нужно изменить два файла , расположенных по адресу /etc/postgresql//main , Первый из них pg_hba.conf , открыть и
изменить host all all ::1/128 md5 на host all all 0.0.0.0/0 md5
Второй- postgresql.conf , открытый и
изменить listen_address = 'localhost' на listen_address = '*'
Теперь перезагрузите сервер postgre.
В ubuntu 17.04 порт по умолчанию 5433 проверьте файл postgresql.conf в пути /etc/postgresql/9.6/main
Похожие вопросы:
Я только недавно установил PostgreSQL на наш сервер через SSH. Установка прошла успешно, пока я не попытался подключиться к ней с помощью pgAdmin на моей машине Windows. Я получил такую ошибку: не.
Я пробовал открывать порты в IPTables году, Установите адрес прослушивания на * Добавлено хозяин все 23.81.27.0/24 доверять и даже хозяин все 0.0.0.0/0 доверять YouGetSignal показывает, что порт.
поэтому я искал это около 2 недель и не могу найти никакого законного ответа. У меня есть два проекта, один-сервер, а другой-клиент. Мне удалось создать только консольное клиентское приложение.
Я пишу приложение, которое передает данные, которые клиенты могут затем слушать и получать. Однако я столкнулся с проблемой закрытия сокета, когда клиент больше не слушает. Что я делаю, так это.
После того как я потерял все данные на своем компьютере (пришлось все стереть в Apple store), я установил postgres на свой Mac, используя Homebrew с командой brew install postgres . Затем я запустил.
Когда я пытаюсь подключить сервер для создания базы данных. Я получаю эту ошибку. Couldn't create database for
У меня есть машина Debian 9 с установленным сервером PostgreSQL (PSQL) 9.6. Этот сервер PSQL не принимает никаких подключений от других машин (только от самого себя). Я делал все возможное, чтобы.
у меня установлен PostgreSQL 9.3 на сервере под управлением Ubuntu Server 14.04.
если я ssh на сервер через терминал, я могу подключиться к psql. Но когда я пытаюсь настроить pgAdmin III для удаленного подключения, я получаю:
сервер не слушает сервер не принимает соединения: отчеты библиотеки соединений не удалось подключиться к серверу: подключение отказано сервер работает на хосте "172.24.3.147" и принимает ПРОТОКОЛ TCP/ИС соединения на порт 5432?
когда я запускаю на сервере service postgresql status это дает мне:
поэтому, конечно, я упускаю что-то важное.
при работе netstat -na на сервере я получаю (соответствующую часть, я думаю):
вы должны отредактировать postgresql.conf файл и изменить строку с 'listen_addresses'.
этот файл вы можете найти в
вам, вероятно, нужно либо открыть порт для доступа к нему в вашей локальной сети (или за ее пределами), либо привязать сетевой адрес к порту (сделать PostgreSQL слушать на вашей локальной сети, а не только на localhost)
была такая же проблема с psql через подключение командной строки и pgAdmin не подключается к RDS с AWS. У меня был установлен мой RDS для общедоступного доступа. Я убедился, что мои ACL и группы безопасности были широко открыты и все еще проблема, поэтому я сделал следующее: sudo find . -name *.conf тогда sudo nano ./data/pg_hba.conf затем добавлен в начало директив в pg_hba.файл conf host all all 0.0.0.0/0 md5 и pgAdmin автоматически зарегистрировал меня.
Это также работало в pg_hba.файл conf host all all md5 без какого-либо IP-адреса, и это также работало с моим IP адрес host all all <myip>/32 md5
в качестве примечания, мой RDS был в моем VPC по умолчанию. У меня был идентичный экземпляр RDS в моем нестандартном VPC с идентичными настройками группы безопасности, ACL и группы безопасности для моего VPC по умолчанию, и я не мог заставить его работать. Не знаю почему, но это на другой день.
У меня PostgreSQL 9.3 установлен на сервере под управлением Ubuntu Server 14.04.
Если я подключусь к серверу через терминал, я смогу подключиться к psql. Но когда я пытаюсь настроить pgAdmin III для удаленного подключения, я получаю:
Сервер не слушает Сервер не принимает соединения: в отчетах библиотеки соединений не удалось соединиться с сервером: Соединение отклонено. Работает ли сервер на хосте «172.24.3.147» и принимает соединения TCP / IP на порту 5432?
Когда я запускаю на сервере service postgresql status , он дает мне:
Так что, конечно, я упускаю кое-что важное.
При запуске netstat -na на сервере я получаю (полагаю, релевантная часть):
Вам необходимо отредактировать файл postgresql.conf и изменить строку на "listen_addresses".
Этот файл вы можете найти в каталоге /etc/postgresql/9.3/main .
В конфигурации Ubuntu по умолчанию разрешен только интерфейс localhost (или 127.0.0.1), которого достаточно для использования, когда каждый клиент PostgreSQL работает на том же компьютере, что и сервер PostgreSQL. Если вы хотите подключить сервер PostgreSQL с других компьютеров, вы должны изменить эту строку конфигурации следующим образом:
Затем вам также нужно отредактировать файл pg_hba.conf . В этом файле вы установили, с каких компьютеров вы можете подключиться к этому серверу и какой метод аутентификации вы можете использовать. Обычно вам понадобится аналогичная строка:
Пожалуйста, прочтите комментарии в этом файле .
После редактирования postgresql.conf и pg_hba.conf вам необходимо перезапустить сервер postgresql.
РЕДАКТИРОВАТЬ 2: выделенные файлы конфигурации.
Была такая же проблема с psql через подключение к командной строке и pgAdmin, не подключающийся к RDS с AWS. У меня был установлен RDS для публичного доступа. Я убедился, что мои ACL и группы безопасности широко открыты и все еще проблема, поэтому я сделал следующее: sudo find . -name *.conf затем sudo nano ./data/pg_hba.conf затем добавлен в начало директив в файле pg_hba.conf host all all 0.0.0.0/0 md5 и pgAdmin автоматически вошел в меня.
Это также работало в файле pg_hba.conf host all all md5 без IP-адреса, и это также работало с моим IP-адресом host all all <myip>/32 md5
Кстати, мой RDS был в моем VPC по умолчанию. У меня был идентичный экземпляр RDS в моем VPC не по умолчанию с идентичными настройками группы безопасности, ACL и группы безопасности для моего VPC по умолчанию, и я не мог заставить его работать. Не знаю почему, но это в другой день.
У меня была такая же проблема после обновления системы MacOS. Решил, обновив postgres с помощью brew. Подробности: похоже, что система пыталась получить доступ к Postgres 11, используя старые настройки Postgres 10. Я уверен, что это была моя ошибка где-то в прошлом, но, к счастью, все уладилось с обновлением выше.
Не забудьте также проверить настройки брандмауэра. после проверки и двойной проверки моих файлов pg_hba.conf и postgres.conf я наконец обнаружил, что мой брандмауэр переопределяет все и, следовательно, блокирует соединения
Вероятно, вам нужно либо открыть порт для доступа к нему в вашей локальной сети (или за ее пределами), либо привязать сетевой адрес к порту (заставить PostgreSQL слушать в вашей локальной сети, а не только на локальном хосте)
Я установил стопку Bitnami Django, которая включала PostgreSQL 8.4.
Когда я работаю psql -U postgres Я получаю следующую ошибку:
PG определенно работает и pg_hba.conf файл похож на это:
"Доказательство", что pg работает:
22 ответа
Можно использовать psql -U postgres -h localhost вынудить соединение произойти по TCP вместо сокетов домена UNIX; Ваш netstat вывод показывает, что сервер PostgreSQL слушает на порте localhost 5432.
Можно узнать, какой локальный сокет UNIX используется сервером PostgrSQL при помощи другого invocavtion netstat:
Во всяком случае интерфейсы, в которых сервер PostgreSQL слушает, настроены в postgresql.conf .
Я предположил бы, что сервер на самом деле слушает на сокете /tmp/.s.PGSQL.5432 вместо /var/run/postgresql/.s.PGSQL.5432 то, что Ваш клиент пытается соединиться с. Это - типичная проблема при использовании скомпилированных в руку или сторонних пакетов PostgreSQL на Debian или Ubuntu, потому что исходное значение по умолчанию для доменного Unix каталога сокета /tmp но Debian, упаковывающий, изменяет его на /var/run/postgresql .
Возможные обходные решения:
- Используйте клиенты, предоставленные Вашим сторонним пакетом (вызов /opt/djangostack-1.3-0/postgresql/bin/psql ). Возможно удалите предоставленные Ubuntu пакеты в целом (могло бы быть трудным из-за других обратных зависимостей).
- Исправьте каталог сокета стороннего пакета, чтобы быть совместимыми с Debian/Ubuntu.
- Использовать -H localhost соединяться через TCP/IP вместо этого.
- Использовать -h /tmp или эквивалентный PGHOST установка для указания на правильный каталог.
- Не используйте сторонние пакеты.
Я должен был скомпилировать PostgreSQL 8.1 на Debian, Сжимают, потому что я использую Открытый Проект, который основан на OpenACS и не будет работать на более поздних версиях PostgreSQL.
Конфигурация компиляции по умолчанию помещает unix_socket в /tmp , но Открытый Проект, который полагается на PostgreSQL, не работал бы, потому что он ищет unix_socket в /var/run/postgresql .
Существует установка в postgresql.conf установить местоположение сокета. Моя проблема состояла в том, что любой я мог установить для /tmp и psql обработанный, но не открытый проект, или я мог установить его для /var/run/postgresql и psql не работал бы, но открытый проект сделал.
Одно разрешение к проблеме состоит в том, чтобы установить сокет для /var/run/postgresql и затем выполненный psql , на основе предложения Peter, как:
Это выполняет локально использующие локальные полномочия. Единственный недостаток состоит в том, что это больше вводит, чем просто "psql".
В моем случае, вместо:
и явно установили unix_socket на /var/run/postgresql/.s.PGSQL.5432 в postgresql.conf .
Просто создайте softlink как это:
Эта проблема прибывает из установки postgres пакет без номера версии. Хотя postgres будет установлен и это будет правильная версия, сценарий для установки кластера не будет работать правильно; это - упаковочная проблема.
Если Вы довольны postgres существует скрипт, который можно запустить, чтобы создать этот кластер и добраться postgres выполнение. Однако существует более легкий путь.
Сначала произведите чистку старой установки пост-ГРЭС. Проблема в настоящее время находится с 9,1, таким образом, я предположу, что это - то, что Вы установили
Теперь просто переустановите
Отметьте имя пакета с номером версии. HTH.
При наличии той же проблемы я попробовал что-то другое:
При запуске postgresql демона вручную я добрался:
Таким образом, то, что я сделал, должно было установить нижний предел для shared_buffers и max_connections в postgresql.conf и restart сервис.
Это решило проблему!
Вот полный журнал ошибок:
Возможно это, возможно, произошло, потому что Вы изменили полномочия /var/lib/postgresql/9.3/main папка.
Попытайтесь изменить его на 700 использований команды ниже:
Это работает на меня:
Включите или добавьте:
Перезапустите механизм базы данных:
Кроме того, можно проверить файл pg_hba.conf
И добавьте свой сетевой адрес или адрес узла:
У меня была та же проблема (на (коварной) Ubuntu 15.10). sudo find / -name 'pg_hba.conf' -print или sudo find / -name 'postgresql.conf' -print поднятый пустой. Перед этим казалось, что были установлены несколько экземпляров postgresql.
Вы могли бы иметь подобный, когда Вы видите, как установлено, или список проблем зависимости
В этом случае Вы должны sudo apt-get autoremove каждый пакет 1 на 1.
Затем после этого к букве и Вы будете в порядке. Особенно когда дело доходит до ключевого импорта и добавления к источнику перечисляют СНАЧАЛА
Не используя коварный, замена wily с Вашим выпуском, т.е. с выводом lsb_release -cs
И затем необходимо быть в порядке и смочь соединить и создать пользователей.
У меня была та же самая проблема, которую описал Peter Eisentraut. Используя netstat -nlp | grep 5432 команда, я видел, что сервер слушал на сокете /tmp/.s.PGSQL.5432 .
Для фиксации этого просто отредактируйте Ваш postgresql.conf файл и изменение следующие строки:
Теперь выполненный service postgresql-9.4 restart (Замените 9-4 своей версией), и удаленные соединения должны работать теперь.
Теперь для разрешения локальных соединений просто создайте символьную ссылку на /var/run/postgresql каталог.
Не забывайте удостоверяться Ваш pg_hba.conf правильно настроен также.
Решение:
и это. (9.3 моя текущая версия PostgreSQL. Запишите свою версию!)
Найдите свой файл:
В моем случае все, что я должен был сделать, было этим:
Это работало просто великолепно. Надежда это помогает. Аплодисменты :).
В моем случае это было вызвано опечаткой, которую я сделал при редактировании /etc/postgresql/9.5/main/pg_hba.conf
Но MD5 должен был быть нижний регистр md5 :
Мне не удалось решить эту проблему с моей пост-ГРЭС 9,5 серверов. После того, как 3 дня нулевого прогресса, пробуя каждую перестановку закрепляют на этом и других сайтах, я решил переустановить сервер и потерять ценность 5 дней работы. Но, я действительно копировал проблему о новом экземпляре. Это могло бы обеспечить некоторый взгляд на то, как зафиксировать его, прежде чем Вы проявите катастрофический подход, который я сделал.
Во-первых, отключите все настройки входа в postgresql.conf. Это - раздел:
Прокомментируйте все в том разделе. Затем перезапустите сервис.
При перезапуске использовать /etc/init.d/postgresql start или restart Я нашел полезным быть в режиме суперпользователя при перезапуске. У меня было X-окно, открытое только для той операции. Можно установить тот режим суперпользователя с sudo -i .
Проверьте, что сервер может быть достигнут с этой простой командой: psql -l -U postgres
Если это не фиксирует его, то рассмотрите это:
Я изменял владение на многих папках при попытке найти решение. Я знал, что буду, вероятно, пытаться вернуться те владения папки и chmod s в течение еще 2 дней. Если Вы уже смешали с теми владениями папки и не хотите полностью производить чистку своего сервера, то начните отслеживать настройки для всех затронутых папок для возвращения их исходному состоянию. Вы могли бы хотеть попытаться сделать параллельную установку в другой системе и систематически проверять владение и настройки всех папок. Утомительный, но Вы можете получать доступ к своим данным.
Читайте также: