PostgreSQL是一個功能非常強大的、源代碼開放的客戶/服務器關系型數據庫管理系統,官網https://www.postgresql.org/download/,本文僅提供在centos7系統環境下安裝postgres數據庫。
PostgreSQL數據庫在安裝過程中會自動創建postgres用戶,家目錄:/var/lib/postgresql,我們也可以提前創建postgres用戶,修改用戶家目錄。
安裝postgresql:
1.檢查系統是否存在postgres數據庫
rpm -qa | grep postgres -->檢查是否有安裝
rpm -qal | grep postgres -->檢查安裝位置
rpm -e postgresql_name -->卸載數據庫(如果有),需替換具體的數據庫版本名稱,可同時卸載多個
2.創建postgres用戶(此過程可省略)
groupadd postgres -->創建組
useradd -g postgres postgres -->創建用戶,屬組為postgres
passwd postgres -->設置用戶postgres密碼
mkdir /home/postgres_data
chown postgres:postgres
3.安裝數據庫
yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
安裝PostgreSQL服務器和第三方擴展包
yum install postgresql95-server postgresql95-contrib -y
也可以選擇離線安裝,在官網下載系統對應的rpm包。
4.配置postgres數據庫數據存儲位置,如果第二步沒有做此過程可跳過。
切換用戶postgres
vi .bash_profile
export PATH=$PATH:/usr/pgsql-95/bin
export LD_LIBRARY_PATH=/usr/pgsql-9.5/lib
export PGDATA=/home/postgres_data
5.修改配置文件/usr/lib/systemd/system/postgresql-9.5.service,如果過程2沒有做此過程可生省略。
Environment=PGDATA=/home/postgres_data
6.切root用戶
初始化數據庫(以postgresql用戶初始化數據庫會導致服務啟動失敗)
# /usr/pgsql-9.5/bin/postgresql95-setup initdb
7.修改配置文件/var/lib/pgsql/9.5/data/postgresql.conf,去掉注釋符“#”(該路徑為postgres默認的配置文件生成路徑,如果在步驟5修改了配置文件生成位置需要在對應位置找到配置文件)
listen_addressed='*'
port=5432
password--encryption=on
8.修改配置文件/var/lib/pgsql/9.5/data/pg_hba.conf(該路徑為postgres默認的配置文件生成路徑,如果在步驟5修改了配置文件生成位置需要在對應位置找到配置文件)
IPV4所在一行修改ident為trust
IPV4下新增一行host all all 0.0.0.0/32 md5
9.起服務
# systemctl enable postgresql-9.5.service
# systemctl start postgresql-9.5.service
# systemctl status postgresql-9.5.service
輸出應為:
postgresql-9.5.service - PostgreSQL 9.5 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-9.5.service; enabled)
Active: active (running) since Fri 2016-02-19 00:01:13 UTC; 6min ago
Process: 10809 ExecStart=/usr/pgsql-9.5/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=0/SUCCESS)
Process: 10802 ExecStartPre=/usr/pgsql-9.5/bin/postgresql95-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 10811 (postgres)
CGroup: /system.slice/postgresql-9.5.service
├─10811 /usr/pgsql-9.5/bin/postgres -D /var/lib/pgsql/9.5/data
├─10812 postgres: logger process
├─10814 postgres: checkpointer process
├─10815 postgres: writer process
├─10816 postgres: wal writer process
├─10817 postgres: autovacuum launcher process
└─10818 postgres: stats collector process
9.數據庫設置
psql
#psql -U postgres並回車,登錄數據庫。
#ALTER USER postgres with encrypted password '1234';
#select * from pg_database;
#\q