PostgreSQL 学习笔记(一) 补足:CentOS7 下 12.8 版本数据库的安装

虽然我很早之前就完成了数据库版本的升级(9.2.4 -> 12.8),但是由于考虑到教程对新手的友好就一直没有去更新第一章,这次作为补足放出吧。
新的特性可以参照这篇文章:PostgreSQL 12 新特性汇总,对于这种大型开源项目并有专业的团队和完善的社区做维护,我是推荐无脑上新版本的。


参考文章:在CentOS 7上安装&配置PostgreSQL 12

1、导入 yum 源并安装 PostgreSQL 服务
导入 yum 源:

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

安装 PostgreSQL 服务:

sudo yum install -y postgresql12 postgresql12-server

2、初始化和启动数据库
初始化: 注:如果你是在安装主从同步中的数据库的话,请不要初始化数据库。

sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

启动数据库:

# 启动数据库服务
sudo systemctl start postgresql-12
# 设置为开机自启动
sudo systemctl enable postgresql-12

3、修改初始用户 postgres 的密码
Linux 系统中切换到 postgres 用户,并进入 psql 命令行:

su postgres
psql

执行 SQL 语句:

ALTER USER postgres WITH PASSWORD 'new_postgres_password';

退出 psql 命令行使用:Ctrl + D

4、配置数据库允许远程访问
首先开放防火墙和端口,这里就不做演示了,默认 PostgreSQL 服务会启动在 5432 端口上。
① 修改允许访问的 IP:

vi /var/lib/pgsql/12/data/postgresql.conf

将 listen_addresses 解注并将值改为 *:

...
...
listen_addresses='*'
...
...

② 允许所有 IP 使用密码验证访问:

vi /var/lib/pgsql/12/data/pg_hba.conf

在尾部添加:

...
...
host  all  all 0.0.0.0/0 md5

稍微讲下默认配置中用到的认证模式:

  • trust: 信任任何连接,不需要输入密码,即使数据库中没有这个用户。
  • peer: 信任任何连接,不需要输入密码,但是需要数据库中存在这个用户。
  • md5: 需要输入密码,且需要数据库中存在这个用户。

想详细了解数据库的认证方式可以参考官方文档:The pg_hba.conf File

之后重启数据库:

sudo systemctl restart postgresql-12

结束。