Як я можу запустити PostgreSQL в Windows?


81

Я встановив Postgresql на своєму ПК з Windows 10. Я використав інструмент pgAdmin II для створення бази даних під назвою компанія, і тепер я хочу запустити запущений сервер баз даних. Я не можу зрозуміти, як це зробити. Я запустив команду start у командному рядку postgres, і нічого не здається.

Що я роблю:

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команда послуги , пов'язаний

Відповіді:


52

pg_ctlє програмою командного рядка (Windows), а не оператором SQL. Вам потрібно зробити це з a cmd.exe. Або використовуватиnet start postgresql-9.5

введіть тут опис зображення


Якщо ви встановили Postgres через інсталятор, вам слід запустити службу Windows, а не запускати pg_ctlвручну, наприклад, використовуючи:

net start postgresql-9.5

Зверніть увагу, що назва послуги може відрізнятися від інсталяції. Інший варіант - запустити службу через панель керування Windows


Я використав інструмент pgAdmin II для створення бази даних під назвою компанія

А це означає, що Postgres вже працює, тому я не розумію, чому ви думаєте, що вам потрібно це зробити ще раз. Особливо тому, що програма встановлення зазвичай встановлює службу для автоматичного запуску при запуску Windows.


Причиною того, що ви не бачите жодного результату, є те, що psqlкожна команда SQL повинна бути завершена; у вашому випадку це просто чекає, поки ви закінчите оператор.

Детальніше див. Тут: Чому в команді psql деякі команди не мають ефекту?


потрапляння нижче помилки E: \ Softwares \ postgresql-12.4-1-windows-x64-binaries \ pgsql \ bin> pg_ctl -D startdir start pg_ctl: каталог "datadir" не існує
Mahender Reddy Yasa

Відповідь на це питання краще , ніж вище відповідь stackoverflow.com/questions/26441873 / ...
Mahender Reddy Яс

44

Зайдіть до папки bin на диску C, де встановлено Postgres. запустіть таку команду в git bash або командному рядку:

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

Приклад:

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

Інший спосіб: введіть "services.msc" у спливаючому вікні запуску (windows + R). Це покаже всі служби, що працюють Виберіть службу Postgres зі списку та натисніть на пуск / зупинка / перезапуск.

Дякую


31

Якщо ви встановили postgres за допомогою інсталятора Windows, ви можете запустити його в службах приблизно так:

введіть тут опис зображення


2
Так, так, це! Вікно Служби насправді повідомить вам причину несправності. Незалежно від того, працює служба чи не запускається, як очікувалось, тощо
Артур Тарасов

Це має бути правильною відповіддю для Windows. Я впевнений, що pg_ctl.exe працює, а net start робить те саме, що і ця відповідь, за винятком командного рядка, і для цього потрібно знати назву служби (що, я здогадуюсь, якщо ви знаєте назву служби , вам не потрібно відповідати на це запитання).
Джаред,

24

Після багатьох пошуків та тестів я знайшов рішення: якщо ви перебуваєте у Windows:

1 - спочатку ви повинні знайти каталог баз даних PG, виконати команду як команду sql в інструментах запиту pgAdmin

$ show data_directory;

результат:

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

2 - перейдіть до каталогу bin postgres, у моєму випадку він знаходиться "c: / programms / postgresSql / bin"

і відкрийте командний рядок (CMD) і виконайте цю команду:

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

Це має зробити це.


1
це рішення перезапустити сервер
ALWAN

Використання pg_ctl -D "D:\PSG_SQL\data" startповинно запустити сервер.
Тобіас Маршалл,

1

Якщо ви отримуєте помилку "psql.exe 'не розпізнається як внутрішня чи зовнішня команда, ..."

Можуть бути: Причини

  • Система не може знайти інструмент psql.exe, оскільки шлях до цього засобу не вказаний у змінній системного середовища PATH

або - клієнт бази даних PostgreSQL не встановлений на вашому ПК

Оскільки ви вже встановили PostgreSQL, останній не може бути проблемою (за умови, що все встановлено належним чином)

Для того, щоб виправити перший, " будь ласка, вкажіть повний шлях до каталогу bin в папці встановлення PostgreSQL, де знаходиться цей інструмент".

Наприклад

Шлях: "C: \ Program Files \ PostgreSQL \ 10 \ bin"


0

Я знайшов використання

net start postgres_service_name

єдиний надійний спосіб роботи Postgres на Windows


0

Видаліть файл Postmaster у "C: \ Program Files \ PostgreSQL \ 9.6 \ data"

та перезапустіть служби 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 launcher! ура!


0

Найпростіший спосіб увімкнути команду pg_ctl - це перейти до каталогу PostgreSQL ~\PostgreSQL\version\bin\і виконати pg_ctl.exe. Згодом будуть доступні команди pg_ctl.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.