My thanks to the several people who gave suggestions for how
to solve my initdb problem.
1. "Phillip Smith" <phillip(dot)smith(at)weatherbeeta(dot)com(dot)au>
suggested the problems stemmed from:
the 'postgres' user not having a correct shell login setup.
It looks like the home directory is set to /dev/null which
would explain all the "not a
You'll need to edit the postgers user to have a proper login
I had previously been told something along these lines, and
so had already given postgres a shell of /bin/bash (using
NetInfo Manager). It is only since making that change that I
have been able to login as postgres at all. I note, however,
that postgres' home is still set to /dev/null, and would be
interested in trying to re-set that to something possibly
more useful, except I don't know what to use--any
2. "'James Herbers'" <james(at)herbers(dot)ca> suggested:
as root you have to chown /Library/postgreSQL8/ -R (this is
what you do in Linux).
As shown below, the binary installer for pg 8.2.4 seemed to
already set that up correctly:
Acorn:/Library/PostgreSQL8 root# ls -l
drwxr-xr-x 27 postgres admin 918 12 Jun 15:19 bin
drwx------ 2 postgres admin 68 11 Jun 08:10 data
drwxr-xr-x 3 postgres admin 102 12 Jun 15:19 doc
drwxr-xr-x 21 postgres admin 714 12 Jun 15:19 include
drwxr-xr-x 20 postgres admin 680 12 Jun 15:19 lib
drwxr-xr-x 3 postgres admin 102 11 Jun 08:10 log
drwxr-xr-x 4 postgres admin 136 12 Jun 15:19 man
drwxr-xr-x 3 postgres admin 102 12 Jun 15:19 share
James also suggested I should:
try this when changing to the postgres user:
su - postgres
the hyphen gives you an environment for the postgres user.
Unfortunately, I either used the wrong syntax, or it doesn't
work for some other reason:
Acorn:/Library/PostgreSQL8 root# su - postgres
su: no directory
I wonder whether the above line, and the following, relate
to the lack of a home for the postgres user?
Acorn:/Library/PostgreSQL8 root# su postgres
su: /dev/null/.bashrc: Not a directory
3. Another list member suggested off-list that:
If you run the command as
`sudo su postgres -c 'initdb'`
then it should run the command as the postgres user but not
postgres account to be a full account, which it requires if
you just do
su postgres and then run the command seperately...
But I got the following:
Acorn:/Library/PostgreSQL8 root# sudo su postgres -c
su: line 1: initdb: command not found
When I tried that again, but as acorn (my username) instead
of root, terminal more promisingly said I had to specify the
directory. What finally appeared to work, was the following:
Acorn acorn 3 acorn$ sudo su postgres -c 'initdb -D
This gave me a pid, but looking in Activity Monitor that pid
does not appear (nor anything else that looks like pg).
I note that the directory /Library/PostgreSQL8/data/ still
contains nothing, so for example this fails:
pg_ctl start -l logfile -D /Library/PostgreSQL8/data
pg_ctl: could not open PID file
I earlier downladed & installed the
Postgres_Startup_Item.pkg, but either initdb didn't really
work, or there's some other problem.
I guess what I'm asking now is: how do I know if initdb has
worked, and what do I do next to start pg?
Sorry for the length.
pgsql-admin by date
|Next:||From: Phillip Smith||Date: 2007-06-21 01:32:01|
|Subject: Re: initdb problem|
|Previous:||From: Scott Marlowe||Date: 2007-06-20 22:13:15|
|Subject: Re: [GENERAL] [PERFORM] Postgres VS Oracle|