317

每次我运行我的 rails 4.0 服务器时,我都会得到这个输出。

Started GET "/" for 127.0.0.1 at 2013-11-06 23:56:36 -0500

PG::ConnectionBad - could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
:
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `connect'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:542:in `initialize'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:79:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:53:in `connection'
 activerecord (4.0.0) lib/active_record/migration.rb:792:in `current_version'
 activerecord (4.0.0) lib/active_record/migration.rb:800:in `needs_migration?'
 activerecord (4.0.0) lib/active_record/migration.rb:379:in `check_pending!'
 activerecord (4.0.0) lib/active_record/migration.rb:366:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
 activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1613334440513032208__call__callbacks'
 activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:56:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
 railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
 quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
 actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
 rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
 rack (1.5.2) lib/rack/runtime.rb:17:in `call'
 activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
 rack (1.5.2) lib/rack/lock.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
 railties (4.0.0) lib/rails/engine.rb:511:in `call'
 railties (4.0.0) lib/rails/application.rb:97:in `call'
 rack (1.5.2) lib/rack/content_length.rb:14:in `call'
 thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
 thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
 thin (1.5.1) lib/thin/connection.rb:54:in `process'
 thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
 eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
 thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
 thin (1.5.1) lib/thin/server.rb:159:in `start'
 rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
 rack (1.5.2) lib/rack/server.rb:264:in `start'
 railties (4.0.0) lib/rails/commands/server.rb:84:in `start'
 railties (4.0.0) lib/rails/commands.rb:78:in `block in <top (required)>'
 railties (4.0.0) lib/rails/commands.rb:73:in `<top (required)>'
 bin/rails:4:in `<main>'

我正在运行 Mavericks OS X 10.9,所以我不知道这是否是问题所在。我已经尽我所能,但似乎没有任何效果。我现在已经多次卸载并安装了 postgres 和 pg gem。

这是我的 database.yml 文件

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: 
  password: 
  template: template0
  host: localhost
  port: 5432

test: &test
  adapter: postgresql
  encoding: unicode
  database: metals-directory_test
  pool: 5
  username: 
  password: 
  template: template0
  host: localhost
  port: 5432

staging:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  host: localhost

production:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  host: localhost

cucumber:
  <<: *test
4

35 回答 35

716

It could be as simple as a stale PID file. It could be failing silently because your computer didn't complete the shutdown process completely which means postgres didn't delete the PID (process id) file.

The PID file is used by postgres to make sure only one instance of the server is running at a time. So when it goes to start again, it fails because there is already a PID file which tells postgres that another instance of the server was started (even though it isn't running, it just didn't get to shutdown and delete the PID).

  1. To fix it remove/rename the PID file. Find the postgres data directory. On macOS using homebrew it is in /usr/local/var/postgres/, or /usr/local/var/log/ other systems it might be /usr/var/postgres/. On M1, it might be /opt/homebrew/var/postgresql.
  2. To make sure this is the problem, look at the log file (server.log). On the last lines you will see:

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

  1. If so, rm postmaster.pid

  2. Restart your server. On a mac using launchctl (with homebrew) the following commands will restart the server.

    brew services restart postgresql
    

OR on older versions of Brew

    launchctl unload homebrew.mxcl.postgresql.plist  
    launchctl load -w homebrew.mxcl.postgresql.plist
于 2014-01-29T02:05:57.717 回答
49

您需要重新启动 Postgresql Server

如果您使用的是 ubuntu,您可以通过以下命令重新启动Postgresql

sudo service postgresql restart
于 2016-02-08T12:03:47.730 回答
33

我已经按照 Chris Slade 的回答设法解决了这个问题,但是要重新启动服务器,我必须使用以下命令:

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

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

我在这里找到的(pjammer 的答案在底部)

于 2014-07-06T07:35:55.430 回答
27

您的系统中是否安装了 postgresql?如果没有,请观看Install postgresql。成功将postgresql集成到系统中后,您可以在系统终端中键入类似的内容:

which psql
#=> /usr/bin/psql

之后,您需要在 postgresql 中创建一个用户和数据库,如下所示:

sudo su - postgres
psql

然后您可以在终端中看到以下内容

postgres=#

在那里输入:

CREATE USER yourname WITH PASSWORD 'passwordhere';
CREATE DATABASE metals-directory_production  WITH OWNER yourname;
GRANT ALL PRIVILEGES ON DATABASE metals-directory_production TO yourname;

完成此操作后,您需要更正您的database.yml. 可能你需要这样的东西:

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: yourname
  password: passwordhere   ### password you have specified within psql
  host: localhost
  port: 5432               ### you can configure it in file postgresql.conf

此外,如果您在使用 postgresql 时遇到问题,最好检查pg_hba.conf

于 2013-11-07T06:45:08.447 回答
26
  1. 卸载 pg:

    gem uninstall pg
  2. 卸载 postgres:

    brew uninstall postgres
  3. 核对 postgres 文件夹,该文件夹可能与一堆陈旧的东西缠在一起:

    rm -rf /usr/local/var/postgres
  4. 重新启动(可能没有必要)

  5. 重新安装 pg:

    brew install postgres
  6. 我在 Chris Slade 的回答中的评论以艰难的方式开始 pg,现在我使用 brew 服务在很多方面简化了我的生活:

    brew install services
  7. 并以此开始 pg:

    brew services start postgresql
  8. 重新安装gem:

    gem install pg

还有你的叔叔。

于 2016-01-08T20:37:35.870 回答
22

要解决Postgres的此类问题并在上使用PostgresMac OSX,这可能是迄今为止我发现的最好和最简单的解决方案:

http://postgresapp.com/

只需下载,安装并快乐:)

于 2014-08-11T22:17:15.530 回答
15

检查文件postgresql.confubuntu/etc/postgresql/XX/main/postgresql.conf中)并查找显示以下内容的行:

listen_addresses="localhost"

尝试将其更改为:

listen_addresses="*"

它将接受每个 IP,接下来检查显示以下内容的行:

port=5432

并检查是否是您的 database.yml 的同一端口,默认情况下,在我的 postgresql-9.2 上使用5433而不是5432,不要忘记重新启动postgres 服务器,

祝你好运!

于 2014-02-05T10:45:15.207 回答
14

正如@Magne 所描述的,错误PG::ConnectionBad - could not connect to server: Connection refused可能会在PostgreSQL 的主要/次要版本升级(例如9.5 -> 9.69 -> 10)之后出现。

brew upgrade postgresql在 PostgreSQL 版本 9.6 发布后运行后出现此错误。问题是主要/次要版本升级需要额外的步骤才能将旧日期迁移到新版本。

如何检查这是否是您的问题

您可以通过检查随自制软件安装的最新 brew 公式 PostgreSQL 版本来检查这是否是问题...

$ brew info postgresql

/usr/local/Cellar/postgresql/9.5.4_1 (3,147 files, 35M)
Poured from bottle on 2016-10-14 at 13:33:28
/usr/local/Cellar/postgresql/9.6.1 (3,242 files, 36.4M) *
Poured from bottle on 2017-02-06 at 12:41:00

...然后将其与当前的 PG_VERSION 进行比较

$ cat /usr/local/var/postgres/PG_VERSION
9.5

如果 PG_VERSION 小于最新的 brew 公式并且差异是主要/次要版本更改,那么这可能是您的问题。

如何修复(即如何升级数据)

以下说明适用于从 9.5 升级到 9.6。根据您自己的升级更改版本号

步骤 1.确保 PostgreSQL 已关闭:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, with Homebrew...
$ brew services stop postgresql

步骤 2.创建一个新的原始数据库:

$ initdb /usr/local/var/postgres9.6 -E utf8

步骤 3.检查新旧二进制版本是什么:

$ ls /usr/local/Cellar/postgresql/
9.5.3   9.5.4   9.6.1

请注意,在此示例中,我将从 9.5.4 二进制升级到 9.6.1 二进制

步骤 4.使用pg_upgrade实用程序将当前数据迁移到新数据库

$ pg_upgrade \
  -d /usr/local/var/postgres \
  -D /usr/local/var/postgres9.6 \
  -b /usr/local/Cellar/postgresql/9.5.4/bin/ \
  -B /usr/local/Cellar/postgresql/9.6.1/bin/ \
  -v
  • -dflag 指定当前数据目录
  • -Dflag 指定要创建的新数据目录
  • -b指定旧的二进制文件
  • -B指定我们要升级到的新二进制文件

