Postgres无法连接到服务器


415

在进行brew更新和brew升级后,我的postgres遇到了一些问题。我尝试卸载postgres并重新安装,但效果不佳。

这是错误消息。(当我尝试进行rake db:migrate时,我也收到此错误消息)

$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我该如何解决?

Mac版本:美洲狮。

自制版本:0.9.3

postgres版本:psql(PostgreSQL)9.2.1

这就是我所做的。

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

现在,当我重新安装好礼后,当我使用 $ psql,它不会显示任何错误消息。

但是我rake db:migrate在我的rails应用程序中运行,它显示:

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"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

最后,我找到了解决方案。

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

这个解决方案有点棘手,但可以。希望任何人都有更好的解决方案

更新资料

这对我也适用。

rm /usr/local/var/postgres/postmaster.pid

3
我遇到了完全相同的问题,但是您的解决方案对我不起作用。我认为这是一个权限问题,但我不知道文件权限可以解决它。
ajbraus

对于那些通过Homebrew安装PG并遇到问题的人,我找到了另一个答案。只需卸载pg gem并使用Homebrew配置重新安装。请参阅stackoverflow.com/a/19609228/1072058的答案。
zquintana


1
启动postgres。
atw

4
使用以下命令将现有版本升级到较新版本 brew postgresql-upgrade-database

Answers:


799

有类似的问题;pid文件阻止了postgres的启动。要解决这个问题:

rm /usr/local/var/postgres/postmaster.pid

然后一切都好。


4
在更新/重新启动后看到此问题后,这在​​OSX Mavericks上为我工作。
eprothro 2013年

3
@jstafford,谢谢,我已经解决了!:)解决方法是通过homebew卸载,然后立即重新启动计算机,这样便可以重新安装postgres。旧版本在后台运行,每次我尝试重新安装postgres时都会创建文件并发生冲突。
betoharres 2014年

199
这在小牛上对我不起作用:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
这对我有用,在删除后我必须开始使用postgres。#pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start
RicardoCastañeda15

12
我建议添加服务器日志以确保这实际上是问题所在:tail /usr/local/var/postgres/server.log
Josh Bodah,2015年

255

有时候这可能是postgres升级的问题。

就我而言,它是从9.3升级到9.4时发生的。

看到 http://www.postgresql.org/docs/9.4/static/upgrading.html

OS X /自制软件:

尝试跑步 postgres -D /usr/local/var/postgres -如果postgres无法启动,它将为您提供更多详细的输出。

就我而言,运行rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8删除了我的旧数据库,然后重新初始化了postgres db模式。

感谢https://github.com/Homebrew/homebrew/issues/35240提供的解决方案。

重新生成数据库(使用rake db:create)后,一切再次正常。


1
这对于我在优胜美地上安装的自制软件postgres很有用。
cpursley's 2015年

7
如果运行的postgres -D /usr/local/var/postgres告诉你,数据目录与Postgres的较旧的,不兼容的版本初始化,你希望失去你的本地数据,你可以试试这个线程
内森龙

运行上述命令后,我运行了:pg_ctl -D /usr/local/var/postgres -l logfile start然后我的服务器在后台启动
Tommyixi 2016年

5
brew services start postgres在OSX上使用,而不是在后台启动postgrespostgres -D /usr/local/var/postgres
Mike Andrianov

1
@coffekid我有同样的问题,以及与此指令固定它:stackoverflow.com/questions/24379373/...
米卡沃尔特


41

如果使用brew无法安装和卸载postgres,请查看您的postgresql安装日志,或:

postgres -D /usr/local/var/postgres

如果看到这种输出:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

然后尝试以下操作:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

然后启动服务器:

pg_ctl -D /usr/local/var/postgres -l logfile start

资源


2
当原因不同于接受的答案(即数据库文件与当前版本不兼容)时,此方法有效。既然那一直是我的问题,我赞成。
Falk Schuetzenmeister

1
这个命令对我有用。
Ccr

适用于Mojave
10.14.6

34

在优胜美地上,如果pid文件阻止了Postgres的启动,并且您有一个launchctl守护程序试图(但失败)加载数据库守护程序,那么您将需要卸载plist文件:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

