Psql: сервер неожиданно закрыл соединение

Я пытаюсь запустить этот командный файл, который проходит через сервер Postgre DB и запускает два разных файла sql, как показано ниже:

set PGPASSWORD=blah
cls
@echo on
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query1.sql
"C:\Progra~1\pgAdmin III\1.16\psql" -d [db name] -h [server name] -p 5432 -U postgres -f C:\query2.sql

Но проблема в том, что иногда я получаю следующую ошибку для команды для query1 или query2:

psql: server closed the connection unexpectedly 
This probably means the server terminated abnormally
before or while processing the request.

Это случается иногда, поэтому я не совсем уверен, почему это происходит. Может кто-нибудь объяснить, почему это так, и если есть решение этой проблемы. Спасибо!

Обновление: я также получаю ту же самую ошибку ИСТОЧНИК при попытке открыть удаленный сервер в приложении Postgre: "Произошла ошибка:" сервер неожиданно закрыл соединение Это, вероятно, означает, что сервер прерывается ненормально до или во время обработки запроса ".

Я также получаю эту вещь Guru Hint сразу после того, как я выхожу из всплывающего окна ошибки:

Кодировка базы данных База данных VA-trac создана для хранения данных с использованием кодировки SQL_ASCII. Эта кодировка определяется только для 7-битных символов; значение символов с 8-м битом (не-ASCII-символы 127-255) не определено. Следовательно, сервер не может преобразовывать данные в другие кодировки. Если вы сохраняете данные, отличные от ASCII, в базе данных, вам настоятельно рекомендуется использовать надлежащую кодировку базы данных, представляющую ваш набор символов языка, чтобы при необходимости использовать автоматическое преобразование в различные кодировки клиентов. Если вы храните данные, отличные от ASCII, в базе данных SQL_ASCII, вы можете столкнуться со странными символами, написанными или считываемыми из базы данных, вызванными проблемами преобразования кода. Это может вызвать у вас большую головную боль при доступе к базе данных с использованием разных клиентских программ и драйверов. Для большинства установок кодировка Unicode (UTF8) обеспечит самые гибкие возможности.

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

Ответы

Ответ 1

Оставив это здесь для информации,

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

Чтобы отладить эту конкретную проблему, вы можете выполнить следующие шаги:

  • Посмотрите на свой postgresql.conf, sudo vim /etc/postgresql/9.3/main/postgresql.conf
  • Добавьте эту строку: listen_addresses = '*'
  • Перезапустите службу sudo /etc/init.d/postgresql restart

(Обратите внимание, что приведенные выше команды предназначены для ubuntu. Другие дистрибутивы Linux могут иметь различный путь к файлам тезисов)

Примечание. Использование '*' для прослушивания адресов будет прослушивать все интерфейсы. Если вы выполните '0.0.0.0', тогда он будет прослушивать все ipv4, а если вы сделаете '::', тогда он будет прослушивать все ipv6.

http://www.postgresql.org/docs/9.3/static/runtime-config-connection.html

Ответ 2

Оказывается, это связано с тем, что между версией postgre SQL между моим локальным и сервером существует несоответствие, установка этой же версии PostgreSQL на моем компьютере устраняет проблему. Благодарю!

Ответ 3

В моем случае это произошло потому, что я неправильно настроил IP-конфигурацию в pg_hba.conf, который находится внутри папки данных в Windows.

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.0/24            md5

Я ошибочно ввел (скопировал-вставить:-)) 192.168.0.0 вместо 192.168.1.0.

Ответ 4

Это старый пост, но...

просто удивился, что никто не говорит о файле pg_hba, так как это может быть хорошей причиной для получения этого кода ошибки.

Отметьте здесь тех, кто забыл настроить его: http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

Ответ 5

В моем случае я использую Postgresql 9.2.24, и решение было таким (pg_hba.conf):

host    all             all             0.0.0.0/0            trust

Для удаленных подключений используйте доверие. В сочетании с (как упомянуто выше)

listen_addresses = '*'

Ответ 6

Если ваш Postgres работал и неожиданно вы столкнулись с этой ошибкой, моя проблема была решена путем перезапуска службы или контейнера Postgres.