Re: Server tries to read a different config file than it is supposed to - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Server tries to read a different config file than it is supposed to
Date
Msg-id 55608847.7090201@aklaver.com
Whole thread Raw
In response to Server tries to read a different config file than it is supposed to  (twoflower <standa.kurik@gmail.com>)
List pgsql-general
On 05/23/2015 04:23 AM, twoflower wrote:
> I thought I understood how specifying a config file path for the server
> works, but that's apparently not the case.
>
> The cluster data is at */storage/postgresql/9.4/data*.
>
> The config files are at */etc/postgresql/9.4/main* (this is the default
> location on Ubuntu).
>
> This is how the beginning of */etc/postgresql/9.4/main/postgresql.conf*
> looks like:
>
> |data_directory = '/storage/postgresql/9.4/data'
> hba_file = '/etc/postgresql/9.4/main/pg_hba.conf'
> ident_file = '/etc/postgresql/9.4/main/pg_ident.conf' |
>
> So I wrote a few scripts to make my life easier, e.g. *pg94start.sh*:
>
> |su postgres -c "/usr/lib/postgresql/9.4/bin/pg_ctl -D
> /storage/postgresql/9.4/data -o '-c
> config_file=/etc/postgresql/9.4/main/postgresql.conf'"|
>
> But running this script did not work, the server would not start. So I
> checked the log file and there was:
>
> *FATAL: could not open file
> "/storage/postgresql/9.4/data/postgresql.conf": Permission denied*
>
> After fixing the ownership of this file, it worked.
>
> What's the reason the server was trying to access that file? Why does
> not the override given by the *|config_file|* parameter work?

I think you are seeing the effects of the below:

http://www.postgresql.org/docs/9.4/static/runtime-config-file-locations.html

"If you wish to keep the configuration files elsewhere than the data
directory, the postgres -D command-line option or PGDATA environment
variable must point to the directory containing the configuration files,
and the data_directory parameter must be set in postgresql.conf (or on
the command line) to show where the data directory is actually located.
Notice that data_directory overrides -D and PGDATA for the location of
the data directory, but not for the location of the configuration files."


By specifying -D you pointing at /storage/postgresql/9.4/data as the
source for the conf files, then changing that with the -o switch. Try
your command without the -D switch and let the postgresql.conf file in
/etc/postgresql/9.4/main/ provide the data_directory.


>
> Thank you.
> ------------------------------------------------------------------------
> View this message in context: Server tries to read a different config
> file than it is supposed to
> <http://postgresql.nabble.com/Server-tries-to-read-a-different-config-file-than-it-is-supposed-to-tp5850752.html>
> Sent from the PostgreSQL - general mailing list archive
> <http://postgresql.nabble.com/PostgreSQL-general-f1843780.html> at
> Nabble.com.


--
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: rob stone
Date:
Subject: Re: Server tries to read a different config file than it is supposed to
Next
From: Adrian Klaver
Date:
Subject: Re: Server tries to read a different config file than it is supposed to