我想让Postgres 9.2.4在Windows 7上作为服务运行。安装postgres后,服务运行良好。但是,将postgres设置为另一个程序的服务器后,该服务停止运行。当我现在尝试启动服务,我得到一个消息说:PostgreSQL 9.2.4(Windows 7) - 服务无法启动,“无法加载pg_hba.conf”
“PostgreSQL的-x64-9.2 - 本地 计算机上PostgreSQL服务器9.2服务启动,然后停止一些服务自动停止,如果 他们没有被其他服务或程序使用。“
当我尝试运行应该使用数据库服务器的程序,我得到这个错误:
“的一个问题是在试图登录或创建 生产数据库中遇到详情:莫非无法连接到服务器,可能 无法连接到远程套接字应用程序现在必须关闭”
我曾经也遇到过这样的错误,一旦同时打开同一个程序:
。“试图登录或创建生产数据库时遇到问题。详细信息:FATAL:无法加载的pg_hba.conf的 应用程序必须立即关闭”
我已经尝试运行该服务登录作为本地系统账户,以及我自己的帐户(在Postgres服务属性) 。无济于事我还试图重新启动我的电脑有很多故障排除后在网上,我得知要检查好东西是pg_log文件下面是最新的pg_log项的内容:。
2013-05-29 14:59:45 MDT LOG: database system was interrupted; last known up at 2013-05-29 14:58:01 MDT
2013-05-29 14:59:45 MDT LOG: database system was not properly shut down; automatic recovery in progress
2013-05-29 14:59:45 MDT LOG: record with zero length at 0/175BB98
2013-05-29 14:59:45 MDT LOG: redo is not required
2013-05-29 14:59:45 MDT LOG: database system is ready to accept connections
2013-05-29 14:59:45 MDT LOG: autovacuum launcher started
2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT: line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL: could not load pg_hba.conf
2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT: line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL: could not load pg_hba.conf
2013-05-29 15:09:03 MDT LOG: received fast shutdown request
2013-05-29 15:09:03 MDT LOG: aborting any active transactions
2013-05-29 15:09:03 MDT LOG: autovacuum launcher shutting down
2013-05-29 15:09:03 MDT LOG: shutting down
2013-05-29 15:09:03 MDT LOG: database system is shut down
似乎遇到与pg_hba.conf文件有关的问题,如下所示:
local all all trust
host all all 127.0.0.1 255.255.255.255 trust
host all all 0.0.0.0 0.0.0.0 trust
根据网上的许多建议,我尝试编辑顶端行到一些不同的选择(主机所有所有信任/主机所有127.0.0.1/32信任/主机所有192.168.0.100/24信任等) 。这对我来说很有意义,因为日志文件说本地连接不被postgres支持,并且也指向该行。但是,我的更改没有任何影响。每次更改后我都尝试重新启动计算机,但没有任何区别。
当我搜索pg_hba.conf文件通常的样子的例子时,这些例子与我的文件略有不同。我注意到在PostgreSQL程序文件中,除了pg_hba.conf之外,还有一个“20130529-150444-old-pg_hba.conf”文件,这个文件看起来更像我在网上找到的例子。此文件的注释若干行,这些最后几行之前:
# TYPE DATABASE USER ADDRESS METHOD
# 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.
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
我希望,这是原来的pg_hba.conf文件,而且如果我更换了新的文件与旧的内容,Postgres的会重新开始工作。没有这样的运气。我一直希望能够在pg_log中记录更多的错误文件,以查看前面说过的错误是否已经消失或者更改为其他内容,但是没有更多的文件被记录。
我一直在线疑难解答几天,没有发现我的工作。对不起,有这么长的问题,但我想彻底,并包括所有相关信息。如果有人能够解决这个问题或提供建议,我将不胜感激。
谢谢,这个工作对我来说,虽然增加下面一行包括我的本地IP(从本地虚拟机连接)做了诀窍:'主机全部192.168.1.49/32 md5' –
这是唯一的解决方案,为我工作。谢谢! – profimedica
当我尝试启动postgres时,在conf文件中使用这个或任何ipv4变体都会导致相同的错误。 – Amalgovinus