Я пытаюсь запустить postgres erver из командной строки Windows, но он не работает с той же ошибкой:
2015-04-14 10:25:19 GST LOG: could not bind IPv6 socket: No error
2015-04-14 10:25:19 GST HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2015-04-14 10:25:19 GST LOG: could not bind IPv4 socket: No error
2015-04-14 10:25:19 GST HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2015-04-14 10:25:19 GST WARNING: could not create listen socket for "*"
2015-04-14 10:25:19 GST FATAL: could not create any TCP/IP sockets
Я могу получить доступ к серверу, если попытаюсь подключиться к нему из pgAdmin. У меня нет других служб, работающих на 5432, поскольку я проверил диспетчер задач для приложений, работающих на этом порту.
Я использую команду для запуска:
pg_ctl start -D "C:\Program Files (x86)\PostgreSQL\9.4\data"
но я тоже пробовал
postgres -D "C:\Program Files (x86)\PostgreSQL\9.4\data"
В моих настройках IPv6 задан динамический IP-адрес, в то время как в моих настройках v4 задан IP-адрес широкополосного модема. Я также отключил брандмауэр Windows и свой антивирус AVG. Что я делаю не так?
Наиболее вероятное объяснение состоит в том, что там является служба уже подключена к этому порту, но вы не видите ее в диспетчере задач, потому что по умолчанию она отображает только задачи, принадлежащие вашему пользователю.
Проверить netstat
вывод команды при запуске в командной строке администратора.
Также загляните в services.msc
для postgresql-9.4-x86
служба, которая может быть запущена.
Обратите внимание, что помимо этой проблемы PostgreSQL обычно следует запускать как службу Windows. Использовать pg_ctl register
для создания услуги, если таковой не существует.
Если вы хотите запустить PostgreSQL вручную, я предлагаю initdb
вместо того, чтобы повторно использовать каталог, созданный установщиком. В противном случае вы можете столкнуться с проблемами с правами доступа к файлам, если позже вернетесь к работе в качестве службы.