CentOS 7ソースインストールPostgreSQL 12
7148 ワード
PostgreSQL 12ソースコードのインストール
Table of Contents
1ダウンロード
公式サイトでは、ソースコードとプリインストールのバージョンが提供されています.ソースコードはインストールをコンパイルし、依存パッケージなどの問題を解決する必要がありますが、プリインストールのバージョンは簡単です.解凍をダウンロードしてデータベースを初期化するだけです.
この例はソースコードのインストールを例にとります:公式サイトにソースコードをダウンロードしてください.
本例ではPG 12が実装.にあるhttps://www.postgresql.org/ftp/source/v12.0/を含む解析順序を選択します.tar.bz2
必要に応じて自分の必要なバージョンを選んでください.
プリインストールバージョンは、公式サイトでダウンロードしてください.
2環境の準備
この手順はrootユーザーで実行します.postgresqlのインストールパッケージを/optパスに配置します.
#
groupadd postgre
useradd -g postgre -G postgre -d /home/postgresql postgre
passwd postgre
#
yum install -y bzip2 readline-devel zlib-devel
# /opt
cd /opt/
bunzip2 postgresql-12.0.tar.bz2
tar -xvf ./postgresql-12.0.tar
3コンパイルインストール
この手順はpostgreユーザーで行います.
cd /opt/postgresql-12.0
./configure --prefix=/home/postgresql/dbhome
make && make install
インストール後、実行可能ファイル、ライブラリファイルなどは/home/postgresql/dbhomeにインストールされます.
[postgre@boss20 dbhome]$ ls /home/postgresql/dbhome
bin include lib share
4環境変数の設定
postgreユーザの環境変数ファイルに以下の2行を追加する.bash_プロファイルが有効になります.
export LD_LBRARY_PATH=$HOME/dbhome/lib:$LD_LIBRARY_PATH
export PATH=$HOME/dbhome/bin:$PATH
環境変数ファイルの有効化方法:
. .bash_profile
source .bash_profile
5データベースの初期化
この手順はpostgreユーザーで実行します.
mkdir $HOME/data
postgresqlデータベースのプロファイル、データファイルなどはこのパスの下に格納されます.
initdb --locale=C -E UNICODE -D $HOME/data/
例は、
The files belonging to this database system will be owned by user "postgre".
This user must also own the server process.
The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /home/postgresql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... America/New_York
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
pg_ctl -D /home/postgresql/data/ -l logfile start
[postgre@boss20 data]$ ls
base pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf
global pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact postgresql.conf
これらの経路はそれぞれどのような用途があるのか、後で理解します.
6構成パラメータファイル
私たちは主にpostgresqlを構成します.confとpg_hba.confの2つ.
6.1 postgresql.conf
ポートとlistenerの検索addressという2つのパラメータ.この2つのパラメータは隣接しています.
#listen_addresses = 'localhost' # 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)
max_connections = 100 # (change requires restart)
2行の先頭の#を削除し、localhostを現在のサーバのIPに変更します.デフォルトのリスニングポートは5432で、別のポート番号を自分で指定できます.*デフォルトのポート番号を優先的に使用しない*です.ついでにmax_を修正しますconnectionsでしょう.最大の接続数は、100が少し少ないです.特にビジネスシステムです.1000以上に調整できます.
6.2 pg_hba.conf
次の行を文末に追加します.
host all all 10.10.100.0/24 trust
10.10.100セグメントのIPがこのサーバ上のPGに接続できるようにすることを意味する.すべてのIPがこのサーバに接続できるようにするには以下のように構成することができる.
host all all 0.0.0.0/0 trust
7データベースの起動と停止
7.1手動
データベースの手動起動と停止はpgを実行します.ctlコマンド.実行時には、次の形式でデータパスを指定する必要があります.
pg_ctl -D [ stop | start ]
例は次のとおりです.
[postgre@boss20 data]$ pg_ctl -D /home/postgresql/data/ -l logfile start
waiting for server to start.... done
server started
[postgre@boss20 data]$ pg_ctl -D $HOME/data stop
waiting for server to shut down.... done
server stopped
7.2起動自動起動
この手順ではrootユーザー操作が必要です.postgresqlのインストールパッケージには、データベースの起動と停止のスクリプトが用意されており、操作を簡素化したり、起動のスクリプトやservice/systemctl制御サービスのスクリプトとして使用したりすることができます.スクリプトは次の場所にあります.
/postgresql-12.0/contrib/start-scripts/
:
/opt/postgresql-12.0/contrib/start-scripts/
起動の設定:
cp /opt/postgresql-12.0/contrib/start-scripts/linux /etc/init.d/postgresql
chkconfig --add postgresql
chmod 755 /etc/init.d/postgresql
設定を調整します.主にスクリプトの3つの変数の値です.
prefix="/home/postgresql/dbhome"
PGDATA="/home/postgresql/data"
PGUSER=postgre
後で電源を入れて起動し、サービスコマンドで起動と停止を制御できます.
[root@boss20 init.d]# service postgresql start
Starting PostgreSQL: ok
[root@boss20 init.d]# service postgresql stop
Stopping PostgreSQL: ok
Author: halberd.lee
Created: 2019-10-18 Fri 18:05
Validate