Postgresql Postgres数据库本地安装/运行

Postgresql Postgres数据库本地安装/运行,postgresql,command-line,installation,osx-mountain-lion,postgis,Postgresql,Command Line,Installation,Osx Mountain Lion,Postgis,正在尝试在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 co

正在尝试在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
有人成功地与山狮合作过吗?如果是,我错过了什么?感谢您在这个问题上的帮助

此消息:

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

表示您的PostgreSQL server未使用
/var/pgsql_socket
作为其Unix域套接字目录,该目录是服务器和客户端之间的rendez-vous点。这是很常见的,因为只有苹果随OSX服务器提供的PostgreSQL才使用该路径。顺便说一句,这就是为什么苹果提供的
createdb
命令试图连接到苹果配置的服务器

从这一点来看,有很多不同的解决方案可以解决这个问题,但更明显的是使用PostgreSQL安装附带的
createdb
命令,而不是系统中预先安装的命令

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

针对自制软件的更新

如果使用brew,我建议在superuser.com上应用以下答案:

想必您所指的Postgres+Postgis教程的作者很久以前就改变了它的
路径
,忘了在他的文本中提到它


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

谢谢您的想法@Daniel。我使用自制软件安装了PostGREs,并遵循。你有没有办法解决这个问题,这样我就可以在django项目中使用我的PostGREs数据库?谢谢你的想法!谢谢你,丹尼尔。我按照链接帖子中的说明,将
usr/local/bin
放在
usr/bin
上方,但当我尝试
哪个createdb
时,它输出的是
/usr/bin/createdb
,而不是上面列出的内容。我是否缺少正确链接路径的内容?谢谢你的想法@你是说编辑路径?你在一个新的终端开始了一个新的会话吗?谢谢@Daniel。是的,我编辑了
/etc/path
,正如您链接的帖子中接受的答案所建议的那样。我还启动了一个新的终端会话和
,createdb
现在返回
/usr/local/bin/createdb
。。关于如何解决这个问题有什么想法吗?谢谢你的想法@NickB:现在回到问题的开头,您可以重试
createdb geo
,希望它不会无法连接到postgresql。