Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

When i try to install postgresql-9.0.4-1-windows.exe, somewhere at the end of the installation i get an error. "... libintl-8.dll was not found ..."

Error installing PostgreSQL server

(same as in this thread: http://forums.enterprisedb.com/posts/list/2526.page direct link: http://forums.enterprisedb.com/posts/downloadAttach/147.page;jsessionid=43B371483530826B5E7EE9151F79279C )

Everything i found concerning this error suggests a permissions issue of the Windows user account, but i was logged in as Administrator. I tried to install the PostgreSQL server on another disk than the default (D:\Apps), together with the data directory. The data directory was created and the concerning dll (libintl-8.dll) was present.

Consequences are that the PostgreSQL Windows service cannot be started.

I am not a Windows expert, so my question is two-fold:

  • can an administrator have diminished privileges causing this error?
  • can this error have another cause than priviliges, which?

Thanks in advance for any insight

share|improve this question
add comment

migrated from stackoverflow.com Jun 14 '11 at 16:02

This question came from our site for professional and enthusiast programmers.

3 Answers

up vote 1 down vote accepted

As you see from screenshot it's issue related to initdb,exe, which creates/initializes new database cluster. As PostgreSQL documentation stays:

initdb must be run as the user that will own the server process, because the server needs to have access to the files and directories that initdb creates. Since the server cannot be run as root, you must not run initdb as root either. (It will in fact refuse to do so.)

According to installer's doc there should be install-postgresql.log logfile in your %TEMP%, so you can get more info (additional there is --debuglevel installer option, run with --help to see more description).

If you encounter any problems during installation, please check the logfile that is created in /tmp on Linux or Mac OS X or %TEMP% on Windows. The file will be called install-postgresql.log. The logfile may contain the superuser password you specified during the installation, which should be replaced before sharing the log with anyone.

Are you using default postgres superuser/service account ? I don't know if this helps, but you try to remove it before (clean) installation by (using cmd with admin rights):

net user postgres /del
share|improve this answer
add comment

I had the same mentioned libint-8.dll and other problems installing Postgres 9.0.x on Windows Server 2008 (details: running installer as admin, with choice to install as service using a service account).

What I had to do to get things to work:

  1. In the end, I only used one level of directory for where I installed the executable (and also for the data directory). I had been trying to create a folder structure wherein the executable was a couple of folders deep, so I was specifying folderA/folderB/finalfolder. Some page I found while googling suggested not to do that, but to create one folder level at most. (I tried to go back through my browser history to find that page, since it seems like it solved my problem and I want to give credit. But I couldn't find the page again).

  2. Based on other frustrated people's suggested solutions to permissions problems, I also started out by giving "Everyone" complete control over the installation directory and the data directory. However, those other solutions neglected to mention the next step, which is important for security:

  3. Then, and this is important for security, once the install worked under the combination of the above two points, I added read & execute for the postgres service account on the executable folder (and below), and modify|write|read on the data folder. I then stripped the rights I had given "Everyone". I restarted the database service and it still worked, but now without the rather insecure seeming permissions for Everyone.

Rather painful all in all. It took 2-3 hours to hit on the combination that appeared to work.

share|improve this answer
add comment

Just because you are logged in as Administrator doesn't mean you can access all files - it just means you can give yourself the privileges to access every file.

Check the privileges on the DLL in question and make sure the user that runs the installation and the postgres service account have both read privileges on that file

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.