Обсуждение: Snapshot is not working
Hello,
I compiled the snapshot from 16. Oct on Sparc Linux. Make and make
install worked perfectly and I was able to start the postmaster as
described in INSTALL. But:
postgres:~$ ps ax | grep post
8575 ttyp4 S 0:00 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
8576 ttyp4 S 0:00 postgres: stats buffer process
8578 ttyp4 S 0:00 postgres: stats collector process
8624 ttyp0 S 0:00 grep post
postgres:~$ createuser tillea
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
psql: connectDBStart() -- connect() failed: No such file or directory
Is the postmaster running locally
and accepting connections on Unix socket '/var/run/postgresql/.s.PGSQL.5432'?
createuser: creation of user "tillea" failed
The logfile says:
DEBUG: database system was shut down at 2001-10-19 09:57:16 CEST
DEBUG: checkpoint record is at 0/123118
DEBUG: redo record is at 0/123118; undo record is at 0/0; shutdown TRUE
DEBUG: next transaction id: 90; next oid: 16556
DEBUG: database system is ready
Does anybody see a reason for this failure?
Kind regards
Andreas.
"Tille, Andreas" <TilleA@rki.de> writes:
> psql: connectDBStart() -- connect() failed: No such file or directory
> Is the postmaster running locally
> and accepting connections on Unix socket '/var/run/postgresql/.s.PGSQL.5432'?
That's not the usual location for a PG socket file. How did you tell
psql to look there, and are you sure the postmaster thinks the same?
(If there's a socket file present in /tmp rather than
/var/run/postgresql, it's a strong tipoff that you've gotten this
wrong...)
regards, tom lane
On Fri, 19 Oct 2001, Tom Lane wrote:
> "Tille, Andreas" <TilleA@rki.de> writes:
> > psql: connectDBStart() -- connect() failed: No such file or directory
> > Is the postmaster running locally
> > and accepting connections on Unix socket '/var/run/postgresql/.s.PGSQL.5432'?
>
> That's not the usual location for a PG socket file. How did you tell
> psql to look there, and are you sure the postmaster thinks the same?
> (If there's a socket file present in /tmp rather than
> /var/run/postgresql, it's a strong tipoff that you've gotten this
> wrong...)
This is in fact the case. I wrote an /etc/init.postgresql script
which does at start:
touch ${POSTGRES_LOG:=/var/log/postgres.log}
chown postgres.postgres $POSTGRES_LOG
su - postgres -c "/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >$POSTGRES_LOG 2>&1 &"
which is in my opinion what the INSTALL file suggests. I don´t know
why the socket is created as /tmp/.s.PGSQL.5432 ? Any idea what could
be wrong?
Kind regards
Andreas.
On Tue, 23 Oct 2001, Tille, Andreas wrote:
> On Fri, 19 Oct 2001, Tom Lane wrote:
>
> > "Tille, Andreas" <TilleA@rki.de> writes:
> > > psql: connectDBStart() -- connect() failed: No such file or directory
> > > Is the postmaster running locally
> > > and accepting connections on Unix socket '/var/run/postgresql/.s.PGSQL.5432'?
> >
> > That's not the usual location for a PG socket file. How did you tell
> > psql to look there, and are you sure the postmaster thinks the same?
> > (If there's a socket file present in /tmp rather than
> > /var/run/postgresql, it's a strong tipoff that you've gotten this
> > wrong...)
> This is in fact the case. I wrote an /etc/init.postgresql script
> which does at start:
>
>
> touch ${POSTGRES_LOG:=/var/log/postgres.log}
> chown postgres.postgres $POSTGRES_LOG
> su - postgres -c "/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >$POSTGRES_LOG 2>&1 &"
>
> which is in my opinion what the INSTALL file suggests. I don�t know
> why the socket is created as /tmp/.s.PGSQL.5432 ? Any idea what could
> be wrong?
Is it possible that you've got two versions of the libraries/programs
running around, maybe one from the RPMs (I think that'd probably be where
the RPMs would put the socket file).
"Tille, Andreas" <TilleA@rki.de> writes:
> I don�t know
> why the socket is created as /tmp/.s.PGSQL.5432 ?
That is the normal place for it. If you want it somewhere else, you
have to tell the postmaster so. Did you set UNIX_SOCKET_DIRECTORY
in postgresql.conf?
regards, tom lane
On Tue, 23 Oct 2001, Tom Lane wrote:
> That is the normal place for it. If you want it somewhere else, you
> have to tell the postmaster so. Did you set UNIX_SOCKET_DIRECTORY
> in postgresql.conf?
No I did not. Even if I set
unix_socket_directory = '/tmp'
explicitely in /usr/local/pgsql/data/postgresql.conf but this doesn´t
change anything. Moreover I tracked down the problem and detected
that my /etc/init.d/postgres script had a remainder from my previous
Debian installation of Postgresql 7.1.3. (POSTGRESHOME was set to
/var/lib/postgres). I removed this.
Now I included a "set -x" into /etc/init.d/postgresql :
+ PGSQLPATH=/usr/local/pgsql
+ DATAPATH=/usr/local/pgsql/data
+ POSTMASTER=/usr/local/pgsql/bin/postmaster
+ . /usr/local/pgsql/data/postmaster.conf
++ '[' -z '' ']'
++ POSTGRESHOME=/usr/local/pgsql/data
++ PGDATESTYLE=GERMAN
+ PGDATA=/usr/local/pgsql/data
+ export PGDATA PGSQLPATH DATAPATH POSTMASTER POSTGRESHOME PGDATESTYLE
+ echo /usr/local/pgsql/data /usr/local/pgsql /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster
/usr/local/pgsql/dataGERMAN
/usr/local/pgsql/data /usr/local/pgsql /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster /usr/local/pgsql/data
GERMAN
+ startup
+ touch /var/log/postgres.log
+ chown postgres.postgres /var/log/postgres.log
+ su - postgres -c '/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >/var/log/postgres.log 2>&1 &'
+ exit 0
and I do not see any remander from the Debian settings but the problem
remains that the socket is created under /tmp but from postgres
expected to be under /var/run/postgresql/.s.PGSQL.5432.
Any idea?
Kind regards
Andreas.
"Tille, Andreas" <TilleA@rki.de> writes:
> No I did not. Even if I set
> unix_socket_directory = '/tmp'
> explicitely in /usr/local/pgsql/data/postgresql.conf but this doesn�t
> change anything.
No, because that's telling the postmaster to put the socket in /tmp,
which is what it was doing anyway. Your problem is that psql is doing
something different from the postmaster.
> and I do not see any remander from the Debian settings but the problem
> remains that the socket is created under /tmp but from postgres
> expected to be under /var/run/postgresql/.s.PGSQL.5432.
Do you perhaps have PGHOST set to /var/run/postgresql in psql's
environment?
regards, tom lane
Please call me stupid: The reason for my trouble was just a wrong path
of user postgres which was using the old createuser binary. All other
things where working perfectly.
Sorry for the confusion.
Kind regards
Andreas.
On Wed, 24 Oct 2001, Tom Lane wrote:
> "Tille, Andreas" <TilleA@rki.de> writes:
> > No I did not. Even if I set
> > unix_socket_directory = '/tmp'
> > explicitely in /usr/local/pgsql/data/postgresql.conf but this doesn´t
> > change anything.
>
> No, because that's telling the postmaster to put the socket in /tmp,
> which is what it was doing anyway. Your problem is that psql is doing
> something different from the postmaster.
Well OK, than it works with
unix_socket_directory = '/var/run/postgresql'
now. Thanks for the hint. On the other hand: How can I really make sure
that my postgresql snapshot is running. I´m afraid that there are some
remainders from my 7.1.3 installation which might has caused this trouble.
> > and I do not see any remander from the Debian settings but the problem
> > remains that the socket is created under /tmp but from postgres
> > expected to be under /var/run/postgresql/.s.PGSQL.5432.
>
> Do you perhaps have PGHOST set to /var/run/postgresql in psql's
> environment?
No, it´s empty.
Kind regards
Andreas.