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.