CREATE DATABASE WITH LOCATION
hi all,
having a little problem with the alternate DB location stuff, on redhat
7.2/postgres 7.1.3. 'CREATE DATABASE WITH LOCATION 'PGDATA2' claims that
PGDATA2 environment not set, although i've defined it in .bash_profile (for
user posgres) and verified that it takes when i 'su -l postgres'. yes, i
restarted the postmaster.
is this the correct way to propagate an environment variable to the
postmaster, and if not, what is the correct way? or, any ideas why this
would be happening?
TIA
glen
"Glen Parker" <glenebob@nwlink.com> writes:
having a little problem with the alternate DB location stuff, on redhat
7.2/postgres 7.1.3. 'CREATE DATABASE WITH LOCATION 'PGDATA2' claims that
PGDATA2 environment not set, although i've defined it in .bash_profile (for
user posgres) and verified that it takes when i 'su -l postgres'. yes, i
restarted the postmaster.
Exactly how did you restart the postmaster?
Also, did you remember to "export PGDATA2" from the profile file, not
merely set its value?
regards, tom lane
having a little problem with the alternate DB location stuff, on redhat
7.2/postgres 7.1.3. 'CREATE DATABASE WITH LOCATION 'PGDATA2'claims that
PGDATA2 environment not set, although i've defined it in
.bash_profile (for
user posgres) and verified that it takes when i 'su -l
postgres'. yes, i
restarted the postmaster.
Exactly how did you restart the postmaster?
service postgresql restart
and when that didnt work
service postgresql stop
service postgresql start
and then a reboot which also didnt work
Also, did you remember to "export PGDATA2" from the profile file, not
merely set its value?
yep, sure did. actually, if i specify 'PGDATA' as the location, i get the
same error. that var is exported already in the stock .bash_profile.
glen
"Glen Parker" <glenebob@nwlink.com> writes:
Exactly how did you restart the postmaster?
service postgresql restart
And what does that do? My bet is that when you dig into it, you'll
find it's not supplying the environment you expect to the postmaster.
regards, tom lane
*chuckle* hey i thought you were supposed to know this stuff :-)
it does this ('service' just calls the init script... its a redhat thing i
guess):
su -l -s /bin/sh postgres -c "LC_ALL=C /usr/bin/pg_ctl -D $PGDATA -p
/usr/bin/postmaster start >/dev/null 2>&1" < /dev/null
now, if i do this:
su -l -s /bin/sh postgres -c "/usr/bin/postmaster -D $PGDATA"
(or something close) it works... the postmaster starts without detaching
from the terminal and then the alternate location stuff works fine.
i'm looking at pg_ctl and so far i don't see any reason why the environment
would be getting munged in there.
glen
Show quoted text
-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Tuesday, November 13, 2001 03:38 PM
To: Glen Parker
Cc: Pg-General
Subject: Re: [GENERAL] CREATE DATABASE WITH LOCATION"Glen Parker" <glenebob@nwlink.com> writes:
Exactly how did you restart the postmaster?
service postgresql restart
And what does that do? My bet is that when you dig into it, you'll
find it's not supplying the environment you expect to the postmaster.regards, tom lane
service postgresql restart
And what does that do? My bet is that when you dig into it, you'll
find it's not supplying the environment you expect to the postmaster.
ok, problem solved.
the postgres init script does:
su -l -s /bin/sh postgres blah blah
executing bash as sh causes it to not read .bash_profile. it reads .profile
instead, which after a stock postgres install doesnt exist, and so the
environment never gets setup.
i did this:
ln -s .bash_profile .profile
and it did the trick. maybe in future installs that should be done
automatically, or the init script modified to not specify a shell?
glen