중앙 OS 7에서 설치에서 PostgreSQL12로 설정

목표


중앙 OS 7에 외부 웹 서버에서 연결하는 PostgreSQL12 환경을 구축합니다.
그리고 로컬 데이터베이스의dump 파일을 복구합니다.

컨디션


필자 단말기


OS:Windows10Pro-ver1909
콘솔: Powerherll

DB 서버 OS 정보


CentOS7.8 - x86_64

1. PostgreSQL 개발원 Yum 창고 추가


다음 URL에서 DB 서버의 OS에 맞는 패키지를 다운로드합니다.
다음 명령의 매개 변수에 객체의 URL을 지정합니다.
※ 필자는 센토스 7-x8664개의 URL이 지정되었습니다.
https://yum.postgresql.org/repopackages.php
# yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
(省略)
Installed:
  pgdg-redhat-repo.noarch 0:42.0-14

Complete!

2. PostgreSQL 패키지 설치


PostgreSQL 패키지는 다음 하위 패키지로 구성됩니다.그중에 적합한 포장을 설치하다.이번에는 DB 서버이기 때문에postgresql12-server를 설치합니다.
패키지 이름
설명
postgresql12
클라이언트 프로그램
postgresql12-libs
공유 라이브러리
postgresql12-server
서버 프로그램
postgresql12-docs
매뉴얼
postgresql12-contrib
추가 모듈
postgresql12-devel
헤드 파일 및 라이브러리 개발
postgresql12-llvmjit
JIT 컴파일 지원
postgresql12-plperl
PL/Perl
postgresql12-plpython3
PL/Python(Python 3 절차 언어)
postgresql12-pltcl
PL/Tcl(Tcl 절차 언어)
postgresql12-test
테스트 도구
# yum -y install postgresql12-server
(省略)
Complete!

3. 데이터베이스 집단의 창설


데이터베이스 집단은 데이터베이스를 저장하는 구역을 가리키며 데이터베이스 서버의 시작에 데이터베이스 집단이 필요하다.initdb 명령으로 만들 수 있습니다.OS가 있는postgresql-12-setup도 사용할 수 있지만 인증 방식은 ident가 고정되어 있기 때문에 다음과 같은 방법으로 진행한다.
# su - postgres -c '/usr/pgsql-12/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'
データベースシステム内のファイルの所有者はユーザ"postgres"となります。
このユーザをサーバプロセスの所有者とする必要があります。

データベースクラスタはロケール"C"で初期化されます。
デフォルトのテキスト検索構成は english に設定されます。

データベージのチェックサムは無効です。

新しいスーパユーザのパスワードを入力してください: (パスワードを入力)
再入力してください: (パスワードを再入力)

ディレクトリ/var/lib/pgsql/12/dataの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
動的共有メモリの実装を選択しています ... posix
デフォルトのmax_connectionsを選択しています ... 100
デフォルトのshared_buffersを選択しています ... 128MB
デフォルトの時間帯を選択しています ... Asia/Tokyo
設定ファイルを作成しています ... ok
ブートストラップスクリプトを実行しています ... ok
ブートストラップ後の初期化を実行しています ... ok
データをディスクに同期しています ... ok

成功しました。以下のようにしてデータベースサーバを起動することができます:

    /usr/pgsql-12/bin/pg_ctl -D /var/lib/pgsql/12/data -l ログファイル start

su - postgres


initdb 명령은postgres 사용자가 실행해야 하기 때문에 사용자를 바꾸어 실행해야 합니다.

-E UTF8


기본 인코딩을 설정합니다.

--locale=C


기본 로켈이 없습니다.

-A scram-sha-256


인증 방법을 설정합니다.버전 9까지는 MD5 인증이었지만 10 이후에는 강도가 높은 scram-sha-256을 사용합니다.

4. 데이터베이스 서버 시작


다음 명령을 실행하는 데이터베이스 서버입니다.
# systemctl start postgresql-12.service

5. 수퍼유저의 환경 변수 설정


PostgreSQL의 슈퍼유저postgres에서 데이터베이스를 관리하기 위해 설정 파일을 편집합니다.
# pwd
/var/lib/pgsql
# su - postgres
$ vi .pgsql_profile
/var/lib/pgsql/.pgsql_profile
PATH=/usr/pgsql-13/bin:$PATH
MANPATH=/usr/pgsql-13/share/man:$MANPATH
PGDATA=/var/lib/pgsql/13/data
export PATH MANPATH PGDATA
# pwd
/var/lib/pgsql
# su - postgres
$ vi .bash_profile
/var/lib/pgsql/.bash_profile
#PGDATA=/var/lib/pgsql/12/data
PGDATA=/data
$ source ~/.bash_profile

6. 데이터베이스 서버 재시작


다음 명령으로postgres 사용자에서 데이터베이스 서버를 다시 시작합니다.
# su - postgres
$ pg_ctl stop
$ pg_ctl start

7. 외부로부터의 데이터베이스 서버 접근 허가 설정


pg_hba.파일과postgresql입니다.특정 IP 주소에서 액세스할 수 있도록 conf 파일을 편집합니다.
※ 설정이 완료되면 6단계를 다시 시작합니다.
# su - postgres
$ cd 12/data
$ vi pg_hba.conf
conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
- #host    all             all             127.0.0.1/32            scram-sha-256
+ host    all             all              指定したいIPアドレス    scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     scram-sha-256
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256
# su - postgres
$ cd 12/data
$ vi postgresql.conf
postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

- #listen_addresses = 'localhost'         # what IP address(es) to listen on;
+ listen_addresses = '指定したいIPアドレス'# 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)

8. 새 DB에서 dump 파일 복원


새로운 캐릭터, 그 캐릭터 제작 소유자의 데이터베이스.
# su - postgres
$ psql -U postgres
# CREATE ROLE ロール名 with superuser login password 'パスワード';
# CREATE DATABASE データベース名 with owner ロール名
# exit
------------------------------------
以下でデータベースにアクセスできるか確認
$ psql -U ロール名 -d データベース名
------------------------------------
以下でdumpファイルからデータベースを復元
$ psql -U ロール名 データベース名 < dumpファイル名

9. 소감


설정 반영을 잊고 잘못 설정한 줄 알고 복귀하는 장면도 많았다.나는 설정을 편집한 후에 반드시 반영해야 한다는 것을 안다.이번 계획은 웹 시스템에서 이 부분을 참조하여 보도할 것이다

좋은 웹페이지 즐겨찾기