PostgreSQL服务器安装 – 无法find或访问DLL

当我尝试安装postgresql-9.0.4-1-windows.exe,在安装结束的某个地方,我得到一个错误。 “… libintl-8.dll没有find…”

安装PostgreSQL服务器时出错

(与此线程相同: http : //forums.enterprisedb.com/posts/list/2526.page直接链接: http : //forums.enterprisedb.com/posts/downloadAttach/147.page;jsessionid=43B371483530826B5E7EE9151F79279C )

我发现有关此错误的一切build议Windows用户帐户的权限问题,但我以pipe理员身份login。 我尝试在另一个磁盘上安装PostgreSQL服务器,而不是默认的(D:\ Apps)和数据目录。 数据目录被创build,并且涉及的dll(libintl-8.dll)出现。

后果是PostgreSQL Windows服务无法启动。

我不是Windows专家,所以我的问题是双重的:

  • pipe理员可以减less导致此错误的权限?
  • 可以这个错误有另一个原因比priviliges,哪个?

提前感谢任何见解

正如你从屏幕截图看到的那样,与initdb,exe相关的问题,它创build/初始化新的数据库集群。 由于PostgreSQL文档保持不变:

initdb必须以拥有服务器进程的用户身份运行,因为服务器需要访问initdb创build的文件和目录。 由于服务器不能以root身份运行,因此不得以root用户身份运行initdb。 (实际上它会拒绝的。)

根据安装程序的文档应该有install-postgresql.log日志文件在你的%TEMP% ,所以你可以得到更多的信息(另外有--debuglevel安装程序选项,运行与帮助看到更多的描述)。

如果在安装过程中遇到任何问题,请检查在Linux或Mac OS X上的/ tmp中创build的日志文件或Windows上的%TEMP%。 该文件将被称为install-postgresql.log。 日志文件可能包含您在安装过程中指定的超级用户密码,应在与任何人共享日志之前将其更改。

你使用默认的postgres超级用户/服务帐户? 我不知道这是否有帮助,但您尝试通过(使用cmd与pipe理员权限)之前(清洁)安装删除它:

 net user postgres /del 

仅仅因为您以pipe理员身份login并不意味着您可以访问所有文件 – 这只是意味着您可以授予自己访问每个文件的权限。

检查有问题的DLL的权限,并确保运行安装的用户和postgres服务帐户都具有该文件的读权限

更新 :我也能够在Windows Server 2008上成功安装Postgres 9.4.x。

在Windows Server 2008上安装Postgres 9.0.x时,提到了libint-8.dll和其他问题(详细信息:以pipe理员身份运行安装程序,并select使用服务帐户作为服务安装)。

我必须做些什么才能使事情发挥作用:

  1. 最后,我只使用一级目录来安装可执行文件(也用于数据目录)。 我一直在试图创build一个文件夹结构,其中的可执行文件是深度的几个文件夹,所以我指定了folderA / folderB /最终文件夹。 我在Google上find的某些网页build议不要这样做,但最多只能创build一个文件夹级别。 (我试图回到浏览器的历史loggingfind那个页面,因为它似乎解决了我的问题,我想给予功劳,但我再也找不到页面)。

  2. 基于其他挫折的人build议解决权限问题,我也开始给“大家”完整的控制安装目录和数据目录。 然而,那些其他的解决scheme忽略了提到下一个步骤,这对安全来说很重要:

  3. 然后, 这对于安全是非常重要的 ,一旦安装在上面两点的结合下工作,我在可执行文件夹(和下面)中添加了对postgres服务帐户的读取和执行,并修改|读取数据夹。 然后,我剥夺了我给予“每个人”的权利。 我重新启动数据库服务,它仍然工作,但现在没有相当不安全的每个人的似乎权限。

总而言之痛苦。 花费了2-3个小时的时间才find可以工作的组合。

我有完全一样的问题。 试图在我的用户文件夹中安装PostgreSQL(使用pipe理员权限)。 同样的问题。

解决scheme :安装在C:\PostgreSQL ,不使用子目录。 我立即为我工作。