参考资料

  1. OpenJDK(Open Java Development Kit)是 Java 平台的开源实现
  2. Ruby 是一种动态、开源的编程语言
  3. alt 是一个轻量级的代理工具,支持多种协议(如 HTTP、SOCKS5),用于网络请求的转发和代理
  4. docker镜像(Image)是什么?
  5. Rust 是一种系统编程语言,专注于安全、并发和性能
  6. Wiki 是一个基于 Web 的协作式知识管理系统
  7. 如何优化Docker镜像?
  8. Fedora 是由 Fedora 项目社区开发

PostgreSQL 简介

PostgreSQL 是一个开源的关系型数据库管理系统(RDBMS),支持 SQL 标准并扩展了许多高级功能。它以其稳定性、可扩展性和强大的功能集而闻名,适用于各种规模的应用程序。

特点

  1. 开源免费:遵循 PostgreSQL License,可自由使用和修改。

  2. 高度可扩展:支持自定义数据类型、函数、操作符和索引。

  3. ACID 兼容:严格的事务支持,确保数据一致性。

  4. 多版本并发控制(MVCC):高效处理并发读写操作。

  5. 丰富的扩展生态:如 PostGIS(地理空间数据)、pg_partman(分区管理)等。

  6. 跨平台:支持 Linux、Windows、macOS 等操作系统。

最新更新内容及时间

  • 版本 16(2023年9月14日发布):

    • 逻辑复制的并行处理。

    • 新增 pg_stat_io 视图监控 I/O 统计。

    • 增强 JSON/JSONB 处理性能。

    • 改进 vacuum 和 ANALYZE 操作。

下载地址

官网地址

文档地址

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:

常见错误及解决

  1. 连接拒绝

    • 检查服务是否启动:systemctl status postgresql

    • 确认 pg_hba.conf 配置允许连接(如 host all all 0.0.0.0/0 md5)。

  2. 端口占用

    • 修改端口或停止冲突服务:netstat -tulnp | grep 5432

  3. 权限不足

    • 确保用户有数据库访问权限:  

      GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
  4. 磁盘空间不足

    • 清理 WAL 日志或扩展存储:VACUUM FULL;

  5. 启动失败

    • 检查日志:journalctl -u postgresql/var/log/postgresql.log

声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。