【2019年7月】CentOS6に最新版postgresqlをインストールする【備忘録】

Linux
スポンサーリンク

Linux系の記事が続きます。

 

スポンサーリンク

動機

psqlコマンドを使ってpgsqlサーバに対して接続しようとしたところ、以下のような警告メッセージが出力されました。

$ psql -w -U username -d dbname -h xxx.xxx.xxx.xxx
psql (8.4.20, サーバ 9.3.5)
 注意: psql バージョン 8.4, サーババージョン 9.3.
          psql の機能の中で、動作しないものがあるかもしれません。

どうやら、サーバのpostgresqlのバージョンよりも古いものを利用しているため、機能制限がかかってしまっているようです。

 

目的

以上の警告メッセージを解消するよう、クライアント側のpostgresqlのバージョンを上げようと思います。

とりあえず9.3.5以上。

できれば9.xの最新バージョンに上げます。

 

バージョンアップ手順

リポジトリのインストール

もちろんyumを利用します。ソースインストールなんてもってのほかです()

というか、yumでバージョン管理しないと何入れてたか忘れるんですよね。

CentOS6のBase-repoでのpostgresqlは8.4.20です。

これでは古いので、postgresql用のリポジトリをインストールしましょう。

# yum localinstall https://download.postgresql.org/pub/repos/yum/reporpms/EL-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm

依存性の解決をしています
 --> トランザクションの確認を実行しています。
 ---> Package pgdg-redhat-repo.noarch 0:42.0-4 will be インストール
 --> 依存性解決を終了しました。

これでいいですか? [y/N]y
 パッケージをダウンロードしています:
 rpm_check_debug を実行しています
 トランザクションのテストを実行しています
 トランザクションのテストを成功しました
 トランザクションを実行しています
   インストールしています  : pgdg-redhat-repo-42.0-4.noarch                                            1/1
   Verifying               : pgdg-redhat-repo-42.0-4.noarch                                            1/1
 インストール:
   pgdg-redhat-repo.noarch 0:42.0-4
 完了しました!

ちなみに、リポジトリのダウンロードはこちらからダウンロードしています。

インストールが完了すると、/etc/yum.repos.d/pgdg-redhat-all.repoというファイルが生成されております。

 

postgresqlのインストール

先ほどインストールしたリポジトリを使ってpostgresqlの最新版をyumでインストールします。

CentOS6でインストールすると、9.6がインストールされます。

# yum install postgresql

依存性の解決をしています
 --> トランザクションの確認を実行しています。
 ---> Package postgresql96.x86_64 0:9.6.14-1PGDG.rhel6 will be インストール
 --> 依存性の処理をしています: postgresql96-libs(x86-64) = 9.6.14-1PGDG.rhel6 のパッケージ: postgresql96-9.6.14-1PGDG.rhel6.x86_64
 --> トランザクションの確認を実行しています。
 ---> Package postgresql96-libs.x86_64 0:9.6.14-1PGDG.rhel6 will be インストール
 --> 依存性解決を終了しました。

インストール:
   postgresql96.x86_64 0:9.6.14-1PGDG.rhel6
 依存性関連をインストールしました:
   postgresql96-libs.x86_64 0:9.6.14-1PGDG.rhel6
 完了しました!

完了。

 

psqlコマンドのパスを通す

バージョンが上がったので再度pgsqlサーバに接続を試してみる。

$ psql -w -U username -d dbname -h xxx.xxx.xxx.xxx
 psql (8.4.20, サーバ 9.3.5)
  注意: psql バージョン 8.4, サーババージョン 9.3.
           psql の機能の中で、動作しないものがあるかもしれません。

(・3・)アルェー?

と思ったが、psqlをwhichすると原因が分かりました。

$ which psql
 /usr/bin/psql

psqlコマンドが古いpostgresqlのものを利用しているようです。

というわけで、新しい物に更新してあげます。

# rm /usr/bin/psql
# ln -s /usr/pgsql-9.6/bin/psql /usr/bin/psql
$ ls -l
 lrwxrwxrwx 1 root root 23  m月  d hh:mm yyyy /usr/bin/psql -> /usr/pgsql-9.6/bin/psql

OK!

再度接続してみると

$ psql -w -U username -d dbname -h xxx.xxx.xxx.xxx
 psql (9.6.14, サーバー 9.3.5)
 "help" でヘルプを表示します.

無事警告が消えました。

 

まとめ

  • postgres最新版はyumでインストール可能
  • 自環境に合ったリポジトリをここからインストール
  • パスを通すのを忘れずに
Bitly

 

コメント

タイトルとURLをコピーしました