步骤 5.将旧数据目录移开

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

步骤 6.将新创建的数据目录移动到 PostgreSQL 期望的位置

$ mv /usr/local/var/postgres9.6 /usr/local/var/postgres

步骤 7.再次启动 PostgreSQL

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, if you're running a current version of Homebrew
$ brew services start postgresql

第 8 步。如果您使用 Rails 的 pg gem,您应该通过卸载并重新安装 gem 重新编译(如果您不使用 pg gem,请跳过此步骤)

$ gem uninstall pg
$ gem install pg

第 9 步(可选)在您确信一切正常后,您可以使用以下命令运行重新获得一些磁盘空间:

brew cleanup postgresql

...如果您真的很勇敢,可以使用以下命令删除旧的 PostgreSQL 数据目录

rm -rf /usr/local/var/postgres9.5/

(此答案基于一篇出色的博客文章https://keita.blog/2016/01/09/homebrew-and-postgresql-9-5/并添加了一些内容)

于 2017-02-08T13:12:31.247 回答
11

在 Osx Movaje 上更新我的 mac 后,我遇到了同样的问题。

我找到了这个解决方案:

首先在终端中尝试以下命令行:

brew services restart postgresql

如果没有任何改变:

ps aux | grep postgres

如果仍然没有任何变化:

ls -ls | grep post

最后一个修复它的命令,通过从 root 执行删除了 postgres 锁定文件:

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

接着 :

brew services restart postgresql

来自 berziiii:https ://github.com/ga-wdi-boston/capstone-project/issues/325

希望这会有所帮助:)

问候 !!

于 2018-11-01T13:11:55.543 回答
7

如上所述,我刚刚在我的 Mac 上打开Postgres 应用程序,单击 Open Psql,关闭psql窗口,在终端中重新启动我的rails 服务器,它再次工作,没有更多错误。

相信大象: http: //postgresapp.com/

于 2015-01-03T03:39:27.303 回答
7

这才是真正帮助我的。

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

参考: http ://alumni.lewagon.org/questions/60

于 2018-01-22T09:00:45.693 回答
5

找到它可能位于/usr/local/var/postgres/或 其中的 postgres 文件/usr/var/postgres/,然后删除该postmaster.pid文件夹中存在的文件。

于 2016-07-19T09:42:19.460 回答
5

如果您在brew upgrade将 postgres 升级到新的主要版本(f.ex或更高版本)后遇到此问题,请执行以下操作9.3.09.4.0

@dmitrygusev 来自https://github.com/Homebrew/homebrew/issues/35240的修复

遵循官方 [Postgresql] 迁移指南有所帮助:

brew switch postgres 9.3.5    # presuming you already installed 9.4.1
pg_dumpall > outputfile
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
mv /usr/local/var/postgres /usr/local/var/postgres.old
brew switch postgres 9.4.1
initdb -D /usr/local/var/postgres
psql -d postgres -f outputfile

就这样。检查导入是否顺利,然后删除备份:

rm outputfile
rm -Rf /usr/local/var/postgres.old

这里的问题是,在 postgres 的主要版本升级中,有必要重新创建/迁移您的数据库。并且可能是chown目录或手动调用initdb.

另请参阅:如何在不丢失数据的情况下将 PostgreSQL 从 9.6 版升级到 10.1 版?


如果您不使用 Homebrew,其他一些提示可能会派上用场:

手动停止 PG 服务器:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log stop

手动启动 PG 服务器:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

于 2015-07-19T07:31:09.133 回答
4

放入文件host: localhostdatabase.yml运行以下命令:

rake db:create db:migrate  
于 2014-12-31T03:54:43.213 回答
3

如果删除postmaster.pid不能解决问题,这对我有用:

cd /usr/local/var/
rm -rf postgres/
mkdir postgres
initdb --locale=C -E UTF-8 postgres/
brew services restart postgresql

感谢@spirito_libero 在此线程上的解决方案。

于 2020-12-28T23:34:21.723 回答
3

这发生在我升级 Postgres(通过 Homebrew)之后。我从版本 12 升级到了 13。

