사용할 수없는 환경에서 리눅스 설치를 pgsql (회사 인트라넷) 냠

@

머리말

이 사건은 처음 설명 :
작업이 회사에 인트라넷 서버 A의 설치 를 pgsql의 데이터베이스

아니 냠 다운로드, 사용은 관련 소프트웨어 설치 RPM 파일을 가져

그림 삽입 설명 여기


첫째, 설치 환경

liunx 시스템 : Centos7
pgSQL의 데이터베이스 : PostgreSQL의 10.2-의
도구의 서버보기 : finalshell
데이터베이스 뷰 도구 : Navicat는 12이다

pgSQL의 파일 저장 위치 : / 홈 / pgSQL의

그림 삽입 설명 여기


둘째, 설치는 (작업 흐름에 따라) pgSQL의 시작

(1) 압축 추출
[루트 @ 로컬 호스트를 pgsql] # 타르 -zxvf PostgreSQL의-10.2.tar.gz

(2) 압축 된 파일을 입력 한 후
[루트 @ 로컬 호스트 pgSQL의] #에 CD의 PostgreSQL - 10.2
[루트 @ 로컬 호스트 pgSQL의] #에 LS
이력의 contrib의 DOC 메이크 SRC 구성 aclocal.m4의
구성 configure.in COPYRIGHT GNUmakefile.in는 리드 미를 설치

(3) 소스 코드 PostgreSQL을 컴파일
[루트 @ localhost를 PostgreSQL을 - 10.2] # ./configure를 --prefix = / 가정 / pgSQL의 / PostgreSQL의

문제,이 문제에 대한 해결책 뒤의 모습을 확인하시기 바랍니다! ! !

그림 삽입 설명 여기
[루트 @ localhost를 PostgreSQL을 - 10.2] # 만들기
[루트 @ localhost를 PostgreSQL의-10.2] 만들기는 # 설치하는
이 시점, 우리는 postgreql 설치를 완료했습니다. 입력 / 집 / pgSQL의 / PostgreSQL은 PostgreSQL의 디렉토리는 설치 파일 이후에 볼 수 있습니다.
[루트 @ localhost를 PostgreSQL의] # 개의 LS의
(가)이 콘텐츠를 공유보고 lib에는 포함 함

(4) 사용자를 작성
pgSQL의 사용자를 생성 및 암호 설정 :
[루트 @ localhost를 PostgreSQL의] # groupadd 포스트 그레스
[루트 @ localhost를 PostgreSQL의] # useradd와 포스트 그레스
[루트 @ localhost를 PostgreSQL의] #을 포스트 그레스 Passwd 파일
[루트 @ 로컬 호스트의 PostgreSQL] ID # 포스트 그레스
UID = 501 (POSTGRES) GID = 501 (POSTGRES) 기 = 501 (POSTGRES)

두번 확인 비밀번호

(5) 주 디렉토리를 pgSQL의 데이터를 저장하기위한 데이터베이스를 만들고, 파일 소유자를 수정

[루트 @ localhost를 PostgreSQL을 - 10.2] #에서 cd / 홈 / pgSQL의 / PostgreSQL을
[루트 @ localhost를 PostgreSQL의] #에서 mkdir 데이터
[루트 @ localhost를 PostgreSQL의] #에 대한 Chown 포스트 그레스 : 포스트 그레스 데이터
[루트 @ localhost를 PostgreSQL의] # 1! -al
총 20
drwxr -xr-X. 7 루트 루트 68 3월 30일 14시 38분.
drwxr-XR-X를. 4 루트 루트 77 3월 30일 15시 52분 ..
drwxr-XR-X. 2 루트 루트 4096 3월 30일 14시 35분 빈
은 drwx ------. 19 POSTGRES 포스트 그레스 4096 3 월 30 일 15:34 데이터
drwxr-XR-X를. 6 루트 루트는 4096 월 30 14:35에는
drwxr-XR-X를. 4 루트 루트 4096 3월 30일 14시 35분 lib 디렉토리의
drwxr-XR-X. 6 루트 루트 4096 3월 30일 14시 35분 주

(6) 추가 환경 변수
[루트 @ 로컬 호스트의 PostgreSQL] # VI 은 / etc / 프로필

내용을 추가합니다 :

export PGHOME=/home/pgsql/postgresql/
export PGDATA=/home/pgsql/postgresql/data
export PATH=$PGHOME/bin:$PATH:$HOME/bin

刷新一下
[루트 @ localhost를 PostgreSQL의] # 소스의 / etc / 프로필

그림 삽입 설명 여기
(7)换포스트 그레스账号并使用initdb에初始化数据库
[루트 @ localhost를 /] # 스와 포스트 그레스는
비난-4.2 $의 CD / 홈 / pgSQL의 / PostgreSQL을
bash는-4.2 $의 initdb에
이 데이터베이스 시스템에 속하는 파일은 사용자 "포스트 그레스"가 소유합니다.
이 사용자는 서버 프로세스를 소유해야합니다.
데이터베이스 클러스터는 로케일 "은 en_US.UTF-8"로 초기화됩니다.
기본 데이터베이스 인코딩은 이에 따라 "UTF8"로 설정되어 있습니다.
기본 텍스트 검색 구성은 "영어"로 설정됩니다.
데이터 페이지 체크섬을 사용할 수 없습니다.
기존 디렉토리에 대한 사용 권한을 고정 / 홈 / pgSQL의 / PostgreSQL을 / 데이터 ... 확인
만들기 하위 디렉토리 ... 확인
기본 MAX_CONNECTIONS ... 100 선택
선택 기본 shared_buffers를를 ... 128 메가 바이트
선택 동적 공유 메모리 구현 ... POSIX의
구성 파일을 생성 ... 확인
실행중인 부트 스트랩 스크립트 ... 확인
수행 후 부트 스트랩 초기화를 ... 확인
디스크에 동기화 데이터를 ... 확인
경고 : 지역 연결 가능 "신뢰"인증
당신은있는 pg_hba.conf를 편집하거나 옵션 -A, 또는 사용하여 변경할 수 있습니다
---auth 지역 및 --auth 호스트, 당신은 initdb를 실행할 때입니다.
성공. 이제 사용하여 데이터베이스 서버를 시작할 수 있습니다
pg_ctl -D / 홈 / pgSQL의 / PostgreSQL을 / 데이터 -l 로그 파일 시작

우리는 집 / pgSQL의 / PostgreSQL을 / 데이터 파일이 이미이 / 볼 수 있습니다.
4.2 $ CD-bash는은 / 홈 / pgSQL의 / PostgreSQL을 / 데이터
bash는-4.2 $ LS
자료가있는 pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf pg_commit_ts
글로벌 pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact는 postgresql.conf을

(8) 서비스를 pgsql 배치
수정 / pgSQL의 / PostgreSQL의 / 데이터 디렉토리에 두 파일.

는 postgresql.conf는 : 매개 변수 PostgreSQL 데이터베이스 서버를 구성합니다.

위해서는 pg_hba.conf : 데이터베이스로 구성 액세스 할 수 있습니다.

bash는-4.2 $ VI는 postgresql.conf

listen_addresses = '*'                 # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                            # (change requires restart)

그 (것)들의 사이에서, 매개 변수 "listen_addresses"는 기본 IP 주소 127.0.0.1에서 수신되는, 로컬 호스트에서 수신하는 것입니다, 청취 IP 주소를 나타냅니다 만이 토지 수없는 원격 호스트를 만드는 기계 로컬 호스트에서 연결 요청을 수락 다른 컴퓨터에서 로그인 할 경우 데이터베이스이 데이터베이스, 당신은 실제 네트워크 주소의 주소를들을 필요가 간단한 방법은 #로 시작하는 줄을 제거하는 것입니다, * 지역의 표현이 주소를 변경 청취자의 모든 주소.

bash는-4.2 $ VI 위해서는 pg_hba.conf의
발견 결론이 때문에 사람들은 LAN에 액세스 할 수 있습니다. 새로 추가 된 콘텐츠를 레드.

IPv4의 로컬 연결 :

호스트 모든 모든 0.0.0.0/0 신뢰
호스트의 모든 모든 127.0.0.1/32 신뢰

처음부터 (9) 부팅을 배열
bash는-4.2 $ CD가 /home/pgsql/postgresql-10.2/contrib/start-scripts
bash는-4.2 $ LS
FreeBSD는 리눅스 맥 OS는 OSX

. 1) 파일 속성을 수정 리눅스 루트로 전환이 속성 추가 X를
루트 SU-4.2 bash는 $
암호 :
[시작 - 스크립트 루트 @ localhost를] # A + X 리눅스은 chmod

2) /etc/init.d에 리눅스 디렉토리에 파일을 복사, PostgreSQL을에 이름을 변경
[루트 @ localhost를 시작-스크립트] # CP 리눅스 /etc/init.d/postgresql

