PostgreSQL安装和配置教程(Linux版)
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语句了: