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

Установка сервера PostgreSQL - не удается найти или получить доступ к dll

Когда я пытаюсь установить 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 (подробности: запуск установщика от имени администратора, с возможностью установки как службы с использованием учетной записи службы).

Что мне нужно было сделать, чтобы все заработало:

  1. В конце концов, я использовал только один уровень каталога, в который я установил исполняемый файл (а также для каталога данных). Я пытался создать структуру папок, в которой исполняемый файл состоял из пары папок, поэтому я указывал folderA / folderB / finalfolder. На какой-то странице, которую я нашел во время поиска в Google, предлагалось не делать этого, а создать максимум один уровень папки. (Я попытался вернуться в историю браузера, чтобы найти эту страницу, поскольку мне кажется, что она решила мою проблему, и я хочу отдать должное. Но мне не удалось найти страницу снова).

  2. Основываясь на предложенных другими разочарованными людьми решениях проблем с разрешениями, я также начал с того, что предоставил «Всем» полный контроль над каталогом установки и каталогом данных. Однако в этих других решениях не упоминался следующий шаг, который важен для безопасности:

  3. Затем, и это важно для безопасности, как только установка сработала при сочетании двух вышеуказанных пунктов, я добавил чтение и выполнение для учетной записи службы postgres в исполняемую папку (и ниже) и изменил | запись | чтение в папке данных. Затем я лишил прав, которые я дал «Всем». Я перезапустил службу базы данных, и она по-прежнему работала, но теперь без довольно небезопасных, кажущихся, разрешений для всех.

В целом, довольно болезненно. Потребовалось 2-3 часа, чтобы найти комбинацию, которая оказалась эффективной.

У меня была точно такая же проблема. Пытался установить PostgreSQL в папку моего пользователя (используя права администратора). Та же проблема.

Решение: Установить в C:\PostgreSQL , без использования подкаталогов. Сработал для меня сразу.