Windows에서 PostgreSQL 서버 시작
오늘은 Windows에서 PostgreSQL 서버를 시작하는 방법을 배우겠습니다. Windows에서 PostgreSQL 다운로드 및 설치에 대한 이전 기사에서 우리는 이미 세션 시작, USER
생성, 쿼리 실행 및 다양한 데이터베이스 개체 작업 방법을 배웠습니다.
우리의 주제는 이제 로컬 시스템의 다른 사용자가 연결할 수 있는 PostgreSQL 서버 세션을 실행하는 데 중점을 둡니다.
Windows의 기본 PG_CTL
초기화 명령
PG_CTL
은 PostgreSQL 서버를 시작하고 제어하는 데 사용되는 유틸리티입니다. PG_CTL
은 제어된 종료를 제공하고 다양한 작업을 캡슐화하며 데이터베이스와 관련된 다양한 작업에 사용할 수 있으므로 PostgreSQL 세션을 초기화하기 위한 수동 설정입니다.
Windows에서 서버를 시작하려면 BIN
폴더에 대한 PostgreSQL 설치 내부의 명령 프롬프트로 이동합니다.
pg_ctl start -D "[\data folder directory]";
그러면 PostgreSQL 서버가 시작됩니다. 다른 사용자가 듣게 하려는 컴퓨터의 다른 포트에서 이 작업을 수행하려면 다음과 같이 쿼리를 사용하십시오.
pg_ctl -o "-F -p [post_number]" start
대괄호 없이 정의된 port_number
에 PORT NUMBER
를 입력합니다. 이렇게 하면 서버를 시작하고 다른 사용자가 다른 시스템에서 서버에 연결할 수 있습니다.
그러나 이유나 약간의 오작동으로 인해 PostgreSQL 서버가 중지된 경우 다음 명령 중 하나를 사용하여 작동시키는 것이 좋습니다.
pg_ctl restart -D "[\data folder];
pg_ctl start company; --may or may not work / may produce errors
...
여러 번 이러한 작업을 수행할 필요가 없습니다. 예를 들어 PGADMIN
을 시작하면 PC
의 미리 정의된 포트에서 이미 PostgreSQL 세션을 생성하여 다른 사용자가 쉽게 찾을 수 있습니다.
PostgreSQL 서버를 부팅하기 위해 위에 제공된 명령을 작성할 필요가 없을 수도 있습니다.
Windows에서 PG_CTL START/RESTART
를 실행하는 동안 경로 지정
때로는 간단한 PG_CTL START/RESTART
를 호출하는 것이 좋은 방법이 아닙니다. PostgreSQL 설치 내에서 DATA
폴더 경로를 지정한 다음 부팅 명령을 실행해야 할 수도 있습니다.
위에 주어진 쿼리를 호출하면 OUTPUT
이 표시됩니다.
출력:
pg_ctl: another server might be running; trying to start server anyway
waiting for server to start....2022-04-28 19:28:38.766 PKT [3228] LOG: redirecting log output to logging collector process
2022-04-28 19:28:38.766 PKT [3228] HINT: Future log output will appear in directory "log".
stopped waiting
pg_ctl: could not start server
Examine the log output.
위에 주어진 출력은 PostgreSQL 서버가 이미 실행 중일 때 발생합니다. 이미 PGADMIN
이 부팅되어 백그라운드에서 실행 중이기 때문에 위의 쿼리를 호출하면 이미 사용 중인 포트에서 서버를 초기화할 수 없습니다.
그러나 아래 작업을 수행하면 동일한 PC에서 별도의 서버가 실행됩니다.
pg_ctl -o "-F -p 5656" start -D "C:\Program Files\PostgreSQL\14\data"
출력:
waiting for server to start....2022-04-28 19:34:04.588 PKT [11784] LOG: redirecting log output to logging collector process
2022-04-28 19:34:04.588 PKT [11784] HINT: Future log output will appear in directory "log".
done
server started
마찬가지로 RESTART
에 대해 동일한 명령을 실행할 수도 있습니다.
pg_ctl restart -D "C:\Program Files\PostgreSQL\14\data"
or
pg_ctl -o "-F -p 5656" restart -D "C:\Program Files\PostgreSQL\14\data"
출력:
waiting for server to shut down.... done
server stopped
waiting for server to start....2022-04-28 19:35:46.007 PKT [884] LOG: redirecting log output to logging collector process
2022-04-28 19:35:46.007 PKT [884] HINT: Future log output will appear in directory "log".
done
server started
출력에서 서버가 이미 실행 중이기 때문에 먼저 종료된 다음 다시 시작되고 세션 동안 변경 사항에 대해 기록되는 방법을 확인할 수 있습니다.
SERVICES.MSC
를 사용하여 Windows에서 PostgreSQL 세션을 START/STOP
PostgreSQL 서버는 PSQL
또는 PGADMIN
에서 시작할 때 PC
에서 인스턴스화된다는 것을 이미 알고 있습니다. SERVICES.MSC
에서 STOPPED
또는 PAUSED
서비스인 Windows 서비스 관리자에서 몇 가지 작업을 수행할 수 있습니다.
-
Windows+R를 누르고
SERVICES.MSC
를 입력합니다. -
Windows 서비스 관리자가 열리면 목록에서 PostgreSQL 서버 서비스를 검색합니다. 다음과 같이 이름을 지정할 수 있습니다.
postgresql-x64-14 - PostgreSQL Server 14
. -
이를 마우스 오른쪽 버튼으로 클릭하여 서버
시작
,중지
,일시 중지
,재개
또는재시작
합니다. 다음에 자동으로 시작되도록 시작 시간을AUTOMATIC
으로 변경할 수도 있습니다.
서비스 관리자는 또한 특정 서비스의 실패 원인을 알려주는 경향이 있습니다. 실행 경로를 보려면 일반
탭을 열고 다음과 같이 볼 수 있습니다.
COMMAND PROMPT
에서 NET START
를 사용하여 PostgreSQL 서버를 시작합니다.
NET START
명령을 사용하여 명령 프롬프트에서 서비스를 시작할 수 있습니다. 구문은 다음과 같습니다.
NET START [service_name]
PostgreSQL 세션에 대한 SERVICE_NAME
을 찾아야 할 수도 있습니다. 일반
탭에서도 언급됩니다.
이제 다음과 같이 명령을 내릴 수 있습니다.
net start postgresql-x64-14;
이렇게 하면 서버가 부팅되고 다음과 같이 출력이 표시됩니다.
출력:
The postgresql-x64-14 - PostgreSQL Server 14 service is starting.
The postgresql-x64-14 - PostgreSQL Server 14 service was started successfully.
그러나 COMMAND PROMPT
는 일반 사용자가 아닌 ADMINISTRATOR
로 시작해야 합니다.
CMD.EXE
실행 파일을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행
을 클릭합니다. 그렇지 않으면 다음과 같은 오류가 발생합니다.
출력:
System error 5 has occurred.
Access is denied.
그래서 오늘은 다양한 방법으로 Windows에서 PostgreSQL 서버를 시작하는 방법을 배웠습니다. 이 기사를 주의 깊게 읽고 필요에 따라 사용할 수 있기를 바랍니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub