本文最后更新于 677 天前,其中的信息可能已经有所发展或是发生改变。
虽然我很早之前就完成了数据库版本的升级(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
结束。