升级到 ubuntu 11.04 后 postgresql 无法连接

升级到 ubuntu 11.04 后 postgresql 无法连接

我最近升级到了 Natty(Ubuntu 11.04),现在我的 postgresql 似乎无法连接。

我正在使用 pgadmin3,它引发以下错误:

无法连接到服务器:连接被拒绝服务器是否在主机“localhost”上运行并在端口 5432 上接受 TCP/IP 连接?无法连接到服务器:连接被拒绝服务器是否在主机“localhost”上运行并在端口 5432 上接受 TCP/IP 连接?

psql在终端上输入会出现以下错误:

psql:无法连接到服务器:没有此文件或目录服务器是否在本地运行并接受 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?

以下是文件var/run/postgresql/

total 8 
drwxrwsr-x  2 postgres postgres 100 2011-05-15 14:35 . 
drwxr-xr-x 19 root     root     720 2011-05-15 14:35 ..
-rw-------  1 postgres postgres   5 2011-05-15 14:35 8.4-main.pid 
srwxrwxrwx  1 postgres postgres   0 2011-05-15 14:35 .s.PGSQL.5433
-rw-------  1 postgres postgres  34 2011-05-15 14:35 .s.PGSQL.5433.lock

netstat 显示

sudo netstat -lp | grep postgresql 
unix  2      [ ACC ]     STREAM     LISTENING     7763     1025/postgres   /var/run/postgresql/.s.PGSQL.5433

我认为问题在于它看起来5432应该从 开始,5433但是我该如何改变这一点呢?

答案1

Postgres 的默认端口是 5432。因此,除非您另有指定,所有工具(pgadmin3、psql)都将默认使用此端口。

您的 Pg 在端口 5433 上运行。因此,要使用任何工具进行连接,您必须手动指定端口号。在 pgadmin3 上,它是连接 GUI 中的某个文本框(如果我没记错的话)。psql 采取的选项--port如下:

psql --port 5433 [database]

答案2

我刚刚升级了 PostgreSQL,遇到了同样的问题。问题是我的新 postgres 服务器运行版本 (9.1) 与我的旧服务器运行版本 (8.4) 并行安装。我猜默认配置是在备用端口 (5433) 上运行。

所以我的解决方案是确保新服务器在 5432 上运行。

因此编辑你的 postgres 配置

sudo -u postgres gedit /etc/postgresql/9.1/main/postgresql.conf

确保端口是5432:

port = 5432

并通过发出以下命令重新启动 postgres 服务器:

sudo -u postgres /etc/init.d/postgresql restart

一个未经测试的替代方法是先卸载旧的 postgres 服务器,然后再安装新版本。

答案3

psql 读取/etc/postgresql-common/user_clusters以了解/etc/postgresql/<n>/postgresql.conf从哪个 PostgreSQL 端口读取。

PostgreSQL 升级脚本中可能存在错误,因为在我的某个安装中,它只/etc/postgresql-common/user_clusters包含旧的已停止 PostgreSQL 安装条目。因此,psql 尝试使用旧的 PostgreSQL 端口,而不是新的 postgresql 安装端口。

您可以通过编辑/etc/postgresql-common/user_clusters和替换VERSION此文件中的值使其与您当前安装的值相同来解决此问题/etc/postgresql/<n>/

升级时同时有两个 postgresql 安装是正常的。这是必需的,以便您可以将数据库从 postgresql 安装迁移到另一个较新的安装(默认情况下,升级时新的 postgresql 安装将有空数据库)。因此,您无法删除旧的安装以使 psql 不尝试读取旧的 postgresql 安装配置。

相关内容