1、在很多時候,服務器不能聯網,需要離線安裝,下面是Postgresql10離線安裝的步驟:
首先進入官網:https://www.postgresql.org,然后找到Download下載
然后選擇自己的服務器系統,操作系統,如下所示:
然后,選擇自己的版本,如下所示:
2、在能聯網的機器上下載yum源,如下所示:
1 [root@slaver1 ~]# sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 2 已加載插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager 3 4 This system is not registered with an entitlement server. You can use subscription-manager to register. 5 6 pgdg-redhat-repo-latest.noarch.rpm | 6.8 kB 00:00:00 7 正在檢查 /var/tmp/yum-root-pJEQZx/pgdg-redhat-repo-latest.noarch.rpm: pgdg-redhat-repo-42.0-14.noarch 8 /var/tmp/yum-root-pJEQZx/pgdg-redhat-repo-latest.noarch.rpm 將被安裝 9 正在解決依賴關系 10 --> 正在檢查事務 11 ---> 軟件包 pgdg-redhat-repo.noarch.0.42.0-14 將被 安裝 12 --> 解決依賴關系完成 13 Altinity_clickhouse/x86_64/signature | 833 B 00:00:00 14 Altinity_clickhouse/x86_64/signature | 1.0 kB 00:00:00 !!! 15 Altinity_clickhouse-source/signature | 833 B 00:00:00 16 Altinity_clickhouse-source/signature | 1.0 kB 00:00:00 !!! 17 base/7/x86_64 | 3.6 kB 00:00:00 18 elrepo | 3.0 kB 00:00:00 19 extras/7/x86_64 | 2.9 kB 00:00:00 20 updates/7/x86_64 | 2.9 kB 00:00:00 21 updates/7/x86_64/primary_db | 5.7 MB 00:00:09 22 23 依賴關系解決 24 25 ========================================================================================================================================================= 26 Package 架構 版本 源 大小 27 ========================================================================================================================================================= 28 正在安裝: 29 pgdg-redhat-repo noarch 42.0-14 /pgdg-redhat-repo-latest.noarch 11 k 30 31 事務概要 32 ========================================================================================================================================================= 33 安裝 1 軟件包 34 35 總計:11 k 36 安裝大小:11 k 37 Downloading packages: 38 Running transaction check 39 Running transaction test 40 Transaction test succeeded 41 Running transaction 42 正在安裝 : pgdg-redhat-repo-42.0-14.noarch 1/1 43 驗證中 : pgdg-redhat-repo-42.0-14.noarch 1/1 44 45 已安裝: 46 pgdg-redhat-repo.noarch 0:42.0-14 47 48 完畢! 49 [root@slaver1 ~]#
開始下載postgresql軟件,如下所示:
1 [root@slaver1 yum-root-pJEQZx]# yum search postgres
創建psql10目錄,如下所示:
1 [root@slaver1 local]# mkdir /root/psql10 2 [root@slaver1 local]# cd /root/psql10/ 3 [root@slaver1 psql10]# ll 4 總用量 0 5 [root@slaver1 psql10]#
安裝依賴,如下所示:
1 [root@slaver1 psql10]# yum install --downloadonly --downloaddir=psql10 libicu postgresql10-libs 2 已加載插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager 3 4 This system is not registered with an entitlement server. You can use subscription-manager to register. 5 6 Loading mirror speeds from cached hostfile 7 * base: mirrors.huaweicloud.com 8 * elrepo: mirrors.tuna.tsinghua.edu.cn 9 * extras: mirrors.huaweicloud.com 10 * updates: mirrors.bfsu.edu.cn 11 Altinity_clickhouse/x86_64/signature | 833 B 00:00:00 12 Altinity_clickhouse/x86_64/signature | 1.0 kB 00:00:00 !!! 13 Altinity_clickhouse-source/signature | 833 B 00:00:00 14 Altinity_clickhouse-source/signature | 1.0 kB 00:00:00 !!! 15 軟件包 libicu-50.2-4.el7_7.x86_64 已安裝並且是最新版本 16 正在解決依賴關系 17 --> 正在檢查事務 18 ---> 軟件包 postgresql10-libs.x86_64.0.10.16-1PGDG.rhel7 將被 安裝 19 --> 解決依賴關系完成 20 21 依賴關系解決 22 23 ========================================================================================================================================================= 24 Package 架構 版本 源 大小 25 ========================================================================================================================================================= 26 正在安裝: 27 postgresql10-libs x86_64 10.16-1PGDG.rhel7 pgdg10 358 k 28 29 事務概要 30 ========================================================================================================================================================= 31 安裝 1 軟件包 32 33 總下載量:358 k 34 安裝大小:1.3 M 35 Background downloading packages, then exiting: 36 警告:/root/psql10/psql10/postgresql10-libs-10.16-1PGDG.rhel7.x86_64.rpm: 頭V4 DSA/SHA1 Signature, 密鑰 ID 442df0f8: NOKEY17 kB/s | 336 kB 00:00:01 ETA 37 postgresql10-libs-10.16-1PGDG.rhel7.x86_64.rpm 的公鑰尚未安裝 38 postgresql10-libs-10.16-1PGDG.rhel7.x86_64.rpm | 358 kB 00:00:17 39 exiting because "Download Only" specified 40 [root@slaver1 psql10]# 41 [root@slaver1 psql10]#
安裝軟件包,如下所示:
1 [root@slaver1 psql10]# yum install --downloadonly --downloaddir=psql10 postgresql10 postgresql10-server 2 已加載插件:fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager 3 4 This system is not registered with an entitlement server. You can use subscription-manager to register. 5 6 Loading mirror speeds from cached hostfile 7 * base: mirrors.huaweicloud.com 8 * elrepo: mirrors.tuna.tsinghua.edu.cn 9 * extras: mirrors.huaweicloud.com 10 * updates: mirrors.bfsu.edu.cn 11 正在解決依賴關系 12 --> 正在檢查事務 13 ---> 軟件包 postgresql10.x86_64.0.10.16-1PGDG.rhel7 將被 安裝 14 --> 正在處理依賴關系 postgresql10-libs(x86-64) = 10.16-1PGDG.rhel7,它被軟件包 postgresql10-10.16-1PGDG.rhel7.x86_64 需要 15 --> 正在處理依賴關系 libpq.so.5()(64bit),它被軟件包 postgresql10-10.16-1PGDG.rhel7.x86_64 需要 16 ---> 軟件包 postgresql10-server.x86_64.0.10.16-1PGDG.rhel7 將被 安裝 17 --> 正在檢查事務 18 ---> 軟件包 postgresql10-libs.x86_64.0.10.16-1PGDG.rhel7 將被 安裝 19 --> 解決依賴關系完成 20 21 依賴關系解決 22 23 ========================================================================================================================================================= 24 Package 架構 版本 源 大小 25 ========================================================================================================================================================= 26 正在安裝: 27 postgresql10 x86_64 10.16-1PGDG.rhel7 pgdg10 1.6 M 28 postgresql10-server x86_64 10.16-1PGDG.rhel7 pgdg10 4.5 M 29 為依賴而安裝: 30 postgresql10-libs x86_64 10.16-1PGDG.rhel7 pgdg10 358 k 31 32 事務概要 33 ========================================================================================================================================================= 34 安裝 2 軟件包 (+1 依賴軟件包) 35 36 總計:6.5 M 37 總下載量:6.2 M 38 安裝大小:28 M 39 Background downloading packages, then exiting: 40 警告:/root/psql10/psql10/postgresql10-10.16-1PGDG.rhel7.x86_64.rpm: 頭V4 DSA/SHA1 Signature, 密鑰 ID 442df0f8: NOKEY ] 58 kB/s | 2.5 MB 00:01:05 ETA 41 postgresql10-10.16-1PGDG.rhel7.x86_64.rpm 的公鑰尚未安裝 42 (1/2): postgresql10-10.16-1PGDG.rhel7.x86_64.rpm | 1.6 MB 00:00:44 43 (2/2): postgresql10-server-10.16-1PGDG.rhel7.x86_64.rpm | 4.5 MB 00:03:07 44 --------------------------------------------------------------------------------------------------------------------------------------------------------- 45 總計 34 kB/s | 6.2 MB 00:03:07 46 exiting because "Download Only" specified 47 [root@slaver1 psql10]#
至此,你已經拿到了這三個安裝包,打包下載,然后上傳到自己的服務器,如下所示:
1 [root@slaver1 psql10]# ll 2 總用量 6668 3 -rw-r--r-- 1 root root 1685364 2月 11 08:36 postgresql10-10.16-1PGDG.rhel7.x86_64.rpm 4 -rw-r--r-- 1 root root 366440 2月 11 08:36 postgresql10-libs-10.16-1PGDG.rhel7.x86_64.rpm 5 -rw-r--r-- 1 root root 4769224 2月 11 08:36 postgresql10-server-10.16-1PGDG.rhel7.x86_64.rpm 6 [root@slaver1 psql10]#
3、如果,你有這三個安裝包,可以直接上傳到服務器,忽略上面的步驟,開始進行安裝,開始進行離線安裝,如下所示:
1 [root@slaver1 psql10]# rpm -ivh postgresql10-* 2 警告:postgresql10-10.16-1PGDG.rhel7.x86_64.rpm: 頭V4 DSA/SHA1 Signature, 密鑰 ID 442df0f8: NOKEY 3 准備中... ################################# [100%] 4 正在升級/安裝... 5 1:postgresql10-libs-10.16-1PGDG.rhe################################# [ 33%] 6 2:postgresql10-10.16-1PGDG.rhel7 ################################# [ 67%] 7 3:postgresql10-server-10.16-1PGDG.r################################# [100%] 8 [root@slaver1 psql10]#
初始化數據,啟動服務,如下所示:
1 [root@slaver1 psql10]# 2 [root@slaver1 psql10]# /usr/pgsql-10/bin/postgresql-10-setup initdb 3 Initializing database ... OK 4 5 [root@slaver1 psql10]#
執行postgresql開機自啟動,啟動postgresql,如下所示:
1 [root@slaver1 psql10]# 2 [root@slaver1 psql10]# systemctl enable postgresql-10 3 Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-10.service to /usr/lib/systemd/system/postgresql-10.service. 4 [root@slaver1 psql10]# systemctl start postgresql-10 5 [root@slaver1 psql10]# 6 [root@slaver1 psql10]# 7 [root@slaver1 psql10]#
連接postgresql,如下所示:
1 [root@slaver1 psql10]# su - postgres 2 -bash-4.2$ psql 3 psql (10.16) 4 輸入 "help" 來獲取幫助信息. 5 6 postgres=# \q 7 -bash-4.2$ exit 8 登出 9 [root@slaver1 psql10]#
可以查看數據庫,如下所示:
1 [root@slaver1 psql10]# su - postgres 2 上一次登錄:日 3月 7 22:42:23 CST 2021pts/1 上 3 \-bash-4.2$ \ 4 > psql 5 psql (10.16) 6 輸入 "help" 來獲取幫助信息. 7 8 postgres=# 9 postgres=# \l 10 數據庫列表 11 名稱 | 擁有者 | 字元編碼 | 校對規則 | Ctype | 存取權限 12 -----------+----------+----------+-------------+-------------+----------------------- 13 postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | 14 template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + 15 | | | | | postgres=CTc/postgres 16 template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + 17 | | | | | postgres=CTc/postgres 18 (3 行記錄) 19 20 postgres=#
修改postgresql的postgres賬號的密碼,自己一定要記住這個密碼,如下所示:
1 postgres=# 2 postgres=# ALTER USER postgres WITH PASSWORD 'postgres'; 3 ALTER ROLE 4 postgres=# \q 5 -bash-4.2$ exit 6 登出 7 [root@slaver1 psql10]#
執行\q就可以退出命令行了。
4、創建新用戶來訪問PostgreSQL。
1)、如上所述,先切換到Linux用戶postgres,並執行psql:
1 [root@slaver1 psql10]# su - postgres 2 上一次登錄:日 3月 7 22:43:18 CST 2021pts/1 上 3 -bash-4.2$ psql 4 psql (10.16) 5 輸入 "help" 來獲取幫助信息. 6 7 postgres=# 8 postgres=# 9 postgres=#
現在位於數據庫提示符下。
2)、創建數據庫新用戶,如postsql :
1 postgres=# 2 postgres=# CREATE USER postsql WITH PASSWORD '123456'; 3 CREATE ROLE 4 postgres=#
注意:語句要以分號結尾,密碼要用單引號括起來。
3)、創建用戶數據庫,如postsql:
1 postgres=# CREATE DATABASE postsql OWNER postsql; 2 CREATE DATABASE 3 postgres=#
4)、將postsql數據庫的所有權限都賦予postsql,並查看用戶的角色,如下所示:
1 postgres=# GRANT ALL PRIVILEGES ON DATABASE postsql TO postsql; 2 GRANT 3 postgres=# \du 4 角色列表 5 角色名稱 | 屬性 | 成員屬於 6 ----------+--------------------------------------------+---------- 7 postgres | 超級用戶, 建立角色, 建立 DB, 復制, 繞過RLS | {} 8 postsql | | {} 9 10 postgres=#
5)、使用命令 \q 退出psql:
1 postgres=# 2 postgres=# \q 3 -bash-4.2$ exit 4 登出 5 [root@slaver1 psql10]#
5、Postgresql 10版本,需要注意,安裝完成的數據庫,是不能遠程訪問的,要做一些權限設置:
首先,需要查找文件postgresql.conf,如下所示:
1 [root@slaver1 psql10]# 2 [root@slaver1 psql10]# find / -name "postgresql.conf" 3 /var/lib/pgsql/10/data/postgresql.conf 4 [root@slaver1 psql10]# vim /var/lib/pgsql/10/data/postgresql.conf 5 [root@slaver1 psql10]#
修改配置,listen_addresses項值設定為'*',在所有IP地址上監聽,從而允許遠程連接到數據庫服務器,如下所示:
查找文件pg_hba.conf,如下所示:
1 [root@slaver1 psql10]# 2 [root@slaver1 psql10]# find / -name "pg_hba.conf" 3 /var/lib/pgsql/10/data/pg_hba.conf 4 [root@slaver1 psql10]# 5 [root@slaver1 psql10]# 6 [root@slaver1 psql10]# vim /var/lib/pgsql/10/data/pg_hba.conf 7 [root@slaver1 psql10]#
修改文件,在# IPv4 local connections: 行下,添加以下內容:
1 第一行,此處解釋:192.168.110.0/24。意思為允許192.168.110段內的ip連接。 2 host all all 192.168.110.0/24 md5 3 第二行,此處解釋:允許任意用戶從任意機器上以密碼方式訪問數據庫。 4 host all all 0.0.0.0/0 md5
具體,如下所示:
最后,重啟postgresql10,如下所示:
1 [root@slaver1 psql10]# 2 [root@slaver1 psql10]# systemctl restart postgresql-10.service 3 [root@slaver1 psql10]#
此時,就可以遠程使用Navicat連接此postgresql數據庫了。