系统重置后原来的程序目录还在,但是有的用不了了,尤其是原来作为系统服务的程序,我原来安装过postgresql,数据data也都在,但是从系统服务里面看不到了,直接运行启动不了,然后就按照下面的办法重新注册了一下服务就好了。
执行前请注意 :此方法要求你的数据目录(data文件夹)是完整且已被初始化 的。如果data目录为空,服务会注册成功但无法启动。通常正常安装过的PostgreSQL,其data目录都是就绪状态。
-
以管理员身份 打开命令提示符(在搜索框输入
cmd,然后右键选择"以管理员身份运行"),这一步很关键,否则注册可能失败。 -
同样,先进入
bin目录:
bash
cd /d "C:\Program Files\PostgreSQL\版本号\bin"
- 执行注册命令。这是一个完整的示例,你可以根据需要调整
bash
pg_ctl register -N PostgreSQL -D "C:\Program Files\PostgreSQL\版本号\data" -S auto -o "-p 5432"
命令参数说明:
-
-N PostgreSQL:指定服务的名称,你可以自定义,比如-N MyPostgresDB。 -
-D "你的data路径":指定数据目录的位置。 -
-S auto:设置服务为"自动"启动(开机自启)。如果希望手动启动,可以改为-S demand。 -
-o "-p 5432":指定服务启动时的端口号,默认为5432。如果你的端口不是这个,请修改。
注册成功后,系统会提示操作完成。
现在,你就可以像操作其他Windows服务一样来管理它了:
bash
# 启动服务
net start PostgreSQL
# 停止服务
net stop PostgreSQL
你也可以在任务管理器的"服务"选项卡中找到你刚刚注册的服务名(如PostgreSQL),并进行启动、停止或设置为开机自启。
