Postgresql服务无法在services.msc中启动。它在Window server 2008 R2中启动PostgreSQL服务时显示以下消息。
“本地计算机上的postgresql-x64-9.6服务已启动然后停止。如果某些服务未被其他服务或程序使用,则会自动停止。”
答案 0 :(得分:7)
我有同样的问题。我跟着@Craig Ringer的建议。当我检查事件查看器时出现此错误。2018-06-18 12:34:11.222 GMT [4200] FATAL: lock file "postmaster.pid" already exists
2018-06-18 12:34:11.222 GMT [4200] HINT: Is another postmaster (PID 6172) running in data directory "C:/Program Files/PostgreSQL/10/data"?
所以我删除了postgreSQL数据目录中的“postmaster.pid”文件,再次启动服务,这次服务正常启动。
此错误可能是由于postgreSQL服务的不完全关闭造成的。
答案 1 :(得分:2)
对于为什么会出现误导性错误消息的问题,我有一个附加的答案,该消息现在是较新的版本,即12.2与9.6,(“ postgresql-x64-12-本地计算机上的PostgreSQL 12服务器服务启动然后停止。如果其他服务或程序未使用某些服务,则它们会自动停止。)
显然,pg_hba.conf文件中的错误将导致出现以上错误消息,并且服务无法启动。
就我而言,我已经编辑了文件,但未能正确注释掉(#)注释。经过大量的Google搜索之后,我再也没有看到过提到的内容,但是DID最终记得仔细检查我的编辑,然后发现问题很简单。
我已修复它,该服务现在可以启动,没问题。
-Windows 10 x64 Enterprise 1909 18363.752 -PostgreSQL 12.2(Windows)
答案 2 :(得分:1)
我已经解决了同样的问题。
我在这里做了。
我删除了两个文件,然后重新启动服务。请在“ C:/ Program Files / PostgreSQL / 10 / data”目录中使用以下文件:postmaster.opts
,postmaster.pid
。
正如您看到@Abodesegun Ezekiel的答案一样,我还删除了一个名为“ postmaster.opts”的文件。
对我有用。
希望这会有所帮助。
答案 3 :(得分:1)
我的问题已解决,方法是将运行服务的帐户更改为“本地系统”,然后我就可以启动该服务。
答案 4 :(得分:0)
解决了我的问题。我已经对hba_file
中postgresql.conf
的路径进行了硬编码。这样可行。由于某种原因,Windows中存在路径名前缀,导致在pg_hba.conf
文件的错误路径中搜索。现在这个工作,我可以启动服务并打开数据库。
答案 5 :(得分:0)
在postgresql-x64-10上遇到此错误,并在Windows事件查看器(Windows日志->应用程序)中记录了以下内容:
这种情况下的问题原来是错误中标识的数据目录位于已断开连接的便携式磁盘上。磁盘重新连接到系统后,postgres服务就可以正常启动。
答案 6 :(得分:0)
出于某些原因,postgresql进程仍在后台运行。
如果系统强制关闭,则可能会遇到此问题。 解决方案:
Windows + X(打开任务管理器-进程)
找到所有正在运行的postgresql服务和“结束任务”。
所有过程结束后。您可以重新打开任务管理器以确保没有Postgres服务正在运行。
答案 7 :(得分:0)
在Windows-10中遇到与Postgresql-9.4
相同的错误。
就我而言,我在postgresql.conf
文件中进行了一些手动配置更新,并且不得不验证在postgresql.conf
文件中进行的配置更改的语法。我已按照以下步骤解决了该问题。
postmaster.pid
目录中的%POSTGRESQL-HOME%/9.4/Data/
文件postgresql.conf
和pg_hba.conf
文件中提供正确的语法(或引用)答案 8 :(得分:0)
更改登录帐户以开始该过程 Local System account
答案 9 :(得分:0)
对我来说,删除文件无效。 但是将postgres登录用户更改为“本地系统”后重新启动计算机即可。
答案 10 :(得分:0)
当您安装了2个版本(例如10和11)时,也会发生这种情况。 因此,在某些情况下,您想运行11,但是10已经启动并已经运行。
所以您要做的是停止10并尝试开始11。
在Windows中,您可以执行以下操作:运行->然后键入services.msc
并找到列出的2个服务,然后可以停止并启动。
答案 11 :(得分:0)
对我来说,只需删除 C:\Program Files\PostgreSQL\12\data
中的 som 文件,其中 12 是我的版本文件的名称是 =>postmaster.pid
和 postmaster.conf
然后尝试运行服务 agine 我认为它会工作