[Linux] Postgresql DB 安裝

工作上用到這個這邊記錄一下.
環境是linux.

安裝指令

$ sudo yum install rh-postgresql96-postgresql-server.x86_64

 

初始化資料資料庫

$ /opt/rh/rh-postgresql96/root/usr/bin/postgresql-setup --initdb
* Initializing database in '/var/opt/rh/rh-postgresql96/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_rh-postgresql96-postgresql.log

啟用service

$ systemctl enable rh-postgresql96-postgresql

如果啟動失敗找不到lib, 可能要手動指一下參考, 讓執行環境可以連結到他.

$ ln -s /opt/rh/rh-postgresql96/root/usr/lib64/libpq.so.rh-postgresql96-5 /usr/lib64/libpq.so.rh-postgresql96-5

Service start

$ sudo systemctl status rh-postgresql96-postgresql.service

測試看看

$ sudo su - postgres
Last login: Thu Mar 12 01:34:48 MDT 2020 on pts/1
-bash-4.2$ /opt/rh/rh-postgresql96/root/bin/psql
psql (9.6.10)
Type "help" for help.

postgres=# SELECT current_user;
current_user
--------------
postgres
(1 row)

 

若有需要開放遠端存取, config這邊要設定一下.

/var/opt/rh/rh-postgresql96/lib/pgsql/data/postgresql.conf

也可能是這個路徑. 看你裝哪個版本的postgresql, 基本上是一樣的.

/var/lib/pgsql/data/postgresql.conf

listen_addresses = '*'         # what IP address(es) to listen on;

或者你可以這樣限定存取的IP

listen_addresses = '192.168.1.100,192.168.1.101,192.168.1.110'         # what IP address(es) to listen on;

設定完要重啟service.

PS. postgresql 預設Port是 5432

Connection string format

postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]

OK. 收工

參考:
https://docs.postgresql.tw/preface

https://zh.wikipedia.org/wiki/PostgreSQL