我的机器(Ubuntu)上安装了 postgresql 9.1。我需要另一个可以与旧服务器一起运行的 postgresql 服务器。具体版本无关紧要,但我正在考虑使用 9.2 版本。我怎样才能正确安装和运行另一个 postgresql 版本而不破坏旧版本(例如升级)。因此,这些版本将在不同的端口上独立运行。例如,旧版本在 5432 上,新版本在 5433 上。
我需要这个的原因是为了两个 OpenERP 版本的数据库。如果我在单个 postgresql 端口上运行两个 OpenERP 服务器(具有不同的版本),它会崩溃,因为新版本的 OpenERP 检测到旧版本的数据库并尝试运行它,但它会崩溃,因为它使用了其他方案。
PS 或者也许我可以在两个端口上运行相同的 postgresql 服务器?
更新 到目前为止我尝试过这个:
/usr/lib/postgresql/9.1/bin/pg_ctl initdb -D main2
它创建了新的集群。我在新集群目录 postgresql.conf 文件中将端口更改为 5433。然后运行以下命令:
/usr/lib/postgresql/9.1/bin/pg_ctl -D main2 -l logfile start
我得到了回应server starting
。但是当我尝试使用以下命令进入新集群的模板数据库时:psql template1 -p 5433
我收到此错误:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5433"?
现在当我尝试使用以下命令停止服务器时:
/usr/lib/postgresql/9.1/bin/pg_ctl -D main2 -l logfile start
我收到此错误:
pg_ctl: PID file "main2/postmaster.pid" does not exist
Is server running?
所以我不明白服务器是否正在运行以及我在这里遗漏了什么?
更新
发现错误了。我真笨。我没有注意到当我在 .conf 文件中更改端口时,该行已被注释。所以实际上我第一次没有更改任何内容,但我认为我做了更改,并且它使用了默认的 5432 端口。