0

尝试在 OSX Mountain Lion 上设置 Postgres / PostGIS 以与 Django 一起使用。但是,出了点问题,我不知道如何解决。

$ createdb geo
createdb: could not connect to database postgres: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

$ postgres -D /usr/local/var/postgres
FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 221) running in data directory "/usr/local/var/postgres"?

$ pg_ctl -D /usr/local/var/postgres -l logfile start
pg_ctl: another server might be running; trying to start server anyway
server starting

然后我发现这个要点说如何在狮子上修复它。但是它对我不起作用:

$ kill -9 221
$ pg_ctl -D /usr/local/var/postgres stop
waiting for server to shut down.... done
server stopped

$ pg_ctl -D /usr/local/var/postgres start
pg_ctl: another server might be running; trying to start server anyway
server starting
FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 1436) running in data directory "/usr/local/var/postgres"?

另一种尝试:

$ cd /usr/local/var/postgres
$ mv postmaster.pid postmaster.backup
$ pg_ctl -D /usr/local/var/postgres start
server starting

$ LOG:  could not bind IPv6 socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
LOG:  could not bind IPv4 socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
LOG:  could not bind IPv6 socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
WARNING:  could not create listen socket for "localhost"
FATAL:  could not create any TCP/IP sockets

有人用山狮成功地做到了这一点吗?如果是这样,我错过了什么?感谢您对这个问题的帮助!

4

1 回答 1

1

这条信息:

createdb:无法连接到数据库 postgres:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受 Unix 域套接字“/var/pgsql_socket/.s.PGSQL.5432”上的连接?

表示您的 PostgreSQL 服务器不用/var/pgsql_socket作其 Unix 域套接字目录,该目录是服务器和客户端之间的集合点。这很常见,因为只有 Apple 附带 OSX 服务器的 PostgreSQL 使用该路径。顺便说一句,这就是 Apple 提供的createdb命令尝试连接到 Apple 配置的服务器的原因。

从那时起,有很多不同的解决方案可以解决这个问题,但更明显的一种是使用createdbPostgreSQL 安装附带的命令,而不是系统中预装的命令。

如果您需要进一步的帮助,您应该指定如何安装 PostgreSQL,因为有很多不同的软件包提供它,并且它们都使用不同的路径来避免相互踩踏。

自制软件更新

如果使用 brew,我建议在 superuser.com 上应用答案: 我应该如何在我的 Mac 上设置 PATH 变量以便找到安装 Hombrew 的工具?

大概你所指的 Postgres+Postgis 教程的作者PATH很久以前就改变了,忘了在他的文字中提到它。

完成后,该命令which createdb应返回自制版本,而不是Apple 版本/usr/local/bin/psql的初始版本。/usr/bin/psql

于 2013-07-01T19:06:03.137 回答