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でインストール可能
- 自環境に合ったリポジトリをここからインストール
- パスを通すのを忘れずに
https://amzn.to/2Xno724
コメント