1. 首先安裝PostgreSQL的rpm
sudo yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm -y
2. 然後再安裝PostgreSQL服務器和第三方擴展包
sudo yum install postgresql11 postgresql11-server postgressl11-contrlb -y
3. 創建數據庫目錄
sudo mkdir /home/postgresql_data
目錄分配權限
sudo chown postgres:postgres /home/postgresql_data
sudo chmod 750 /home/postgresql_data
設置環境變量
export PATH=/usr/pgsql-11/bin:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-11/lib
export PGDATA=/home/postgresql_data
切換至postgres用戶,生成數據庫簇
initdb
啓動Postgresql服務
pg_ctl start -D $PGDATA
修改service文件 vi /usr/lib/systemd/system/postgresql-11.service 因爲在#Location of database direcotry配置節裏面沒有指定正確的PGDATA。所以我們需要將下面的PGDATA設置成正確
#Location of database directory
Environment=PGDATA=/home/postgresql_data
4. 啓動數據庫服務
sudo systemctl enable postgresql-11.service
sudo service postgresql-11 start
5. 檢查數據庫服務狀態
service postgresql-11 status
6. 修改postgres用戶密碼,切換到postgres用戶
sudo passwd postgres
su postgres
7. 然後使用psql工具登錄數據庫,列出當前的數據庫,命令分別是 psql 和 \l
8. 下面需要先對服務配置文件postgresql.conf進行一些設置:
PostgreSQL的配置文件就在這個目錄下/var/lib/pgsql/版本號/data/postgresql.conf,還有一個配置文件也需要稍加關注,那就是訪問控制配置文件/var/lib/pgsql/版本號/data/pg_hba.conf
將 #listen_addresses = 'localhost' 前的#號去掉,然後將後面的localhost改爲*,然後將 #port = 5432 前的#去掉,最後再將 #password_encryption = on 前面的#號去掉,如下圖所示,使用wq命令保存退出。
9. 再對pg_hba.conf內容進行配置,將上面紅框內的ident改爲md5,然後再在最下面加入 host all all 0.0.0.0/0 md5 ,如下圖所示:
10. 重啓postgresql-9.5服務,使配置文件重效
service postgresql-11 restart
11. 接下來我們創建一個數據庫
psql
CREATE DATABASE testdb;
12.然後再創建一名用戶
CREATE USER username CREATEDB LOGIN PASSWORD '密碼';
如下圖所示,這樣我們就創建了一個名爲username的用戶,後面的 CREATEDB LOGIN PASSWORD '密碼' 意思是這個用戶可以創建數據庫,還可以登錄
Postgres=# CREATE USER username CREATEDB LOGIN PASSWORD '密碼';
CREATE ROULE;
13. 接下來將testdb的所有權限都分配給username
GRANT ALL ON DATABASE testdb TO username;
14. 退出postgres用戶登錄,命令爲\q, 對,你沒看錯,就是一個反斜槓和一個q
15. 開啓防火牆5432端口
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
sudo firewall-cmd --reload
16. 嘗試用username登錄數據庫
psql -U username -h 127.0.0.1 -p 5432 -d testdb -W