我无法正确配置 Postgres

我无法正确配置 Postgres

我花了相当多的时间来处理这个 postgresql 更新,但我就是无法正确配置它。我最近从 9.0 升级到 9.1,但我无法正确配置 Postgres 9.1。

我希望它在启动时启动,所以我去找到 etc/init.d 中的 postgres 文件,并用源文件附带的脚本(在 中找到的 linux 脚本/contrib/start-scripts)替换它。

我只更改了以下一些内容:

# Installation prefix
prefix="/usr/local/pgsql"

# Data directory
PGDATA="/var/lib/postgresql/9.1/main"

# Who to run the postmaster as, usually "postgres".  (NOT "root")
PGUSER=postgres

# Where to keep a log file
PGLOG="/var/log/postgresql/9.1"

然后我安装并运行chkconfig --add postgresql。从我所看到的,rhN 目录似乎已更新。但不幸的是,Postgresqk 不起作用,它没有启动,或者至少,我认为它没有启动。我错过了什么步骤吗?

另外,当我运行时/usr/local/pgsql/bin/psql,错误显示:

Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

而在旧服务器未运行时运行其 psql 命令则得到以下结果:

Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

那个域套接字目录是什么?我需要更改它吗?

那么,我该如何让它启动呢?如果它有帮助的话,我正在运行 Ubuntu 10.04 LTS。

最后,我知道问多个问题是不礼貌的,但我认为对这样的小问题再问一个问题会很不礼貌:我还想这样,如果我在终端中输入 postgres 命令(例如 psql),它应该运行新的 postgres 命令,而不是像现在这样运行旧的命令。我在哪里可以更改这一点?

感谢你的帮助。

答案1

然后我安装并运行了chkconfig --addpostgresql

您还需要打开它:

chkconfig postgresql on

服务器是否在本地运行并接受 Unix 域套接字“/tmp/.s.PGSQL.5432”上的连接?

你开始了postgresql嗎?

$ ps -ef | grep postgre

那个域套接字目录是什么?我需要更改它吗?

它包含 Unix 域套接字,服务器将监听来自客户端的连接。您无需更改(可以使用 来完成unix_socket_directory)。


现在,问题是,运行命令时我仍然需要写出目录的完整位置。嗯,我该如何解决这个问题。

通过在您的中$PATH插入/附加以下行将其添加到环境变量中:~/.profile$HOME

export PATH=$PATH:/usr/local/pgsql/bin

使此操作生效:

$ source ~/.profile

或者:

$ . ~/.profile

您还可以添加/etc/profile以供全球使用。

相关内容