- Mysterious case of dissapearing postgres process
- When in doubts, check the logs
- Upgrade postgres from 11 to 12
Mysterious case of dissapearing postgres process
Had a curious issue of not being able to connect to Postgres the other day.
it was quite baffling because listing the services via brew services list
-
it does indicate that postgres is running.
➜ brew services list
Name Status User Plist
postgresql started FTjandrawibawa /Users/FTjandrawibawa/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
redis started FTjandrawibawa /Users/FTjandrawibawa/Library/LaunchAgents/homebrew.mxcl.redis.plist
However ps -ef
doesn’t show any postgres process.
➜ ps -ef|grep postgresql
502 4764 1512 0 1:43pm ttys001 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn postgresql
And sure enough psql
couldn’t find a running server to connect to.
➜ psql
psql: error: could not connect to server: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
When in doubts, check the logs
Stumbled upon the following command from stackoverflow:
brew services restart -vvv postgresql
I have been using the restart command, but I haven’t come across the -vvv
option which
gives us a few more details about the process.
It spits out the generated plist
for postgress and from there I saw the
location of postgres log in /usr/local/var/log/postgres.log
:facepalm:, how could I forgot to check the logs?
So looking at the logs, it immediately obvious what the issue was.
2019-12-27 13:51:59.077 AEDT [5223] FATAL: database files are incompatible with server
2019-12-27 13:51:59.077 AEDT [5223] DETAIL: The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 12.1.
I just did a brew upgrade
earlier that day, and I must have upgraded postgres version from 11 to 12.
Upgrade postgres from 11 to 12
Fortunately, homebrew
gives us a utitlity to upgrade postgres data directory,
found this from running brew info postgres
.
The command is:
brew postgresql-upgrade-database
And when it’s done
➜ ps -ef|grep postgres
502 6744 1 0 1:53pm ?? 0:00.04 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres
502 6753 6744 0 1:53pm ?? 0:00.00 postgres: checkpointer
502 6754 6744 0 1:53pm ?? 0:00.02 postgres: background writer
502 6755 6744 0 1:53pm ?? 0:00.02 postgres: walwriter
502 6756 6744 0 1:53pm ?? 0:00.01 postgres: autovacuum launcher
502 6757 6744 0 1:53pm ?? 0:00.05 postgres: stats collector
502 6758 6744 0 1:53pm ?? 0:00.00 postgres: logical replication launcher
502 6837 1512 0 1:54pm ttys001 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn postgres
Winning!