同じUbuntuサーバーで複数バージョンのPostgreSQLを実行する


12

PostgreSQL 8.4と9.0を同じサーバー(Ubuntu Lucid)で実行しています。

両方をapt-getを使用してインストールしました(デフォルトのパッケージソースでは8.4、https: //launchpad.net/~pitti/+archive/postgresqlからppaを追加した後は9.0 )。

コマンドラインから「createdb」などのコマンドを実行するか、「psql」シェルを起動すると、私のシステムではデフォルトでPostgreSQLバージョン8.4が使用されます。

では、これらのコマンドで8.4ではなくPostgreSQL 9.0を使用するように強制するにはどうすればよいですか?


回答:


11

UbuntuがDebianと同じことを行うと仮定すると、2つのPostGreSQLインスタンスは異なるポートで実行されます。

設定ファイルを簡単にチェックして、どのバージョンがどのポートにあるかを確認できます。

$ grep -H '^port' /etc/postgresql/*/main/postgresql.conf
/etc/postgresql/8.4/main/postgresql.conf:port = 5432
/etc/postgresql/8.3/main/postgresql.conf:port = 5433

ほとんどのPostGreSQLコマンドは「-p ####」または「--port = ####」オプションを使用するため、それを使用して必要なバージョンを選択できます。


7

--clusterオプションを使用します(両方のクラスターがデフォルトのメインとして名前が付けられていると仮定):

psql --cluster 8.4/main
psql --cluster 9.0/main

一般的なスキーマは次のとおりです。

--cluster version/name      # for local connections
--cluster version/host:port # for TCP/IP connections

インストールされているすべてのクラスター(名前、ポート、ステータス、データディレクトリなど)を一覧表示するには、pg_lsclustersコマンドを使用します。

詳細man pg_wrapperを確認してください。


これは素晴らしいのですが、なぜこれがpsqlドキュメントにないのですか?
MarHoff 2017年

1
@MarHoff:これpg_wrapperはDebianの拡張です。基本的に、複数のクラスターの処理を容易にするいくつかの新しいオプションでコマンドをラップpsql(つまり、スクリプトpsqlへのシンボリックリンクpg_wrapper)します。
Grzegorz Szpetkowski 2017年

0

を使用dpkg -L <packagename>して、特定のパッケージが所有するファイルを確認できます。postgresql 9パッケージで実行し、そのバージョンのcreatedbコマンドが格納されている場所を確認します。

ほとんどのpostgresqlコマンドは、ポートまたはパスでデータベースを適切に選択してクロスバージョンで機能しますが、これはもちろん、開始スクリプトと作成コマンドには適用されません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.