I was trying to test some code today and I realized I need a working PostgreSQL server. When I tried to start the server, it failed with this error.
Aug 23 15:36:10 athena systemd[1]: Starting PostgreSQL database server... Aug 23 15:36:10 athena postgresql-check-db-dir[20713]: An old version of the database format was found. Aug 23 15:36:10 athena postgresql-check-db-dir[20713]: Use 'postgresql-setup --upgrade' to upgrade to version '9.6' Aug 23 15:36:10 athena postgresql-check-db-dir[20713]: See /usr/share/doc/postgresql/README.rpm-dist for more information. Aug 23 15:36:10 athena systemd[1]: postgresql.service: Control process exited, code=exited status=1 Aug 23 15:36:10 athena systemd[1]: Failed to start PostgreSQL database server. Aug 23 15:36:10 athena systemd[1]: postgresql.service: Unit entered failed state. Aug 23 15:36:10 athena systemd[1]: postgresql.service: Failed with result 'exit-code'.
Ah, I upgraded to F26 recently and I suppose that came with a new version of PostgreSQL. I figured fixing this should be trivial. Well, not exactly. When I first ran the command, it asked me to install the postgresql-upgrade
package. Once I did install it, the command threw a strange error.
[root@athena pgsql]# postgresql-setup --upgrade * Upgrading database. ERROR: The pidfile '/var/lib/pgsql/data-old/postmaster.pid' exists. Verify that there is no postmaster running the /var/lib/pgsql/data-old directory. ERROR: Upgrade failed. * See /var/lib/pgsql/upgrade_postgresql.log for details.
The /var/lib/pgsql/data-old/postmaster.pid
file doesn’t even exist. It took me some time to realize that it’s actually looking at /var/lib/pgsql/data/postmaster.pid
, which does exist. I think at some point, I had a running PostgreSQL server and I didn’t shutdown the computer cleanly. This lead to a stale PID file. Once I renamed the PID file, the upgrade command worked.
Leave a Reply