1、在很多时候,服务器不能联网,需要离线安装,下面是Postgresql10离线安装的步骤:
首先进入官网:https://www.postgresql.org,然后找到Download下载
然后选择自己的服务器系统,操作系统,如下所示:
然后,选择自己的版本,如下所示:
2、在能联网的机器上下载yum源,如下所示:
代码语言:javascript复制 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软件,如下所示:
代码语言:javascript复制1 [root@slaver1 yum-root-pJEQZx]# yum search postgres
创建psql10目录,如下所示:
代码语言:javascript复制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]#
安装依赖,如下所示:
代码语言:javascript复制 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]#
安装软件包,如下所示:
代码语言:javascript复制 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]#
至此,你已经拿到了这三个安装包,打包下载,然后上传到自己的服务器,如下所示:
代码语言:javascript复制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、如果,你有这三个安装包,可以直接上传到服务器,忽略上面的步骤,开始进行安装,开始进行离线安装,如下所示:
代码语言:javascript复制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]#
初始化数据,启动服务,如下所示:
代码语言:javascript复制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,如下所示:
代码语言:javascript复制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,如下所示:
代码语言:javascript复制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]#
可以查看数据库,如下所示:
代码语言:javascript复制 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账号的密码,自己一定要记住这个密码,如下所示:
代码语言:javascript复制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:
代码语言:javascript复制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 :
代码语言:javascript复制1 postgres=#
2 postgres=# CREATE USER postsql WITH PASSWORD '123456';
3 CREATE ROLE
4 postgres=#
注意:语句要以分号结尾,密码要用单引号括起来。
3)、创建用户数据库,如postsql:
代码语言:javascript复制1 postgres=# CREATE DATABASE postsql OWNER postsql;
2 CREATE DATABASE
3 postgres=#
4)、将postsql数据库的所有权限都赋予postsql,并查看用户的角色,如下所示:
代码语言:javascript复制 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:
代码语言:javascript复制1 postgres=#
2 postgres=# q
3 -bash-4.2$ exit
4 登出
5 [root@slaver1 psql10]#
5、Postgresql 10版本,需要注意,安装完成的数据库,是不能远程访问的,要做一些权限设置:
首先,需要查找文件postgresql.conf,如下所示:
代码语言:javascript复制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,如下所示:
代码语言:javascript复制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: 行下,添加以下内容:
代码语言:javascript复制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,如下所示:
代码语言:javascript复制1 [root@slaver1 psql10]#
2 [root@slaver1 psql10]# systemctl restart postgresql-10.service
3 [root@slaver1 psql10]#
此时,就可以远程使用Navicat连接此postgresql数据库了。