PostgreSQL安装和配置教程(Linux版)
本文最后更新于:2025年4月13日
PostgreSQL是基于POSTGRES 4.2版本的对象-关系型数据库,由加州大学伯克利分校计算机系研发。POSTGRES开创了许多先进理念,这些概念后来才在一些数据库系统中出现(他们的官网标题宣传的是世界上最先进的开源关系型数据库)。
PostgreSQL是原伯克利代码的后代,它是开源的,支持大部分SQL标准并提供很多现代化特性:复杂查询、外键、触发器、更新视图等。
此外,用户能以多种方式扩展PostgreSQL,例如可以添加新数据类型、新函数、新操作符等。由于自由的许可,PostgreSQL可以被任何人使用、修改、发布。
以下是Linux环境下PostgreSQL的安装、配置与卸载教程:
一、安装前操作
1. 需要安装Liunx操作系统的小伙伴,点击下面任意一个链接查看安装教程:
| CentOS | Ubuntu | Debian | 
|---|---|---|
| 点我查看 | 点我查看 | 点我查看 | 
2. 本文使用数据库管理软件DBeaver,需要安装的小伙伴根据自己的操作系统查看安装教程:
| Windows | macOS | 
|---|---|
| 点我查看 | 点我查看 | 
3. 根据操作系统安装如下依赖:
- CentOS
| 1 |  | 
- Ubuntu/Debian
| 1 |  | 
二、下载PostgreSQL安装包
1. 这里我使用wget命令下载的是15.4版本的源码安装包,存储到/usr/local目录下:
| 1 |  | 
说明:需要安装其他版本的源码安装包,请点击右侧链接:点我查看
2. 下载完成后,切换到/usr/local目录下:
| 1 |  | 
3. 下载完成后,执行ls命令,出现PostgreSQL安装包:

三、安装PostgreSQL
1. 将下载好的安装解压,执行如下命令:
| 1 |  | 
2. 进入解压后的文件夹,执行如下命令:
| 1 |  | 
3. 安装前检测系统环境(不使用readline和zlib检查),生成适合该环境的Makefile:
| 1 |  | 
此时执行ls命令可以看到生成的Makefile文件:

4. 根据Makefile编译源代码,生成可执行文件和其他相关文件(编译需要较长时间,请耐心等待):
| 1 |  | 
5. 切换到root用户(可能需要输入密码):
| 1 |  | 
6. 将编译好的文件复制到指定目录下(默认是/usr/local/pgsql目录):
| 1 |  | 
7. 创建一个名为postgres的用户(密码自定义,为了方便记忆,这里我将其设置为123456):
| 1 |  | 
8. 创建一个存储数据文件的目录/usr/local/pgsql/data:
| 1 |  | 
9. 将/usr/local/pgsql/data目录所有权变更为postgres用户:
| 1 |  | 
10. 切换到postgres用户:
| 1 |  | 
11. 初始化PostgreSQL数据库,创建数据库目录结构和默认配置:
| 1 |  | 
出现下面提示说明PostgreSQL初始化成功:

四、为PostgreSQL设置环境变量
为了方便后续在命令行中使用PostgreSQL相关命令,建议为PostgreSQL设置环境变量。
1. 点击Electerm上方点击加号,再打开一个命令行窗口(登录的是root用户):

2. 使用vim命令编辑环境变量文件/etc/profile:
| 1 |  | 
3. 复制下面内容:
| 1 |  | 
4. 进入vim编辑器后,按i键进入编辑模式,将光标移动到文件末尾,按ShiftInsert键将上一步复制的内容粘贴到此处:

5. 按Esc键退出编辑,输入:wq保存并退出。
6. 使用source命令让配置文件生效:
| 1 |  | 
7. 这里我们来检查一下上述配置是否生效,执行如下命令可以查看当前PostgreSQL版本信息:
| 1 |  | 

五、启动PostgreSQL服务并设置为开机自启动
1. (当前登录的是root用户)使用vim命令在创建一个PostgreSQL服务文件:
| 1 |  | 
2. 复制下方内容:
| 1 |  | 
3. 进入vim编辑器后,按i键进入编辑模式,按ShiftInsert键将上一步复制的内容粘贴到此处:

4. 按Esc键退出编辑,输入:wq保存并退出。
5. 执行如下命令重新加载配置文件:
| 1 |  | 
6. 重启PostgreSQL服务:
| 1 |  | 
7. 执行如下命令可以查看PostgreSQL服务状态:
| 1 |  | 
此时PostgreSQL正常运行,退出查看请按Q键:

8. 如果您希望PostgreSQL开机自启动,执行如下命令即可:
| 1 |  | 
六、远程连接PostgreSQL
(当前登录的是root用户)上述内容如果你已经配置好,你就可以在命令行使用PostgreSQL了:
| 1 |  | 
此时我们只需要填写前面配置postgres用户密码,即可正常使用:

为数据库用户postgres重新设置密码,为了方便记忆,这里我将密码设置为123456(密码不在命令行显示):
| 1 |  | 
执行如下命令退出PostgreSQL命令行:
| 1 |  | 
在更多的情况下,我们使用的是第三方客户端(例如:Navicat、DBeaver等)远程连接PostgreSQL服务器,并且默认情况下系统没有开放PostgreSQL默认端口5432,并且PostgreSQL默认只开放本机访问,其他远程访问默认是拒绝的。
以下是解决上述问题的方案:
1. 使用vim命令编辑/usr/local/pgsql/data目录下的postgresql.conf文件:
| 1 |  | 
2. 进入vim的命令模式后,依次执行如下命令:
| 1 |  | 
3. 按i键将第60行修改成所有IP都可以访问,效果图如下:

4. 按Esc退出编辑模式,输入:wq保存并退出。
5. 使用vim命令编辑/usr/local/pgsql/data目录下pg_hba.conf文件:
| 1 |  | 
6. 进入vim的命令模式后,依次执行如下命令:
| 1 |  | 
7. 在第91行末尾换行,添加如下内容,所有IP访问都需要密码,效果图如下:

8. 按Esc退出编辑模式,输入:wq保存并退出。
9. 重启PostgreSQL服务:
| 1 |  | 
10. 开放5432端口(PostgreSQL默认使用端口):
- CentOS
| 1 |  | 
查看防火墙所有开放的端口:
| 1 |  | 

- Ubuntu/Debian
| 1 |  | 
此时使用ufw status命令可以看到5432端口已经开放访问:

11. 打开DBeaver,按照下图所示操作选择PostgreSQL:


12. 按照下图所示操作配置数据库连接信息:

13. 点击测试连接的小伙伴需要下载数据驱动文件,点击下载即可:

14. 等待一段时间后,驱动下载完成,点击取消关闭下载驱动界面:

15. 再次点击测试连接,如果出现如下提示就说明可以远程链接PostgreSQL数据库了:

16. 点击完成,接下来就可以使用DBeaver编写SQL语句了:



