1、在很多时候,服务器不能联网,需要离线安装,下面是Postgresql10离线安装的步骤:

首先进入官网:https://www.postgresql.org,然后找到Download下载

Postgresql10离线安装_Postgresql

然后选择自己的服务器系统,操作系统,如下所示:

Postgresql10离线安装_Postgresql_02

然后,选择自己的版本,如下所示:

Postgresql10离线安装_Postgresql_03

到了这三个安装包,打包下载,然后上传到自己的服务器,如下所示:

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地址上监听,从而允许远程连接到数据库服务器,如下所示:

Postgresql10离线安装_Postgresql_04

 查找文件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离线安装_离线安装_05

最后,重启postgresql10,如下所示:

1 [root@slaver1 psql10]# 
2 [root@slaver1 psql10]# systemctl restart postgresql-10.service 
3 [root@slaver1 psql10]#

此时,就可以远程使用Navicat连接此postgresql数据库了。