然后删除pid文件

$ rm /usr/local/var/postgres/postmaster.pid

然后重新加载launchctl守护程序

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

对于阅读本文并使用Postgres.app的任何人,您可能都需要host: localhost在database.yml中。http://postgresapp.com/documentation#toc_3


这样做会将连接从套接字更改为TCP连接,这可能会带来负面影响。见stackoverflow.com/questions/6770649/...
布雷特Bim的

1
嗯,实际上,如果您不赞成...也许不说为什么?meta.stackoverflow.com/questions/252297/…或也许说为什么,但是先注销,以便您匿名。
David Winiecki 2014年

我认为这次否决是因为最初的问题不是针对Postgres.app,而是针对Homebrew。因此,尽管答案在某处可能有用,但它并未回答问题。
Brian Dear

链接似乎没有到达任何特定的位置(并且过去搜索“ localhost”没有结果),但这只是为我解决了一个小时的问题。
styty4bit”

25

升级数据库对我有用

brew postgresql-upgrade-database


👍✅⭐️🙏谢谢Tomer!在MacOS Mojave 10.14.6上从6/2/20从9.4升级到12的工作对我来说很有效
Rob Bednark

19
brew services start postgres 

为我工作!


17

检查套接字文件是否存在。

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

如果没有,请检查您的postgresql.conf中unix_socket_directory的更改。

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
这是我的电脑回复。$ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
加里·莱

29
最后,我找到了解决方案。$ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/这个解决方案有点棘手,但可以。希望任何人都有更好的解决方案
Gary Lai)

干得好@GaryLai。很奇怪,我不必对我的自制postgresql做同样的事情
jrwren 2012年

2
这可能会对那里的人们有所帮助:github.com/mxcl/homebrew/issues/14527
AdamT

14

该问题也可以归因于崩溃的进程,该进程使postmaster.pid文件滞后了。我这样做,工作是:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

10

问题是因为端口5432上已经有正在运行的服务,并且我们无法通过该端口建立psql套接字连接。

我删除了套接字文件

rm -rf /tmp/.s.PGSQL.5432/

然后我重新初始化了postgres服务

postgres -D /usr/local/var/postgres

这对我有用。


8

解决此问题的最简单方法是

brew reinstall postgresql

这将使您的用户权限等保持完整,并且所有内容都将重置为新的。一直工作!


像冠军一样工作!!!这都是必需的。
Akash K

7

更改postresql或database.yml配置设置,更改$ PATH或创建符号链接对我来说都是不必要的。我所需要做的就是gem uninstall pg然后bundle(或gem install pg)。

问题在于pg gem已在自制的postgres之前安装,因此从MacOS随附的postgres版本中获取设置。重新安装它(并因此重建本机扩展)解决了该问题。


只是想说一声谢谢。我刚刚在macOS上升级了PostgresApp,尽管我可以使用psql进行连接,但无法通过Rails连接。卸载并重新安装pg gem只是票证!:)
craig1410 '18

7

当我从9.3.4升级到9.5时,这发生在我身上,因为不升级就无法兼容数据库。

我使用pg_upgrade如下:

停止postgres

$ brew services stop postgresql

升级数据库:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

存档旧数据库:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

重新启动postgres:

 $ brew services start postgresql

更新的宝石(用于轨道/活动记录):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install

这些说明也位于collectionidea.com/blog/archives/2016/01/08/…上,并且当从9.4.0升级到9.6.3时仍然对我有用。我不需要手动对.pid文件做任何事情。
Jan Hettich

7

这实际上是您应该执行的操作:

您应该查看/usr/local/var/postgres/postmaster.pid

然后查看文件的第一行-这是错误的PID

ps aux | grep <PID>

例如:

ps aux | grep 12345

然后做

kill <PID>

例如

kill 12345

假设它仍在运行

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

不要听取已接受的答案,这是不好的,会破坏您的数据!!!


谢谢,这对我有用。实际上,仅删除接受的答案中的postmaster.pid是不够的。
安倍·佩特里罗

4

Psql选项

-h主机名--host =主机名

:指定运行服务器的计算机的主机名。 如果该值以斜杠开头,则将其用作Unix域套接字的目录。

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

