Run the "su - postgres -c ..." command as root
I found the answer here: https://bugzilla.redhat.com/show_bug.cgi?id=771496
Description of problem: After initial install of a postgresql server
rpm, you are left with an unstartable service until you run the
following command as root
su - postgres -c "initdb -D /var/lib/pgsql/data"
Version-Release number of selected component (if applicable):
[root@oscar]# rpm -q postgresql-server
How reproducible: Always
Several places had instructed me to use this command for Fedora 16, rather than following the prior instructions (new command: su - postgres -c "PGDATA=/var/lib/pgsql/data initdb" ), but upon seeing 'su' at the front of that, I assumed it would switch me to root when I ran the command. It kept prompting me for a password, but nothing was working.
I tried the root passwd, my own (as if sudo'ing), "postgres" and "pgsql" in case I was somehow supposed to be doing this as the postgres user, even leaving the password blank. I tried su'ing to root, and then running the command without the initial 'su -' (starting with "postgres -c ..."), but that errored as well, telling me that:
"The server must be started under an unprivileged user ID to prevent
possible system security compromise. See the documentation for more
information on how to properly start the server."
Finally, I tried running the full command "su - postgres -c ..." as root, but still using the "su", and wow- it worked. Now the service starts. Thanks Redhat bug tracking!
su to root, then enter:
su - postgres -c "PGDATA=/var/lib/pgsql/data initdb"