From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | twoflower <standa(dot)kurik(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Server tries to read a different config file than it is supposed to |
Date: | 2015-05-23 14:01:43 |
Message-ID: | 55608847.7090201@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2015-05-23 14:11:51 | Re: Server tries to read a different config file than it is supposed to |
Previous Message | rob stone | 2015-05-23 14:01:28 | Re: Server tries to read a different config file than it is supposed to |