跳到主要内容

简介与安装

简介

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

源码编译安装

# 安装依赖
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