Linux CentOS 7 소스 코드 컴 파일 설치 PostgreSQL 9.5

이전 블 로 그 는 rpm 패키지 형식 으로 PostgreSQL 9.3Linux CentOS 7 에 PostgreSQL 9.3 설치(버 전 발행)을 설치 한 것 을 기 록 했 으 며,이 블 로 그 는 소스 코드 를 통 해 컴 파일 된 형식 으로 PostgreSQL 9.5 를 설치 한 것 을 기록 할 것 이다.
다운로드 하 다.
postgresql 의 공식 에서 원본 파일 디 렉 터 리 를 찾 을 수 있 습 니 다.주 소 는 다음 과 같 습 니 다.https://www.postgresql.org/ftp/source/,다운로드 목록 에서 필요 에 따라 버 전 을 선택 합 니 다.다음 그림:
这里写图片描述
하위 디 렉 터 리 에 들 어가 면 파일 목록 을 볼 수 있 습 니 다.
这里写图片描述
위의 그림 과 같이 두 가지 압축 형식 을 제공 하 는 것 을 볼 수 있 습 니 다.여 기 는 post gresql-9.5.tar.gz 를 선택 하여 다운로드 가 완 료 된 후에 CentOS 서버 의 지정 디 렉 터 리 에 업로드 하면 됩 니 다.
컴 파일 설치 설정
먼저 pg 압축 패키지 디 렉 터 리 에 들 어가 tar-zxvf./postgresql-9.5.5.tar.gz 를 통 해 압축 을 풀 고 설 치 를 컴 파일 할 수 있 습 니 다.압축 해제 디 렉 터 리 에 들 어가 면./configure-help 를 통 해 컴 파일 과 관련 된 도움말 정 보 를 볼 수 있 습 니 다.다음 그림:
这里写图片描述
위의 그림 과 같이--prefix=dir 는 설치 디 렉 터 리 를 지정 할 수 있 습 니 다.그리고--with-python 은 python 문법 을 사용 하 는 PL/python 프로 세 스 언어 사용자 정의 함 수 를 사용 할 수 있 습 니 다.수요 에 따라 사용 할 수 없 기 때문에 컴 파일 할 때 설치 디 렉 터 리 만 지정 하면 됩 니 다.
./configure --prefix=/usr/local/postgresql
컴 파일 을 실행 한 후에 c 컴 파일 러 가 없 는 것 은 새로운 시스템 의 원인 이 므 로 gcc 컴 파일 러 를 설치 하면 됩 니 다.
yum install gcc
설치 완료 후 postgres 를 다시 컴 파일 하 였 습 니 다.알림 에 readline 라 이브 러 리 가 부족 한 것 을 발 견 했 습 니 다.다음 그림:
这里写图片描述
위의 그림 과 같 지만 rpm-qa|grep readline 명령 을 통 해 시스템 의 기본 값 은 readline 패키지 가 있 음 을 알 수 있 습 니 다.다음 그림:
这里写图片描述
그러면 분명히 readline 과 관련 된 가방 이 부족 할 것 입 니 다.yum search readline 을 통 해 검색 하면 readline-devel 가방 을 발견 할 수 있 습 니 다.다음 그림 과 같 습 니 다.
这里写图片描述
사실 우리 가 부족 한 것 은 바로 이 readline 개발 패키지(readline-devel)입 니 다.readline 패키지 가 아 닙 니 다.그래서 다음 에 readline-devel 을 설치 하 겠 습 니 다.
yum install readline-devel
설치 완료 후 postgresql 을 다시 컴 파일 하 는 것 이 잘못 되 었 습 니 다.이번 힌트 는 zlib 라 이브 러 리 가 부족 합 니 다.
这里写图片描述
마찬가지 로 부족 한 것 은 zlib 개발 패키지(zlib-devel)이지 zlib 패키지 가 아니 기 때문에 zlib-devel 을 계속 설치 합 니 다.
yum install zlib-devel
설치 완료 후 postgresql 을 다시 컴 파일 합 니 다.error 를 다시 보고 하지 않 았 습 니 다.config.status 설정 파일 을 만 들 었 음 을 알 수 있 습 니 다.
这里写图片描述
설정 이 완료 되 었 습 니 다.다음 에 컴 파일 하여 설치 할 수 있 습 니 다.순서대로 실행 할 수 있 습 니 다.
make
make install
다음 힌트 를 보면 컴 파일 설치 성공 을 설명 할 수 있 습 니 다.
这里写图片描述
这里写图片描述
사용자 권한 과 환경 변수
컴 파일 설치 에 성공 하면 다음 에 해 야 할 일 은 일반 사용 자 를 만 드 는 것 입 니 다.기본 슈퍼 사용자(root)가 post gresql 을 시작 할 수 없 기 때문에 일반 사용 자 를 만들어 데이터 베 이 스 를 시작 하고 다음 명령 을 실행 하여 사용 자 를 만 드 는 것 입 니 다.
useradd postgres
다음은 postgres 의 데이터 디 렉 터 리 를 모두 postgres 사용자 에 게 권한 을 부여 할 수 있 는 권한 을 설정 해 야 합 니 다.(여기 서 postgres 의 데이터 디 렉 터 리 를/usr/local/postgresql/data 디 렉 터 리 에 지정 합 니 다)
chown -R postgres:postgres /usr/local/postgresql/
마지막 으로 환경 변 수 를 편리 하 게 설정 하기 위해 postgres 사용자 의 환경 변 수 를 설정 하기 때문에 먼저 su-postgres 를 통 해 postgres 사용자 로 전환 하고.bash 를 엽 니 다.profile 파일 및 다음 내용 추가:
这里写图片描述
수정 완료 후 source./.bashprofile 은 즉시 효력 을 발생 시 킵 니 다.다음 에 환경 변수 설정 이 정확 한 지 확인 하고 임의의 디 렉 터 리 로 전환 하여 which psql 과 psql-V 를 입력 하면 psql 클 라 이언 트 의 경로 와 postgresql 의 데이터베이스 버 전 을 각각 볼 수 있 습 니 다.다음 그림:
这里写图片描述
모든 준비 가 다 된 후에 데이터 베 이 스 를 초기 화 할 수 있 습 니 다.
데이터베이스 초기 화
환경 변 수 를 설정 하 였 기 때문에 initdb 를 직접 실행 하면 db 초기 화 를 완료 할 수 있 습 니 다.그러나 그 전에 initdb--help 를 통 해 초기 화 와 관련 된 도움말 정 보 를 볼 수 있 습 니 다.
这里写图片描述
위의 그림 에서 보 듯 이 initdb 를 사용 하여 초기 화 하 는 동시에 우 리 는 파 라 메 터 를 지정 하여 초기 화 작업 을 동시에 진행 할 수 있 습 니 다.예 를 들 어 pgdata(postgresql 데이터 디 렉 터 리)지정,encoding(인 코딩)지정,데이터베이스 슈퍼 사용자 의 사용자 이름과 비밀번호 지정 등 입 니 다.맨 뒤에 제 가 표시 한 이 부분 은 data 디 렉 터 리 가 지정 되 지 않 으 면환경 변수 에 있 는 PGDATA 를 기본 값 으로 사용 합 니 다.이전에 PGDATA 환경 변 수 를 설 정 했 기 때문에 추가 로 지정 하지 않 아 도 됩 니 다.마지막 으로 초기 화 명령 을 실행 하면 됩 니 다.
initdb
다음 정 보 를 보면 초기 화 에 성 공 했 음 을 설명 합 니 다.
这里写图片描述
또한 post gresql 디 렉 터 리 에서 생 성 된 데이터 디 렉 터 리 data 와 이 디 렉 터 리 의 관련 데이터 와 프로필 을 볼 수 있 습 니 다.
这里写图片描述
这里写图片描述
위의 그림 과 같이 base 디 렉 터 리 는 표 공간 디 렉 터 리 이 고 global 디 렉 터 리 는 전역 변수 와 관련 된 디 렉 터 리 입 니 다.pghba.conf 와 post gresql.conf 는 이전 블 로그 에서 도 언급 되 었 습 니 다.하 나 는 액세스 제어 설정(127.0.0.1 신뢰 하 는 클 라 이언 트 ip 네트워크 로 원 격 으로 접근 할 수 있 도록)이 고 하 나 는 post gresql 메 인 프로필(listenaddress=localhost 를 별표 로 바 꾸 어 네트워크 전 체 를 감청 하도록 합 니 다).hba.conf 의 ip 주 소 는 0.0.0.0/0 으로 바 뀌 었 고 암호 화 방식 은 md5 로 바 뀌 었 으 며 암호 화 접근 이 필요 하 다 는 것 을 나타 내 며 가장 낮은 수준의 안전 보 호 를 제공 하 는 셈 이다.
这里写图片描述
그리고 postgresql.conf 는 위 에서 말 한 것 처럼 listen 을 수정 합 니 다.address 는 네트워크 전 체 를 감청 하면 됩 니 다.
这里写图片描述
마지막 으로 pg 의 5432 포트 를 여 는 것 을 잊 지 마 세 요.그렇지 않 으 면 위의 두 개의 수정 클 라 이언 트 를 해도 post gresql 에 연결 할 수 없 기 때문에 5432 포트 를 zone 에 추가 하면 다음 명령 을 순서대로 실행 할 수 있 습 니 다.(루트 사용 자 를 잘라 야 합 니 다.그렇지 않 으 면 권한 이 없습니다)
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
이로써 설정 이 완료 되 었 습 니 다.firewall-cmd--zone=Public-list-ports 를 통 해 열 린 포트 목록 을 다시 확인 할 수 있 습 니 다.다음 알림 을 보면 포트 가 성공 적 으로 열 렸 음 을 설명 합 니 다.
这里写图片描述
이로써 설정 과 관련 된 내용 이 모두 완성 되 었 고 마지막 으로 데이터 베 이 스 를 시작 하고 연결 하 는 것 입 니 다.
시작 과 연결
데이터베이스 초기 화가 끝 났 을 때 시작 명령 을 보 았 습 니 다.다음 그림:
这里写图片描述
환경 변 수 를 설 정 했 기 때문에 데이터 디 렉 터 리 PGDATA 를 지 정 했 습 니 다.-1 은 로그 파일 디 렉 터 리 를 표시 합 니 다.보통 지정 해 야 하기 때문에 로그 파일 을 저장 할 로그 디 렉 터 리 를/usr/local/postgresql 루트 디 렉 터 리 에 다시 만 듭 니 다.
마지막 으로 pg 실행ctl start -l /usr/local/postgresql/log/pg_server.log 는 데이터 베 이 스 를 시작 할 수 있 습 니 다.다음 힌트 를 보면 시작 이 성공 했다 는 것 을 설명 합 니 다.
这里写图片描述  
또는 ps-ef|grep postgres 를 통 해 postgres 와 관련 된 프로 세 스 가 존재 하 는 지 확인 하 십시오.다음 그림 에서 시작 되 었 음 을 설명 할 수 있 습 니 다.
这里写图片描述
시작 에 성공 하면 우 리 는 post gresql 자체 클 라 이언 트 도구 psql 을 통 해 연결 할 수 있 습 니 다.psql 을 직접 입력 하면 버 전 정 보 를 보면 연결 이 성공 했다 는 것 을 설명 합 니 다.
这里写图片描述
로그 파일 디 렉 터 리 에서 데이터베이스 로그 파일 과 방금 시작 로 그 를 볼 수 있 습 니 다.
这里写图片描述
다음 에 해 야 할 첫 번 째 일 은 postgres 사용자 의 비밀 번 호 를 설정 하 는 것 입 니 다.psql 연결 에 성공 한 후에\password 를 직접 입력 하면 두 번 의 비밀 번 호 를 입력 하 는 것 을 알려 줍 니 다.다음 그림:
这里写图片描述
여기 서 비밀 번 호 를 111111 로 변경 하고\l 명령 을 통 해 데이터베이스 목록 을 볼 수 있 습 니 다.psql 도구 의 사용 에 대해 서 는 더 이상 군말 하지 않 습 니 다.마지막 으로 가장 중요 한 것 은 로 컬 클 라 이언 트 도구 가 아 닌 연결 을 검증 하 는 것 입 니 다.왜냐하면 우 리 는 데이터베이스 서버 를 해 야 하기 때 문 입 니 다.여기 서 제 가 선택 한 도 구 는 Navicat Premium 입 니 다.호스트(Windows 7)에서 Navicat 와 가상 컴퓨터 의 postgresql 서버 를 열 어 연결 테스트 를 합 니 다.
这里写图片描述
위의 그림 에서 보 듯 이 연결 이 성공 적 이 고 데이터 베 이 스 를 정지 하 는 것 은 명령pg_ctl stop을 사용 하여 postgresql 서 비 스 를 닫 을 수 있 습 니 다.간단 합 니 다.이로써 소스 코드 컴 파일 설치 postgresql 은 모두 끝 났 습 니 다.
총결산
postgresql 9.5 버 전이 Linux CentOS 7 에서 컴 파일 설치 되 는 전 과정 을 간단하게 기록 하고 같은 문제 에 부 딪 힌 친구 에 게 도움 이 되 기 를 바 랍 니 다.The End.

좋은 웹페이지 즐겨찾기