我花了相当多的时间来处理这个 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 --add
postgresql
您还需要打开它:
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
以供全球使用。