Reputation: 2286
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
running on localhost gives the same result:
psql -h localhost ⏎ master ✱ ◼
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
Service status:
sudo service postgresql status ⏎ master ✱ ◼
[sudo] password for david:
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2015-10-10 15:48:54 IDT; 26min ago
Process: 5470 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 5470 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postgresql.service
Oct 10 15:48:54 david-X48-DS4 systemd[1]: Starting PostgreSQL RDBMS...
Oct 10 15:48:54 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
Oct 10 15:49:21 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
Oct 10 15:51:40 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
Oct 10 15:51:41 david-X48-DS4 systemd[1]: Started PostgreSQL RDBMS.
running sudo netstat -nl | grep postgres
gives no result
I'm running xubuntu 15.04
what should my next troubleshooting steps be?
Upvotes: 12
Views: 8214
Reputation: 81
I had this same problem, but in my case, it was caused by the data drive not being remounted when the server was rebooted.
I know this is just one of many possible reasons for your issue, but thought it was worth mentioning! I mounted the drive and restarted postgresql and everything works great now.
Upvotes: 0
Reputation: 193
YASP (Yet Another Systemd Problem)
The systemd integration of PostgreSQL in Xenial is somewhat idiosyncratic.
The postgresql service unit is just a dummy which is supposed to trigger the starting of your actual database instance(s) via service dependencies.
That's why it says ExecStart=/bin/true
- the unit's start command is /bin/true
, ie. "do nothing, successfully".
The instances have service units of their own named postgresql@<version>-<name>
.
You can see those by running the command
systemctl list-dependencies postgresql
Dependencies are generated by the script /lib/systemd/system-generators/postgresql-generator
for all instances whose start mode is set to auto
in their respective start.conf
files under /etc/postgresql
.
At least that's how it is supposed to work.
Every once in a while, though, these dependencies stop working.
Systemd will cheerfully report Started PostgreSQL RDBMS.
but in fact will have done nothing, successfully.
So your next troubleshooting steps should be:
list-dependencies
.start.conf
files.Upvotes: 6
Reputation:
I have a few suggestions that may help.
When you try to connect to PostgreSQL try with: sudo -u postgres psql
; your user may be different for peer authentication though; so check the pg_hba.conf
to be sure; this file is in your $PGDATA
directory.
Another suggestion is that you may want to check the startup log and the global syslog. The former is usually in $PGDATA
as pg_startup.log
and the latter is /var/log/syslog
.
Upvotes: 2