在 macOS 上启动 PostgreSQL 数据库时出错



我正在运行最新版本的macOS Sierra,并通过brew安装了PostgreSQL。然后我运行了命令:

pg_ctl -D /Users/tmo/PSQL-data -l logfile start

但收到输出:

waiting for server to start..../bin/sh: logfile: Permission denied
stopped waiting
pg_ctl: could not start server
Examine the log output.

编辑:重新启动我的操作系统并重新运行命令后...我现在收到略微修改的输出...但修改是显着的。

waiting for server to start.... stopped waiting
pg_ctl: could not start server
Examine the log output.
  1. "日志输出"存储在哪里?
  2. 如何使此命令工作?

问题可能是我可以看到的两件事之一:

  1. 数据库路径中的拼写错误:

    /Users/tmo/PSQL-data --
    • >/Users/tmp/PSQL-data
  2. 如果以上只是转录错误,我猜您的 postgres 用户对您设置日志文件的目录没有写入权限。-l开关后面的参数告诉 PG 将日志文件保存在何处。当您不向-l交换机提供路径,而只提供文件名时,它将使用您用于指定数据库集群的相同目录(带有 -D 标志)。 所以在这种情况下,PG 正在尝试写入/Users/tmp/PSQL-data/logfile,并收到权限错误。

要解决此问题,我会尝试:

  • 如果目录/Users/tmp/PSQL-data/不存在:

    sudo mkdir /Users/tmp/PSQL-data
    
  • 然后手动创建日志文件:

    sudo touch /Users/tmp/PSQL-data/logfile
    
  • 然后让 postgres 用户拥有该文件(我假设用户在这里postgres)

    sudo chown postgres /Users/tmp/PSQL-data/logfile
    

再试一次,希望您可以启动服务器。

警告:我不是macOS用户,所以我不确定/tmp文件夹的行为方式。 如果定期清除它,则可能需要指定不同的日志文件位置,以便无需在每次需要启动群集时都创建和调整文件。

最新更新