PostgreSQL 是一个开源的关系型数据库管理系统
2025-05-16
2
参考资料
PostgreSQL 简介
PostgreSQL 是一个开源的关系型数据库管理系统(RDBMS),支持 SQL 标准并扩展了许多高级功能。它以其稳定性、可扩展性和强大的功能集而闻名,适用于各种规模的应用程序。
特点
开源免费:遵循 PostgreSQL License,可自由使用和修改。
高度可扩展:支持自定义数据类型、函数、操作符和索引。
ACID 兼容:严格的事务支持,确保数据一致性。
多版本并发控制(MVCC):高效处理并发读写操作。
丰富的扩展生态:如 PostGIS(地理空间数据)、pg_partman(分区管理)等。
跨平台:支持 Linux、Windows、macOS 等操作系统。
最新更新内容及时间
版本 16(2023年9月14日发布):
逻辑复制的并行处理。
新增
pg_stat_io
视图监控 I/O 统计。增强 JSON/JSONB 处理性能。
改进 vacuum 和 ANALYZE 操作。
下载地址
Docker 镜像:
docker pull postgres:[tag] # 如 latest、16、alpine
官网地址
文档地址
Docker 安装示例
# 拉取镜像 docker pull postgres:16 # 运行容器(默认用户 postgres,密码 mypassword) docker run --name mypostgres \ -e POSTGRES_PASSWORD=mypassword \ -p 5432:5432 \ -d postgres:16 # 进入容器 docker exec -it mypostgres psql -U postgres
YAML 配置示例(如 docker-compose.yml
)
version: '3' services: postgres: image: postgres:16 environment: POSTGRES_USER: admin POSTGRES_PASSWORD: secret POSTGRES_DB: mydb ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data volumes: pgdata:
常见错误及解决
连接拒绝:
检查服务是否启动:
systemctl status postgresql
。确认
pg_hba.conf
配置允许连接(如host all all 0.0.0.0/0 md5
)。端口占用:
修改端口或停止冲突服务:
netstat -tulnp | grep 5432
。权限不足:
确保用户有数据库访问权限:
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
磁盘空间不足:
清理 WAL 日志或扩展存储:
VACUUM FULL;
。启动失败:
检查日志:
journalctl -u postgresql
或/var/log/postgresql.log
。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。