9

I installed postgres on Mac OS X 10.6.x. When I ran for postgres database version:

psql --versionpsql (PostgreSQL) 9.1.1
contains support for command-line editing

When I checked for the version of the server:

psql -c "select version();"                                                                     version                                                                      
--------------------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.0.5 on x86_64-apple-darwin10.8.0, compiled by GCC i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3), 64-bit
(1 row)

So when I run

bash-3.2$ psql
psql (9.1.1, server 9.0.5)
WARNING: psql version 9.1, server version 9.0.
         Some psql features might not work.

I am not sure what those features are. These versions are conflicting. I am new to using postgres so I dont know how to upgrade just the postgres server. I tried to search for something online but did not find much help. I don't want to uninstall and reinstall postgres. Is there anyway I could use them both together without them conflicting? Or just upgrade the server to the same version as database?

Edit:

which psql
/opt/local/lib/postgresql91/bin//psql

which postgres
/opt/local/lib/postgresql91/bin//postgres

ps -eaf|grep postgres
    0    60     1   0   0:00.07 ??         0:00.09 /opt/local/bin/daemondo --label=postgresql90-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql90-server/postgresql90-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql90-server/postgresql90-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql90-server/postgresql90-server.wrapper restart ; --pid=none
  103  3971  3967   0   0:00.69 ??         0:01.17 postgres: writer process     
  103  3972  3967   0   0:00.67 ??         0:00.88 postgres: wal writer process     
  103  3973  3967   0   0:00.18 ??         0:00.23 postgres: autovacuum launcher process     
  103  3974  3967   0   0:00.19 ??         0:00.21 postgres: stats collector process     
    0  3616  2726   0   0:00.04 ttys000    0:00.06 su postgres
  103  3967  3619   0   0:00.23 ttys000    0:00.34 postgres -D /usr/local/pgsql/data
    0  4559  4055   0   0:00.03 ttys001    0:00.05 su postgres
  103  5922  4560   0   0:00.01 ttys001    0:00.01 grep postgres

Thank you.

1
  • How you installed PostgreSQL? Have you modified any config files? What does which psql and which postgres reports? What does ps -eaf|grep postgres reports? Commented Jul 6, 2012 at 19:57

3 Answers 3

5

Mine was a homebrew install and here's what I did (brought me to a functioning psql with no version issues) -- I'm trying to install KyngChaos's mac build of postgresql

step 0:

brew uninstall postgresql

step 1:

which psql
/path/to/psql  #in my case: /usr/bin/psql
sudo rm /path/to/psql

step 2:

#inside ~/.bash_profile
export PATH=/usr/local/pgsql-9.3/bin:$PATH

step 3:

psql
#works
Sign up to request clarification or add additional context in comments.

2 Comments

Why did you remove the psql location? (Which is /usr/bin/psql)
Add a little more description to your steps, please?
4

I suppose that you've already had PostgreSQL installed before. Please, confirm this, 'cos in this case you will have to upgrade your database. This is important step, it is not possible to just upgrade the software.

Please, try stopping currently running server. First, check the source of currently running PostgreSQL:

sudo launchctl list | grep -Ei "macports|postgres"

Then perform:

sudo launchctl unload -w <OldPostgreSQL.plist>

and start a new server like this:

sudo launchctl load -w <NewPostgreSQL.plist>

I would expect new plist to be
/Library/LaunchDaemons/org.macports.postgresql91-server.plist.


In case you need to upgrade:

  1. Make sure you do a full dump of the database first with the new version of pg_dump.
  2. Execute new version of the initdb in the new PGDATA folder.
  3. Start a new server as outlined above.
  4. Upload the full dump.

Here's a small description I've came across on the subject. And this is the official PostgreSQL documentation on upgrading between major releases.

1 Comment

Note the small section at the bottom of the referenced documentation for non-pg_dump methods for upgrade. You can usually convert with just a few minutes of down time using pg_upgrade, even for terabytes of data. If you need down time measured in the seconds, look into the slony replication approach. Note that any of these methods requires having both versions of the software available at the same time.
1

This may happen if you already had a version of PostgreSQL before new installation.

Since you have two versions of PostgreSQL, you need two versions of psql. Basically, now when you type psql, your system may not be certain to which version of database you are trying to connect.

Remove the previous version. Or install new psql along with new version of the server.

1 Comment

mm that was something I want to avoid. But I guess there is no easy way to just update server. Thank you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.