简介与安装
简介
PostgreSQL是一种开源对象关系型数据库。
特点
- 稳定可靠。支持WAL、PITR、异步复制、同步复制等技术保障数据高可用性。
- 开源。开源协议类似BSD和MIT,开放度很高。
- 丰富的数据类型。包括基本的整型、字符串、布尔、时间戳、UUID,还有JSON、XML、Key-Value,地理型的点、线、多边形等,也可以自定义数据类型。
- 复杂SQL支持更好。相较于MySQL,PostgreSQL对多层嵌套子查询支持更好,而且提供丰富的内置函数
- 提供专门的性能优化工具。PostgreSQL提供专门的性能优化工具,可以很方便地定位问题。
- 拓展性强。编写插件拓展功能很方便。
- 轻便小巧。相较于Oracle,PostgreSQL占用的硬件资源更少。
安装
docker安装postgresql
- 使用docker安装的postgresql,dba用户名为
postgres
version: "3"
services:
postgresql:
image: postgres:latest
container_name: postgres
ports:
- 5432:5432
volumes:
- /home/apps/postgresql/data:/var/lib/postgresql/data
environment:
- "POSTGRES_PASSWORD=123456"
- 在容器内执行
psql -U postgres -W
,输入密码后即可通过dba进入控制台。或者切换到postgres用户:su - postgres
,切换用户后执行psql
即可登进控制台。
使用包管理器安装
- 系统:centos7 64位
# 添加官方源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装
sudo yum install -y postgresql14-server
# 初始化
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
# 设置开机自启
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
源码编译安装
- 系统版本:centos 7 64位
- pgsql版本:15.2
- 官方文档:https://www.postgresql.org/docs/current/installation.html
- 从官网下载源码包:https://www.postgresql.org/ftp/source/
# 安装依赖
yum install -y readline readline-devel zlib zlib-devel gcc
# debian 12, bison和flex用于开发版调试, 非必需安装
sudo apt install -y gcc libreadline-dev zlib1g-dev make bison flex
# 创建用户并修改密码
useradd postgres
passwd postgres
su - postgres
mkdir -p $HOME/pgsql
# 进入源码包解压目录编译
./configure --prefix=/home/postgres/pgsql
make
make install
# 将/home/postgres/pgsql/bin目录加到postgres用户的PATH环境变量
# 1. 初始化数据目录
initdb -D /home/postgres/pgsql/data
# 2. 启动实例
pg_ctl -D /home/postgres/pgsql/data -l logfile start
# 3. 创建数据库test
createdb test
# 4. 从命令行使用psql工具连接到test数据库
psql -d test
源码编译安装完后,数据库服务默认只允许本地连接,需修改 /home/postgres/pgsql/data/pg_hba.conf
文件和postgresql.conf
文件。
postgresql.conf中编辑
listen_addresses = '*'
pg_hba.conf 添加
host all all 0.0.0.0/0 scram-sha-256
# 修改pg_hba.conf文件可以热加载, 不行再重启
pg_ctl reload -D /home/postgres/pgsql/data