Когда я пытаюсь установить postgresql-9.0.4-1-windows.exe, где-то в конце установки я получаю сообщение об ошибке. "... libintl-8.dll не найден ..."
(так же, как в этой ветке: http://forums.enterprisedb.com/posts/list/2526.page Прямая ссылка: http://forums.enterprisedb.com/posts/downloadAttach/147.page;jsessionid=43B371483530826B5E7EE9151F79279C )
Все, что я нашел относительно этой ошибки, предполагает проблему с разрешениями учетной записи пользователя Windows, но я вошел в систему как администратор. Я попытался установить сервер PostgreSQL на диск, отличный от диска по умолчанию (D: \ Apps), вместе с каталогом данных. Каталог данных был создан и соответствующая dll (libintl-8.dll) присутствовала.
Следствием этого является невозможность запуска службы PostgreSQL Windows.
Я не специалист по Windows, поэтому у меня двоякий вопрос:
Заранее благодарим за понимание
Тот факт, что вы вошли в систему как администратор, не означает, что вы можете получить доступ ко всем файлам - это просто означает, что вы можете предоставить себе права доступа к каждому файлу.
Проверьте права доступа к соответствующей DLL и убедитесь, что пользователь, запускающий установку, и учетная запись службы postgres имеют права на чтение этого файла.
Как видно на скриншоте, проблема связана с initdb, exe, который создает / инициализирует новый кластер базы данных. В документации PostgreSQL остается:
initdb должен быть запущен от имени пользователя, которому будет принадлежать серверный процесс, потому что сервер должен иметь доступ к файлам и каталогам, которые создает initdb. Поскольку сервер не может быть запущен как root, вы не должны запускать initdb как root. (На самом деле он откажется это сделать.)
В соответствии с установщик док там должен быть install-postgresql.log
файл журнала в вашем %TEMP%
, чтобы вы могли получить дополнительную информацию (есть дополнительные --debuglevel
вариант установщика, запустите с --help
чтобы увидеть более подробное описание).
Если у вас возникнут какие-либо проблемы во время установки, проверьте файл журнала, который создается в / tmp в Linux или Mac OS X или% TEMP% в Windows. Файл будет называться install-postgresql.log. Файл журнала может содержать пароль суперпользователя, указанный вами во время установки, который следует заменить перед тем, как предоставить кому-либо доступ к журналу.
Вы используете учетную запись суперпользователя / службы postgres по умолчанию? Я не знаю, помогает ли это, но вы пытаетесь удалить его перед (чистой) установкой (используя cmd с правами администратора):
net user postgres /del
Обновить: Мне удалось выполнить приведенную ниже процедуру, успешно установив Postgres 9.4.x и на Windows Server 2008.
У меня были те же проблемы с libint-8.dll и другие проблемы при установке Postgres 9.0.x на Windows Server 2008 (подробности: запуск установщика от имени администратора, с возможностью установки как службы с использованием учетной записи службы).
Что мне нужно было сделать, чтобы все заработало:
В конце концов, я использовал только один уровень каталога, в который я установил исполняемый файл (а также для каталога данных). Я пытался создать структуру папок, в которой исполняемый файл состоял из пары папок, поэтому я указывал folderA / folderB / finalfolder. На какой-то странице, которую я нашел во время поиска в Google, предлагалось не делать этого, а создать максимум один уровень папки. (Я попытался вернуться в историю браузера, чтобы найти эту страницу, поскольку мне кажется, что она решила мою проблему, и я хочу отдать должное. Но мне не удалось найти страницу снова).
Основываясь на предложенных другими разочарованными людьми решениях проблем с разрешениями, я также начал с того, что предоставил «Всем» полный контроль над каталогом установки и каталогом данных. Однако в этих других решениях не упоминался следующий шаг, который важен для безопасности:
Затем, и это важно для безопасности, как только установка сработала при сочетании двух вышеуказанных пунктов, я добавил чтение и выполнение для учетной записи службы postgres в исполняемую папку (и ниже) и изменил | запись | чтение в папке данных. Затем я лишил прав, которые я дал «Всем». Я перезапустил службу базы данных, и она по-прежнему работала, но теперь без довольно небезопасных, кажущихся, разрешений для всех.
В целом, довольно болезненно. Потребовалось 2-3 часа, чтобы найти комбинацию, которая оказалась эффективной.
У меня была точно такая же проблема. Пытался установить PostgreSQL в папку моего пользователя (используя права администратора). Та же проблема.
Решение: Установить в C:\PostgreSQL
, без использования подкаталогов. Сработал для меня сразу.