如果是这种情况,请尝试运行postgres -D /usr/local/var/postgres并检查输出。就我而言,它说database files are incompatible with server

您可能会收到 postgres.old 已存在的错误消息

Error: /usr/local/var/postgres.old already exists!

要解决这个问题,只需删除该文件

rm -rf /usr/local/var/postgres.old

修复数据库就像运行一样简单:

brew postgresql-upgrade-database
于 2021-03-14T23:02:39.727 回答
2

我今晚刚刚遇到了这个问题,正在研究我已经研究了一段时间的 Rails 应用程序。我的问题只是归结为我的 postgresql 服务器没有运行

我走到屏幕顶部(我在 Mac 上)并单击小象图标并单击“开始”。

打开我们的服务器没有打开。

希望这为某人提供了一个简单的解决方案。

于 2019-06-15T00:55:53.537 回答
2

我已经尝试了上面所有的答案,但它对我不起作用。

就我而言,当我检查登录时/usr/local/var/log/postgres.log。很好,没有错误。但我可以看到它正在监听我的本地 IPV6 地址"::1"

在我的database.yml它是这样的

host:     <%= ENV['POSTGRESQL_ADDON_HOST'] || '127.0.0.1' %>

我改变了它

host:     <%= ENV['POSTGRESQL_ADDON_HOST'] || 'localhost' %>

然后它起作用了

于 2020-11-23T09:31:35.023 回答
2

使用 Postgres 应用程序的 Mac 用户可能想要打开该应用程序(聚焦搜索 Postgres 或在菜单栏中找到大象图标)。其中您可能会看到带有消息的红色 X:“过时的 postmaster.pid 文件”。不幸的是,聚光灯搜索不会显示此文件的位置。单击“服务器设置...”,在打开的对话框中单击“显示”按钮打开数据目录。导航一个文件夹(对我来说是“var-10”),然后删除该postmaster.pid文件。

返回 Postgres 应用程序并单击开始按钮。那个红色的 X 应该变成带有“正在运行”消息的绿色复选标记。现在您应该能够像rails server在终端中一样成功运行 Rails 命令。

Postgres 应用服务器设置 - 显示数据目录

于 2018-04-04T21:15:13.170 回答
1

@Chris Slade 的回答帮助了我。

如果有用的话,我写了一个小脚本来杀死那些剩余的进程:

kill_postgres() {
  if [[ $* -eq "" ]]; then
    echo "Usage: 'kill_postgres <db_name>' to kill remaining instances (Eg. 'kill_postgres my_app_development')"
  else
    gksudo echo "Granted sudo"
    pids="$(ps xa | grep postgres | grep $* | awk '{print $1}' | xargs)"
    if [[ $pids -eq "" ]]; then
      echo "Nothing to kill"
    else
      for pid in "${pids[@]}"
      do
        echo "Killing ${pid}"
        sudo kill $pid
        echo "Killed ${pid}"
      done
      kill_postgres $*
    fi
  fi
}
于 2014-04-08T09:06:24.517 回答
1

我有同样的问题,这个解释为我解决了它:http: //blog.55minutes.com/2013/09/postgresql-93-brew-upgrade/

关键步骤是查看我的/usr/local/var/postgres/server.log的尾部,这让我看到真正的问题是什么,即我还没有完全完成升级 PostgreSQL 的过程

于 2014-03-17T14:20:12.757 回答
1

我只是运行这个命令sudo service postgresql restart ,一切都恢复了。

于 2015-10-20T05:14:47.993 回答
1

我知道这已经晚了,但可能会对某人有所帮助。我遇到了同样的问题。原来我有两个版本的 postgres 9.1 和 9.5。我卸载了 9.1 和 9.5 并再次安装了 9.5,它对我有用。

于 2016-06-23T11:02:57.023 回答
1

我在生产中遇到了同样的问题(开发一切正常),在我的情况下,数据库服务器与应用程序不在同一台机器上,所以最后起作用的只是通过编写迁移:

bundle exec rake db:migrate RAILS_ENV=production

然后重新启动服务器,一切正常。

于 2016-04-12T07:32:07.613 回答
1

我的问题出在我的application.yml文件中。url我的数据库heroku没有使用端口 5342。检查你的heroku配置var DATABASE_URL。确保与适用数据库的application.yml中的 was 完全匹配。

