Windows에서 PostgreSQL을 시작하려면 어떻게해야합니까?


81

Windows 10 PC에 Postgresql을 설치했습니다. pgAdmin II 도구를 사용하여 company라는 데이터베이스를 만들었으며 이제 데이터베이스 서버를 실행하려고합니다. 이 작업을 수행하는 방법을 알 수 없습니다. 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다음 포스트 그레스가 이미 실행 중입니다
a_horse_with_no_name

감사합니다. 나는 지금 무슨 일이 일어나고 있는지 볼 수 있습니다.
Sean

주 : pg_ctl명령하는 서버 관련 및 net명령은 서비스 관련

답변:


52

pg_ctlSQL 문이 아닌 명령 행 (Windows) 프로그램 입니다. 당신은에서 해당 작업을 수행해야 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 아래 점점 : \ 소프트웨어 \ PostgreSQL을-12.4-1-창 - 64 - 바이너리 \ pgSQL의 \ 빈> pg_ctl -D DATADIR pg_ctl 시작 : 디렉토리를 "DATADIR"존재하지 않는
Mahender 레디 야사

이 답변은 위의 응답보다 더 stackoverflow.com/questions/26441873/...
Mahender 레디 야사

44

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 서비스를 선택하고 시작 / 중지 / 다시 시작을 클릭하는 모든 서비스가 표시됩니다.

감사


31

Windows 설치 프로그램을 통해 postgres를 설치 한 경우 다음과 같이 서비스에서 시작할 수 있습니다.

여기에 이미지 설명 입력


2
네, 네, 이거! 서비스 창은 실제로 실패 원인을 알려줍니다. 서비스가 예상대로 등, 시작 실행 여부를 여부
아서 Tarasov을

이것은 Windows의 정답입니다. pg_ctl.exe가 작동하고 net start가 명령 줄을 제외하고는이 대답과 동일한 작업을 수행한다고 확신하며이를 수행하려면 서비스 이름을 알아야합니다 (서비스 이름을 알고 있다면 추측하고 있습니다). ,이 질문에 답할 필요가 없습니다).
자레드

24

많은 검색과 테스트를 거친 후 해결책을 찾았습니다. 창에 있다면 :

1-먼저 PG 데이터베이스 디렉토리를 찾아야합니다. pgAdmin 쿼리 도구에서 명령을 sql 명령으로 실행합니다.

$ show data_directory;

결과 :

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

2-내 경우에는 "c : / programms / postgresSql / bin" 에있는 postgres의 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 '가 내부 또는 외부 명령으로 인식되지 않습니다."라는 오류가 발생하면

있을 수 있습니다 : 원인

  • 이 도구의 경로가 시스템 환경 변수 PATH에 지정되어 있지 않기 때문에 시스템이 psql.exe 도구를 찾을 수 없습니다.

또는-PostgreSQL 데이터베이스 클라이언트가 PC에 설치되지 않음

PostgreSQL을 이미 설치했기 때문에 후자는 문제가 될 수 없습니다 (모든 것이 예상대로 설치되었다고 가정).

첫 번째 항목을 수정하려면 " 이 도구가있는 PostgreSQL 설치 폴더 의 bin 디렉토리 에 대한 전체 경로를 지정하십시오 ."

예를 들면

경로 : "C : \ Program Files \ PostgreSQL \ 10 \ bin"


0

나는 사용하여 발견했다

net start postgres_service_name

Windows에서 Postgres를 작동하는 유일한 신뢰할 수있는 방법


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 런처가 시작되었습니다! 건배!


0

pg_ctl 명령을 활성화하는 가장 쉬운 방법은 PostgreSQL 디렉토리로 이동 ~\PostgreSQL\version\bin\하여 pg_ctl.exe. 그 후에 pg_ctl 명령을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.