0

我无法启动 Postgres 服务器,每当我使用 pg_ctl 时,我都会收到以下错误 - 有人可以帮我解决这个问题吗?我使用 CHmod 更改了文件夹权限,并尝试使用 Sudo -s 运行,但问题仍然存在。

我犯的一个错误是,我在服务器运行时删除了 Postmaster.pid - 发布此问题后,当我尝试通过 pg_ctl 启动服务器时遇到此问题,而当我使用 pgadmin 时出现另一个错误。

这里的任何建议都会很有帮助-谢谢。

使用 Macos Shell 命令:

'pg_ctl start -D /Library/PostgreSQL/12/data 等待服务器启动....2020-05-05 11:40:04.838 IST [1216] 致命:数据目录“/Library/PostgreSQL/12/data”所有权错误 2020-05-05 11:40:04.838 IST [1216] 提示:服务器必须由拥有数据目录的用户启动。停止等待 pg_ctl:无法启动服务器 检查日志输出。

使用 pgadmin 错误如下:

'无法连接到服务器:连接被拒绝服务器是否在主机“localhost”(::1) 上运行并接受端口 5434 上的 TCP/IP 连接?无法连接到服务器:连接被拒绝服务器是否在主机“localhost”(127.0.0.1)上运行并接受端口 5434 上的 TCP/IP 连接?

ps:我修改了 hba.conf 和 postgres.conf 文件以允许从本地 ip 连接

5 月 5 日收到错误

等待服务器启动....2020-05-05 19:54:13.029 IST [7274] 日志:在 x86_64-apple-darwin 上启动 PostgreSQL 12.2,由 Apple LLVM 版本 6.0 (clang-600.0.54) 编译(基于在 LLVM 3.5svn 上),64 位 2020-05-05 19:54:13.030 IST [7274] 日志:侦听 IPv6 地址“::”,端口 5433 2020-05-05 19:54:13.030 IST [7274]日志:监听 IPv4 地址“0.0.0.0”,端口 5433 2020-05-05 19:54:13.030 IST [7274] 日志:监听 Unix 套接字“/tmp/.s.PGSQL.5433”2020-05-05 19:54:13.039 IST [7274] LOG:将日志输出重定向到日志收集器进程... 2020-05-05 19:54:13.039 IST [7274] 提示:未来的日志输出将出现在目录“log”停止等待。 . pg_ctl: 无法启动服务器

检查日志输出。

日志文件详细信息

2020-05-05 21:29:30.748 IST [8853] LOG:  invalid authentication method "0.0.0.0/0"
2020-05-05 21:29:30.748 IST [8853] CONTEXT:  line 80 of configuration file "/Library/PostgreSQL/12/data/pg_hba.conf"
2020-05-05 21:29:30.748 IST [8853] FATAL:  could not load pg_hba.conf
2020-05-05 21:29:30.749 IST [8853] LOG:  database system is shut down

Details of my pg_HBA conf 

# "local" is for Unix domain socket connections only
local   all             all            0.0.0.0/0                md5
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.

local   replication     all                                     md5
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5
host    all             all             0.0.0.0/0               md5

托管所有所有 ::/0 md5

最新的日志文件

bash-3.2$ cat postgresql-2020-05-05_221328.log 2020-05-05 22:13:28.794 IST [9834] LOG:数据库系统被中断;最后一次知道于 2020-05-05 22:13:09 IST 2020-05-05 22:13:28.872 IST [9834] 日志:数据库系统未正确关闭;自动恢复正在进行中 2020-05-05 22:13:28.874 IST [9834] LOG:重做开始于 0/17742C8 2020-05-05 22:13:28.874 IST [9834] LOG:无效记录长度在 0/1774300:想要 24,得到 0 2020-05-05 22:13:28.874 IST [9834] LOG: redo done at 0/17742C8 2020-05-05 22:13:28.881 IST [9832] LOG: 数据库系统已准备好接受连接......我在盯着服务器时也发现了这个错误,PID 每次都在改变..

pg_ctl:另一台服务器可能正在运行;无论如何都试图启动服务器等待服务器启动....2020-05-05 22:09:21.941 IST [9746] 致命:锁定文件“postmaster.pid”已经存在 2020-05-05 22:09:21.941 IST [9746] 提示:另一个 postmaster (PID 9735) 是否在数据目录“/Library/PostgreSQL/12/data”中运行?停止等待 pg_ctl: 无法启动服务器 检查日志输出。bash-3.2$ kill -9 9735 bash-3.2$ pg_ctl start -D /Library/PostgreSQL/12/data pg_ctl: 另一个服务器可能正在运行;无论如何尝试启动服务器等待服务器启动....2020-05-05 22:09:35.829 IST [9758] 致命:锁定文件“postmaster.pid”已经存在 2020-05-05 22:09:35.829 IST [9758] 提示:另一个 postmaster (PID 9747) 是否在数据目录“/Library/PostgreSQL/12/data”中运行?停止等待 pg_ctl:

检查日志输出。

502 9833 9832 0 晚上 10:13 ?? 0:00.00 postgres:记录器
502 9835 9832 0 10:13PM ?? 0:00.00 postgres:检查点
502 9836 9832 0 10:13PM ?? 0:00.04 postgres:后台编写器
502 9837 9832 0 10:13PM ?? 0:00.01 postgres: walwriter
502 9838 9832 0 10:13PM ?? 0:00.01 postgres: autovacuum 启动器
502 9839 9832 0 10:13PM ?? 0:00.01 postgres:统计收集器
502 9840 9832 0 10:13PM ?? 0:00.00 postgres:逻辑复制启动器
0 9641 9504 0 10:03PM ttys000 0:00.02 sudo -u postgres -s /bin/bash 502 9904 9642 0 10:37PM ttys000 0:00.00 grep postgres

4

2 回答 2

1

数据目录应该归 postgres 用户所有,并且只有用户可以访问(700 或 u+rwx)

这是否符合您的设置?

汤姆布朗

披露:我是 EnterpriseDB 的员工。

于 2020-05-05T13:08:06.680 回答
0

尝试运行此代码

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

于 2020-09-15T13:59:58.603 回答