두 변수 /etc/init.d/postgresql 3) 수정 파일
[루트 @ localhost를 시작 스크립트] # VI /etc/init.d/postgresql

접두사설치 경로에 PostgreSQL을 : / pgSQL의 / PostgreSQL을

PGDATA디렉토리 경로의 PostgreSQL의 데이터 세트 : / pgSQL의 / PostgreSQL을 / 데이터

시작부터 4) 설정 PostgreSQL의 서비스 부팅
[루트 @ localhost를 시작 스크립트]
# chkconfig를 --add /etc/init.d/postgresql 하여 서비스가 성공적으로 설정 시작에서 부팅을 볼 수 있습니다.
[시작 - 스크립트 루트 @ 로컬 호스트] 중 # chkconfig를
PostgreSQL의 0 닫기 1 닫기 2 : 3을 사용 : 4를 사용 : 5 사용 : 6 사용 : 꺼짐

5) 5432 오픈 방화벽

//开放5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
//跟新防火墙规则
firewall-cmd --reload
//防火墙列表
firewall-cmd --zone=public --list-ports
//防火墙状态
systemctl status firewalld
//启动防火墙
systemctl start firewalld
//关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

(10)开启服务서비스가 시작 PostgreSQL의
[루트 @ localhost를 SYSCONFIG] #에서 cd /etc/init.d에
[루트 @ localhost를있는 init.d] # 서비스가 시작 PostgreSQL을
시작 PostgreSQL의 : SU : 경고 : 수없는 변화 디렉토리에 / 홈 / 포스트 그레스 : 그런 파일이나 디렉토리를 확인하지

PostgreSQL의 상태보기
[루트 @ localhost를있는 init.d] # ps의 -ef | 그렙 포스트 그레스를

그림 삽입 설명 여기


문제 셋째, 솔루션

1, 두 가지 문제

첫 번째 질문을 ① : 구성 : 오류 : 도서관의 readline를 찾을 수 없습니다 (readline에 소프트웨어 문제)

해결 방법 1 : 적절한 버전을 다운로드! (그것이 올바른 버전이어야 기억!)
Readline와-(STABLE) 다운로드
여기에 적절한 시점 무엇을 의미하는지 모르는
그림 삽입 설명 여기
해결 방법 2 : (의 readline 기능이없는)-의 readline을 --without 추가

./configure --prefix=/home/pgsql/postgresql --without-readline

두 번째 질문 ② : 구성 : 오류 : 라이브러리 zlib을 찾을 수 없습니다 (ZLIB 소프트웨어 문제를)

해결 방법 : 적절한 버전을 다운로드! (그것이 올바른 버전이어야 기억!)
Zlib의-(STABLE) 다운로드는
여기에 적절한 시점 무엇을 의미하는지 모른다

그림 삽입 설명 여기


2, NPM 설치 과정

(1) 파일 다운로드 NPM
(하지 이어질 수 있으며, 시스템의 일관성 버전) RPM -ivh RPM 파일 이름 : 파일을 실행 NPM (2)
--force (강제 취재를)
- (종속성을 무시) nodeps을
열 같은 :rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm --force --nodeps

이 블로그 쓰기 더 세부

즉 후

이것은 가장 피곤이를 한 번 할 것입니다 : 내가 더 유용한 참고 자료에 대해 말하는 것입니다 :
내용이 아주 자세히 설명되어 있지만, 얼마나 2018 년 일부 변경, 주요 참조 []
이 가능 또한, 나는의 부분을 언급했다 참조의 내용은 [미성년자]
RPM은 훌륭한 세부 사항 작성,하지만 난 조금 일찍 사용하려면

서버는 이전에이 상황에 종사하고 아래로 낮추기 위해 무엇을하고 서버에 업로드되지 때문입니다. 이 시간이 지나면 나는 장미를 많이 보았다.
소스를 이해 ① 냠 소스 (163)로 대체 할 수
당신은 또한 재생할 수 있도록 ②rpm 원본 파일
구성 ③pgsql 및 다른 구성 서비스

나는 단계별로 프로세스 단계에 따라, 그리고 어떤 결함이있는 경우 당신은 내가 참조를 추천 볼 수 있습니다.
우리는 또한 토론 (~ ¯ ▽ ¯)의 코멘트 섹션을 환영합니다 -

추천

출처www.cnblogs.com/liwangwang/p/12603167.html