unable to pass variable PGDATA2 into server environment

From: Jean-Christophe Weis <jcweis(at)melix(dot)net>
To: pgsql-admin(at)postgresql(dot)org
Subject: unable to pass variable PGDATA2 into server environment
Date: 2004-07-01 16:23:49
Message-ID: 20040701162349.GA1241@max.my.domain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hello list,

I am a member of the french translation group for the PostgreSQL project.

I run PostgreSQL 7.2.1-2 on Debian Linux Woody (3.0r1).

I can't reproduce the steps described in Section 18.5 of the PostgreSQL 7.4
Documentation (Server Administration > Managing Databases > Alternative
Locations), which has quite the same contents as Section 6.1.2 of the
PostgreSQL 7.2.1 Documentation that came with Woody.

I have created a containing directory for a new data storage area and made it
writable by the user account that runs the server, i.e. 'postgres':

| root# ls -ld /home/jc/postgres
| drwx------ 3 postgres postgres 4096 Jun 29 19:59 /home/jc/postgres/

The server being shut down, I have created a variable named 'PGDATA2' to
reference the new data storage area, and marked it for export:

| root# PGDATA2=/home/jc/postgres/data
| root# export PGDATA2

I have created the new data storage area under the identity of the database
superuser, 'postgres' too:

| root# su postgres
| postgres$ /usr/lib/postgresql/bin/initlocation PGDATA2
| The location will be initialized with username "postgres".
| This user will own all the files and must also own the server process.
|
| Creating directory /home/jc/postgres/data
| Creating directory /home/jc/postgres/data/base
|
| initlocation is complete.
| You can now create a database using
| CREATE DATABASE <name> WITH LOCATION = 'PGDATA2'
| in SQL, or
| createdb <name> -D 'PGDATA2'
| from the shell.

Apparently everything went fine so far. I have restarted the server, under the
root identity:

| postgres$ exit
| root# /etc/init.d/postgresql start
| ...

But when I tried to create a database in the new data storage area, under the
'postgres' identity, it failed:

| root# su postgres
| postgres$ createdb testdb -D 'PGDATA2'
| ERROR: Postmaster environment variable 'PGDATA2' not set
| createdb: database creation failed

And, by the way:

| postgres$ createdb testdb -D $PGDATA2
| ERROR: Absolute paths are not allowed as database locations
| createdb: database creation failed

The variable PGDATA2 is set and marked for export in the root shell where I
start the server, but it is not passed into the server's environment.

Any Debian user knows if there is something special with Debian and
environment variables of the PostgreSQL server?

Thanks,

--
JC Weis <jcweis(at)melix(dot)net>

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2004-07-01 17:55:19 Re: unable to pass variable PGDATA2 into server environment
Previous Message Kris Kiger 2004-07-01 16:08:55 Bug?