于 2015-09-23T16:31:40.930 回答
1

我有同样的问题。PostgreSQL我检查/var/log/postgresql. 文件/etc/postgresql/9.5/main/postgresql.conf中有一个无法识别的配置参数。评论错误行postgresql.conf解决了我的问题。

于 2017-03-24T16:00:43.520 回答
1

Homebrew 包管理器包括自动启动的launchctl plists。有关更多信息,请运行brew info postgres

手动启动:

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

手动停止:

pg_ctl -D /usr/local/var/postgres stop

自动启动:

“现在启动 postgresql 并在登录时重新启动:”

brew services start postgresql

于 2019-07-10T11:43:01.100 回答
0

您不必删除该postmaster.pid文件,因为这可能会导致数据损坏。

选项?简单kill的过程(不要使用kill -9,只需普通的 kill 就可以了)。

然后只需重新启动 postgres 服务器就可以了!

以下是实现这一目标的步骤:

  1. 找到并打开postmaster.pid文件(我的是在 Mac Sierra 上)

    vi ~/Library/Application\ Support/Postgres/var-10/postmaster.pid

  2. postmaster.pid复制 PID - 它是文件第一行的数字

  3. 用 杀死进程kill PID,例如,如果我的 PID 是 381,我会这样做kill 381
  4. 重新启动 Postres - 如果使用 brew,请执行brew services start postgresql. 或者如果使用 postgresapp,只需单击start按钮
于 2018-07-20T09:15:08.817 回答
0

我刚遇到这个问题,建议的解决方案都不适合我。经过大量的谷歌搜索,我确实找到了解决方案。这对我有用。

首先,我必须运行这个命令来启动服务器,我猜是设置配置文件的位置。

pg_ctl -D /usr/local/var/postgres start && brew services start postgresql

然后我运行这个命令来访问 postgres

psql postgres

然后在 postgres 提示符下输入“\du”来列出角色

postgres=# \du

缺少 postgres 角色,因此我必须使用此命令创建它

CREATE ROLE POSTGRES WITH SUPERUSER CREATEDB CREATEUSER CREATEROLE REPLICATION BYPASSRLS ;

这解决了我的问题,我希望这对其他人有帮助。

于 2017-12-31T11:01:20.190 回答
0

就我而言,存在权限问题。

当我看到日志时,我发现了问题,运行

cat /usr/local/var/log/postgres.log 

我发现

2020-07-17 15:08:47.495 PKT [16282] FATAL:  data directory "/usr/local/var/postgres" has invalid permissions
2020-07-17 15:08:47.495 PKT [16282] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).

我刚跑

sudo chmod -R 700 /usr/local/var/postgres

有效。

于 2020-07-17T10:22:37.043 回答
0

对于 MacOS,我使用这个:

brew info postgres

在最后的输出中,我看到:

...
To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start

所以我只是使用这个命令pg_ctl -D /usr/local/var/postgres start psql开始工作。

于 2020-12-23T07:49:04.173 回答
0

我停止了 rails 服务器,运行rake db:migrate并启动了我的rails s.

于 2016-11-30T00:50:18.227 回答
0

brew upgrade在更新了 postgresql之后,我遇到了这个错误。我从这篇很棒的帖子中确切地找到了如何解决我的问题。我能够让 postgres 备份并运行,甚至迁移到我所有现有的数据库。 https://coderwall.com/p/ti4amw/how-to-launch-postgresql-after-upgrade

于 2017-11-10T03:33:37.430 回答
0

我不得不重新安装我的 postgres,这里列出了很好的说明: https ://medium.com/@zowoodward/effectively-uninstall-and-reinstall-psql-with-homebrew-on-osx-fabbc45c5d9d

然后我必须创建 postgres 用户: /usr/local/opt/postgres/bin/createuser -s postgres

这种方法会破坏您所有的本地数据,因此请在需要时备份您的数据。

于 2019-08-20T19:29:55.160 回答
0

对我来说,这真的很简单:我有一个陈旧的postmaster.pid文件。

只需删除并重新启动 postgres 即可为我修复它:

rm '/Users/<username>/Library/Application Support/Postgres/var-10/postmaster.pid'
于 2021-02-26T08:43:04.793 回答