一,安裝
-
1,創建用戶
groupadd postgres
useradd -g postgres postgres
mkdir /data/postgres -
2,下載並安裝
cd /data/tools/
wget http://ftp.postgresql.org/pub/source/v11.0/postgresql-11.0.tar.gz
tar xf postgresql-11.0.tar.gz
cd postgresql-11.0/
./configure --prefix=/data/postgres --without-readline
如不指定安裝目錄,則默認會安裝在/usr/local/下。
如果編譯出錯,根據提示信息yum安裝對應的包即可。
不報錯繼續即可
也可通過./configure --help可以看到編譯相關的幫助信息
make
make過程比較耗時
打印如下信息即可
All of PostgreSQL successfully made. Ready to install.
make install
成功后會打印如下信息:
PostgreSQL installation complete. -
3,查看目錄結構
cd /data/postgres/
[root@master1 postgres]# ll
總用量 16
drwxr-xr-x 2 root root 4096 6月 28 15:59 bin
drwxr-xr-x 6 root root 4096 6月 28 15:59 include
drwxr-xr-x 4 root root 4096 6月 28 15:59 lib
drwxr-xr-x 6 root root 4096 6月 28 15:59 share -
4,配置環境變量及目錄權限
vim /etc/profile
export PGHOME=/data/postgres
export PGDATA=/data/postgres/data
export PGLIB=/data/postgres/lib
export PATH=$PGHOME/bin:$PATH
source /etc/profile
mkdir /data/postgres/data
mkdir /data/postgres/logs
chown -R postgres:postgres ../postgres
- 5,切換用戶初始化數據庫,再啟動數據庫
su postgres
initdb -D /data/postgres/data/
打印以下信息即可
Success. You can now start the database server using:
pg_ctl -D /data/postgres/data/ -l logfile start
啟動數據庫
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile start
waiting for server to start.... done
server started
啟動成功
可以查看啟動日志 cat logs/logfile
此時可查看data目錄,已經生成相應的配置文件及目錄。
二,配置
- 1,修改用戶密碼
初始化完成后是沒有密碼的,可直接連接
su postgres 或 psql -U postgres
psql
psql (11.0)
Type "help" for help.
postgres=#
修改密碼
postgres=# alter user postgres with password 'postgres@123'
postgres-#
\q 退出
用戶名密碼方式登錄
psql -U postgres -W
- 2,修改默認配置文件
cd /data/postgres/data
初始化后基本是默認配置文件,可以自行修改
vim postgresql.conf
配置文件中,默認只能本機訪問postgresql;
修改listen_addresses = 'localhost'為listen_addresses = '*',允許所有遠程訪問;
修改配置文件需要重啟服務。
默認監聽地址
!#listen_addresses = 'localhost'
listen_addresses = ''
!#默認監聽端口
!#port = 5432
!#最大連接數,默認100
max_connections = 100
...
其他可參考中文社區
- 3,主機認證
修改pg_hba.conf文件需要重啟服務
vim pg_hba.conf
!#在第82行之后,”IPv4 local connections”下新增允許的客戶端;
!#“host” 代表主機類型,第一個“all”代表db ,第二個“all”代表user ,“172.29.3.67/32” 代表client ip,“trust”代表認證方式;
!#認證方式除“trust”外,還有“peer”, “ident”, “md5”, “password”等
85 # IPv4 local connections:
86 host all all 127.0.0.1/32 trust
87 host all all 172.16.200.162/32 trust
-
4,相關命令
!#查看狀態
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile status
!#停止服務
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile stop
啟動服務
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile start -
5,測試
可以用pgadmin連接postgresql
pgadmin下載地址:https://www.pgadmin.org/download/
三,使用
- 1,簡單命令
創建用戶
postgres=# create user postuser1 with password 'user1@123';
創建數據庫
同時指定數據庫的所有者
postgres=# create database postdb1 owner postuser1;
數據庫賦權
未賦權則賬戶只能登錄控制台
postgres=# grant all privileges on database postdb1 to postuser1;
登錄數據庫
在操作系統層使用新建的賬號登錄新建的數據庫,登錄后提示符為“postdb1=>”;
如果在postgres賬戶下直接使用“postgres=# \c postdb1;”登錄,則登錄用戶依然是postgres,
-bash-4.2$ psql -U postuser1 -d postdb1 -h 127.0.0.1 -p 5432
創建表
postdb1=> create table tb1(
id int primary key,
name VARCHAR(20),
salary real
);
插入表
postdb1=> insert into tb1(
id, name, salary)
values(
101, 'Mike', 5000.00
);
查詢
postdb1=>select * from tb1;
- 2,基礎備份
pg_basebackup -h 10.11.4.186 -p 5432 -U repl -F p -P -D /var/lib/pgsql/9.6/data/
-h,主庫主機,-p,主庫服務端口;
-U,復制用戶;
-F,p是默認輸出格式,輸出數據目錄和表空間相同的布局,t表示tar格式輸出;
-P,同--progress,顯示進度;
-D,輸出到指定目錄;
因為主庫采用的是md5認證,這里需要密碼認證。