Выгружаю данные из PostgreSQL через JDBC. Никак не могу справиться с ошибкой:
org.postgresql.util.PSQLException: Connection refused.
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Хост и порт заданы правильно. В postgres.conf listen_addresses = '*'. В pg_hba.conf всё прописано. Может еще какие-то параметры где-то нужно указать, чтобы соединение по TCP/IP было корректным?
Проверьте подключается ли с
Проверьте подключается ли с этими же параметрами psql. Если нет - проверяйте снова хост, порт, базу, имя, пароль, разрешения в pg_hba.conf. Если да, попробуйте другой JDBC драйвер
Psql подключается, а
Psql подключается, а драйверов пробовал несколько - результат тот же. Есть еще один непонятный момент. Если запускаю базу через службу windows, то никаких проблем, а если пытаюсь запустить через консоль командой:
pg_ctl start -D "C:\Program Files\PostgreSQL\9.0\data" -o "-i"
то получаю сообщение: could not create file "postmaster.opts": Permission denied
Правильно получаете. Потому
Правильно получаете. Потому что служба должна запускаться от имени определённого пользователя, а не абы кого. Соответственно прав нет, отсюда и сообщение.
Ну хорошо, а правильно-то как
Ну хорошо, а правильно-то как сделать? Неужели для запуска базы необходимо создать пользователя windows по имени postgres? И еще... опция "-i" открывает доступ по tcp/ip, насколько я знаю. Может ли быть, что в этом причина моей ошибки? Или параметра "listen_addresses" должно быть достаточно?
Правильно сделать вам должен
Правильно сделать вам должен быть инсталлятор. Там есть опция - запускать как службу. Вот в списке служб и должен был появится PostgreSQL - проверьте.
По поводу опции, если у вас подсоединяется через psql с указанием -h хост, значит у вас подключением по TCP/IP работает и всё настроено нормально - я не случайно просил вас это проверить.