如何在Windows上启动PostgreSQL?


78

我已在Windows 10 PC上安装了Postgresql。我已经使用pgAdmin II工具创建了一个名为company的数据库,现在我想启动运行的数据库服务器。我不知道该怎么做。我已经在postgres命令行上运行了start命令,似乎什么也没发生。

我正在做的是:

postgres=# pg_ctl start
postgres=# pg_ctl status
postgres=# pg_ctl restart
postgres=# pg_ctl start company
postgres=# pg_ctl status

.....->我什么也没回来。


1
psql通常无论如何都会连接到正在运行的服务器。因此,如果您可以开始,psql那么Postgres已经在运行
a_horse_with_no_name

谢谢。我可以看到现在发生了什么。
肖恩

注意:pg_ctl命令与服务器相关,而net命令与服务相关

Answers:


50

pg_ctl是命令行(Windows)程序,而不是SQL语句。您需要从cmd.exe。或使用net start postgresql-9.5

在此处输入图片说明


如果通过安装程序安装了Postgres,则应启动Windows服务,而不要pg_ctl手动运行,例如使用:

net start postgresql-9.5

请注意,服务名称在您的安装中可能会有所不同。另一个选择是通过Windows控制面板启动服务


已经使用pgAdmin II工具创建了一个名为company的数据库。

这意味着Postgres已经在运行,所以我不明白为什么您认为您需要再次执行该操作。特别是因为安装程序通常会将服务设置为在Windows启动时自动启动。


您看不到任何结果的原因是,psql需要终止每个SQL命令,;在这种情况下,它只是在等待您完成语句。

有关更多详细信息,请参见此处:在psql中,为什么某些命令无效?


出现以下错误E:\ Softwares \ postgresql-12.4-1-windows-x64-binaries \ pgsql \ bin> pg_ctl -D datadir start pg_ctl:目录“ datadir”不存在
Mahender Reddy Yasa

这个答案是比上面的回答更好stackoverflow.com/questions/26441873/...
Mahender亚萨合雷迪

40

进入安装了Postgres的C驱动器中的bin文件夹。在git bash或命令提示符中运行以下命令:

pg_ctl.exe restart -D "<path upto data>"

例如:

pg_ctl.exe restart -D  "C:\Program Files\PostgreSQL\9.6\data"

另一种方式:在运行弹出窗口(Windows + R)中键入“ services.msc”。这将显示所有正在运行的服务,从列表中选择Postgres服务,然后单击启动/停止/重新启动。

谢谢


28

如果您通过Windows安装程序安装了postgres,则可以在Services中启动它,如下所示:

在此处输入图片说明


2
是的,是的!服务窗口实际上会告诉您失败的原因。无论是服务没有运行或无法启动不如预期,等等
亚瑟·塔拉索夫

对于Windows,这应该是正确的答案。我确定pg_ctl.exe可以正常工作,并且net start会执行与该答案相同的操作,只是从命令行开始,并且您必须知道服务的名称才能执行此操作(我猜测如果您知道该服务的名称, ,则无需回答此问题)。
贾里德

24

经过大量搜索和测试,我找到了解决方案:如果您在Windows中:

1-首先,您必须在PGAdmin查询工具中找到PG数据库目录,将其作为sql命令执行

$ show data_directory;

结果:

------------------------
- D:/PG_DATA/data      -
------------------------

2-在我的情况下,进入postgres的bin目录,它位于“ c:/ programms / postgresSql / bin”

并打开命令提示符(CMD)并执行以下命令:

pg_ctl -D "D:\PSG_SQL\data" restart

这应该做。


1
这是重启服务器的解决方案
ALWAN

使用pg_ctl -D "D:\PSG_SQL\data" start应启动服务器。
Tobias Marschall

1

如果出现错误“ psql.exe'不被识别为内部或外部命令,...”

可能有:原因

  • 系统找不到psql.exe工具,因为未在系统环境变量PATH中指定此工具的路径

或-您的PC上未安装PostgreSQL数据库客户端

由于您已经安装了PostgreSQL,所以后者不会成为问题(假设一切都按预期安装)

为了解决第一个问题,“在该工具所在的PostgreSQL安装文件夹中指定bin目录的完整路径。”

例如

路径:“ C:\ Program Files \ PostgreSQL \ 10 \ bin”



0

删除“ C:\ Program Files \ PostgreSQL \ 9.6 \ data”中的Postmaster文件

并重新启动PostgreSQL服务


0

首先找到您的二进制文件保存在哪里。获取终端矿的路径是

C:\ Users \ LENOVO \ Documents \ postgresql-9.5.21-1-windows-x64-binaries(1)\ pgsql \ bin

然后找到您的本地用户数据路径

C:\usr\local\pgsql\data

现在,我们必须在二进制终端路径中单击以下命令:

C:\ Users \ LENOVO \ Documents \ postgresql-9.5.21-1-windows-x64-binaries(1)\ pgsql \ bin>pg_ctl -D "C:\usr\local\pgsql\data" start

全部做完!

autovaccum启动器已启动!干杯!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.