使用-host选项运行psql

$ psql -p 5433 -h /var/run/postgresql

无需建立软链接


4

在MacOS Sierra上也遇到了这个问题,当我们如上所述运行pg_ctl时,出现了以下错误pg_ctl: no database directory specified and environment variable PGDATA unset。因此,我们按照此处解决问题的步骤进行操作,即:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

如果postgres是使用自制软件安装的,则可以通过运行以下命令解决此问题:

brew link postgres


4

如果在不退出psql的情况下关闭系统,则postgres将不会删除某些文件。

我在位置usr / local / var / postgres中找不到文件postmaster.pid

所以我做了以下事情:

brew服务启动PostgreSQL

上面的命令应该让您启动postgres


3

在尝试还原/删除/创建数据库时,其他进程正在访问它们时,我遇到了这个问题。MacOSX / Homebrew修复为:

  1. 关闭所有其它的接入流程rails serverrails consoleguard,等...
  2. 使用在中找到的命令加载/卸载 brew info postgres
  3. 从之前运行恢复/删除/创建

3

FWIW今天发生在我身上,但是发生的是当时我正在运行Ubuntu更新,这可能是在更新Postgres。更新完成后,我就可以顺利进行连接。

为了完整起见,我试图从Rails控制台从数据库检索记录:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

3

看来您的psql没有运行。您应该在连接之前运行它。您只能使用Mac OS的Postgres.app来做到这一点。(下载并安装此应用程序http://postgresapp.com)打开该应用程序,您已准备好PostgreSQL服务器并等待新的连接。关闭应用程序,然后服务器关闭。您也可以在http://www.postgresql.org/download/macosx/中找到此信息。希望这会帮助你。


1
虽然此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。
Kmeixner,2015年

这个问题专门针对自制安装而不是Postgres.app安装。尽管此答案很有帮助,但不能回答问题。这就像说“改为使用MySQL”。
布莱恩·迪尔

3

这是因为先前的服务器仍在运行,请尝试关闭所有内容并重新运行您的应用程序。


3

对于那些使用此命令但不起作用或文件不存在并且正在使用Ruby on Rails的用户

rm /usr/local/var/postgres/postmaster.pid

或任何其他命令,只是继续失败。

我解决了使用Brew卸载此问题。我不得不用brew卸载2次,因为在第一次卸载时,将保留另一个版本的postgresql,而在第二次卸载时,该过程将完成。

使用Brew安装Postgresql

然后删除,创建和迁移项目的数据库

(别忘了启动PostgreSQL服务器)


3

我遇到了同样的问题,因为我在代码中使用了错误的Postgres用户名。我登录到postgres psql -d postgres并输入\du以获取角色名称和正确的Postgres用户名。

因此,当您遇到此问题时,您需要确保您使用的是正确的Postgres用户名,密码,主机名和数据库...

希望这会帮助任何人


3

¿最近是否更改了pg_hba.conf?如果您只是检查输入是否有错字:

“本地”仅适用于Unix域套接字连接

本地所有所有密码

IPv4本地连接:

托管所有127.0.0.1/32密码

IPv6本地连接:

托管所有所有:: 1/128密码

有时候,一个简单的错误会使我们头疼。我希望能有所帮助,对不起,如果我的英语不好。


3

当postgres服务器未运行时,会发生这种情况。通过MAC上的Homebrew正确安装Postgres的步骤:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [这将初始化postgres以使用给定目录作为数据库目录。通常,不建议将用户目录用于数据库存储。编辑sudoers文件以添加initdb和类似命令,然后在/ usr / local / var / postgres上运行initdb]

  3. pg_ctl -D /Users/<username>/db -l logfile start [在成功完成步骤2之后,将提示您运行步骤3。此命令手动启动服务器。]


2

我遇到了同样的错误。事实证明,postgres根本没有运行(它通常总是在后台运行,但是由于某种原因,它今天并没有运行)。

如果是这种情况,只需postgres在项目目录的命令行中键入


2

经过大量的来回操作,它确实可以归结为pg我使用的gem版本。在特立独行者上,pg版本0.15.1无法连接到端口5432,但版本0.17.1可以正常使用-非常奇怪。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.