Назад | Перейти на главную страницу

Ошибка подтверждения ssl с COPY на PostgreSQL

Я восстанавливаю CSV файл в базу данных с COPY команда. Файл csv заархивирован. Я использую эту команду:

bunzip2 -c -d online-20110923000001.csv.bz2 | psql -U user -h 127.0.0.1 -d testdb -c "COPY data FROM STDIN WITH CSV HEADER;"

Через некоторое время он прекращается:

SSL error: ssl handshake failure
connection was lost to database

Файл журнала показывает:

2012-03-06 10:01:10 IRST STATEMENT:  COPY data FROM STDIN WITH CSV HEADER;
2012-03-06 10:01:10 IRST LOG:  SSL error: ssl handshake failure
2012-03-06 10:01:10 IRST CONTEXT:  COPY data, line 8349702
2012-03-06 10:01:10 IRST STATEMENT:  COPY data FROM STDIN WITH CSV HEADER;
2012-03-06 10:01:10 IRST LOG:  could not receive data from client: Connection reset by peer
2012-03-06 10:01:10 IRST CONTEXT:  COPY data, line 8349702

Может ли кто-нибудь помочь? Делает psql использовать SSL? Как его отключить? Я перезапустил указанную выше команду, и теперь она снова работает нормально. Я не менял конфигурацию PostgreSQL. Я использую PostgreSQL 8.4.10 на Debian 6.

В некоторых документах предлагается отключить ssl-соединения с помощью опции sslmode, например:

$ psql "service=myservice sslmode=disable"

это также кажется стандартным способом, включая явную передачу аргументов, несколько примеров которой есть в Google;

$ bunzip2 -c -d online-20110923000001.csv.bz2 |  \
psql "host=127.0.0.1 user=joe password=foo dbname=testdb sslmode=disable" \
-c "COPY data FROM STDIN WITH CSV HEADER;"

Есть также опция файла conf, поэтому вы можете поместить эти команды в /etc/postgresql-8.4/pg_service.conf

[myservice]
dbname=testdb
user=user
host=127.0.0.1
password=password.here

и это могло бы работать так;

bunzip2 -c -d online-20110923000001.csv.bz2 | psql "service=myservice sslmode=disable"  -c "COPY data FROM STDIN WITH CSV HEADER;"

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

пример страницы из руководства:
http://www.postgresql.org/docs/8.4/static/app-psql.html

(хм. Мне действительно следовало оставить этот вопрос кому-то, кто использует postgresql изо дня в день ... ;-)