阿里云ECS服务器安装PostgreSQL

1. 概述

PostgreSQL是一个功能强大的开源数据库,它支持丰富的数据类型和自定义类型,其提供了丰富的接口,可以自行扩展其功能,支持使用流行的编程语言编写自定义函数
PostgreSQL数据库有如下优势

  1. PostgreSQL数据库时功能最强大的开源数据库,最接近工业标准SQL92的查询语言,实现了SQL:2011标准要求的179项主要功能中的160项
  2. 稳定可靠:PostgreSQL数据库时唯一能做到数据领丢失的开源数据库
  3. 开源:PostgreSQL数据库时开源的,遵守BSD协议,使用和二次开发都没有限制
  4. 支持广泛:PostgreSQL数据库支持大量主流开发语言,如C、C++、Perl、Python、Java和PHP

更多详情可以参阅PostgreSQL官网

2. 下载

进入官网,可以看到如下界面

点击Download进入下载页面
可以选择发行版本安装或源码安装
阿里云ECS服务器安装PostgreSQL_第1张图片
本文采用发行版本安装,根据服务器的操作系统选择不同的安装包,选择Linux
阿里云ECS服务器安装PostgreSQL_第2张图片
根据Linux发行版选择不同的Linux distribution
阿里云ECS服务器安装PostgreSQL_第3张图片
选择需要安装的PostgreSQL版本
阿里云ECS服务器安装PostgreSQL_第4张图片
获取到安装命令后就可以在服务器中执行命令进行安装了

3. 安装

安装postgresql安装源

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

阿里云ECS服务器安装PostgreSQL_第5张图片
查询PostgreSQL,使用下面命令可以查看到与postgresql相关的软件

yum search postgresql

search postgresql
安装postgresql

yum install -y postgresql15-server

阿里云ECS服务器安装PostgreSQL_第6张图片
运行完以上命令后,PostgreSQL就安装好了,数据库实例还未创建
初始化PostgreSQL

/usr/pgsql-15/bin/postgresql-15-setup initdb

初始化数据库
设置开机自启动

systemctl enable postgresql-15

启动PostgreSQL数据库

systemctl start postgresql-15

查看服务状态

systemctl status postgresql-15

阿里云ECS服务器安装PostgreSQL_第7张图片
停止数据库

systemctl stop postgresql-15

阿里云ECS服务器安装PostgreSQL_第8张图片
安装contrib包,contrib包中包含了一些插件和工具

yum install postgresql15-contrib

阿里云ECS服务器安装PostgreSQL_第9张图片
安装完成后,可以使用psql连接到数据库

su - postres
psql

阿里云ECS服务器安装PostgreSQL_第10张图片
为用户postgres设置密码

ALTER USER postgres WITH PASSWORD '123456';

4. 配置

4.1. 配置pg_hba.conf

默认创建的数据库无法接受远程连接,需要在pg_hba.conf文件中添加配置项
进入/var/lib/pgsql/15/data/目录,使用vim命令进入编辑模式
在节点# IPv4 local connections:下添加如下配置项

host    all             all             xx.xx.xx.xx/32       scram-sha-256

阿里云ECS服务器安装PostgreSQL_第11张图片

4.2. 配置postgresql.conf

默认只会监听localhost,会造成远程主机无法登录数据库,可以将其修改为*,表示监听所有地址
使用vim命令打开postgresql.conf配置文件,找到Connection Settings节点,修改listen_addresses配置项
阿里云ECS服务器安装PostgreSQL_第12张图片
修改配置后,需要重启数据库

systemctl restart postgresql-15

4.3. 日志配置

PostgreSQL中默认只保留7天的日志,进行循环覆盖,配置如下
阿里云ECS服务器安装PostgreSQL_第13张图片
如果需要配置每天生成一个日志,配置如下:

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 1d
log_rotation_size = 0

如果需要配置每当写满一定大小就切换一个新的日志,配置如下:

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_rotation = off
log_rotation_age = 0
log_rotation_size = 10M

你可能感兴趣的:(PostgreSQL,阿里云,postgresql,Linux)