psqlのバージョンをあげた話
CentOS6系でyumでインストールしたPostgreSQLに psql
で操作すると、以下のような警告が毎回出るので、対応した手順をメモします。
# psql -U postgres psql (8.4.20, server 9.3.10) WARNING: psql version 8.4, server version 9.3. Some psql features might not work. Type "help" for help.
PostgreSQLのバージョンは9.3.10
postgres=# SELECT version(); version ---------------------------------------------------------------------------------------------------------------- PostgreSQL 9.3.10 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16), 64-bit (1 row)
原因は、psqlの古いモジュールが使われているせいみたいなので、 rpmの古いモジュールをアンインストールします。
# rpm -qa | grep postgres postgresql93-9.3.10-1PGDG.rhel6.x86_64 postgresql93-server-9.3.10-1PGDG.rhel6.x86_64 postgresql-libs-8.4.20-4.el6_7.x86_64 postgresql93-libs-9.3.10-1PGDG.rhel6.x86_64 postgresql93-contrib-9.3.10-1PGDG.rhel6.x86_64 postgresql-devel-8.4.20-4.el6_7.x86_64 postgresql-8.4.20-4.el6_7.x86_64
元から入っていた(?)8.4.20系のモジュールを削除します。
# rpm -e postgresql-devel-8.4.20-4.el6_7.x86_64 # rpm -e postgresql-8.4.20-4.el6_7.x86_64 # rpm -e postgresql-libs-8.4.20-4.el6_7.x86_64
psqlコマンドを使うと、パスが無くなってしまっているのでエラーになりました。
# psql -bash: /usr/bin/psql: No such file or directory
9.3.10系のパスは /usr/pgsql-9.3/bin
なので、あとはどういう形でもいいのでパスを通せば完成です。
今回は下記一行を新規作成したファイルに追記しました。
# vim /etc/profile.d/psql93.sh export PATH=$PATH:/usr/pgsql-9.3/bin
警告が出なくなりました。よかった。
# psql -U postgres psql (9.3.10) Type "help" for help.
vagrantで作った環境に元から8.4.20系のpostgresモジュールが入ってたのかも知れません(未確認。。)