ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

pgrust 安装教程:Docker 一键启动你的第一个 Rust 版 PostgreSQL

pgrust 安装教程:Docker 一键启动你的第一个 Rust 版 PostgreSQL

pgrust 安装教程:Docker 一键启动你的第一个 Rust 版 PostgreSQL

【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust

pgrust 是一个用 Rust 语言从零重写 PostgreSQL 的开源数据库项目,兼容 PostgreSQL 18.3,并通过了超过 46000 条回归测试查询,官方目标是让事务负载提速 50%、分析型负载提速约 300 倍。本文是一份面向新手的 pgrust 安装教程,手把手教你用 Docker 一键启动 Rust 版 PostgreSQL,全程无需编译源码,几分钟即可跑通。

pgrust 是什么?为什么值得一试?

简单来说,pgrust 就是把大家熟悉的 PostgreSQL 数据库引擎用 Rust 重新实现了一遍:

  • ✅ 兼容 PostgreSQL 18.3,输出与官方保持一致(46000+ 条回归查询)
  • ✅ 磁盘格式兼容,可以直接挂载已有的 PostgreSQL 18.3 数据目录
  • ✅ 发挥 Rust 内存安全与性能优势:事务负载快 50%,分析型负载快约 300 倍
  • ✅ Docker 镜像与官方 postgres 镜像"无缝互换",使用习惯几乎一模一样

对新手最友好的一点是:pgrust 的 Docker 镜像完全复刻了官方 postgres 镜像的用法,POSTGRES_PASSWORDPOSTGRES_USER等环境变量全部通用,几乎零学习成本

安装前的准备:2 个前提条件

开始之前,先确认环境满足以下要求:

检查项要求
Docker已安装并正常运行(执行docker --version确认)
端口本机 5432 端口未被占用
网络可正常访问镜像仓库拉取镜像

确认无误后,就可以进入下面的 Docker 安装步骤了。

方法一(推荐):Docker 一键启动

最快的 pgrust 安装方式,就是直接拉取官方镜像并运行。打开终端执行:

docker run -d --name pgrust \ -e POSTGRES_PASSWORD=secret \ -p 5432:5432 \ malisper/pgrust:v0.1

命令说明:

  • -d --name pgrust:后台运行,并给容器命名为 pgrust
  • -e POSTGRES_PASSWORD=secret:设置超级用户 postgres 的密码
  • -p 5432:5432:把容器内 5432 端口映射到本机

稍等片刻,用docker ps看到容器状态为 Up,就说明你的第一个 Rust 版 PostgreSQL 已经启动成功了 🎉

方法二:本地构建 pgrust 镜像

如果想从源码构建镜像(比如验证最新代码),可以先把仓库克隆到本地,再执行构建:

git clone https://gitcode.com/GitHub_Trending/pg/pgrust cd pgrust docker build -t pgrust .

构建完成后,用同样的方式启动:

docker run -d --name pgrust \ -e POSTGRES_PASSWORD=secret \ -p 5432:5432 \ pgrust

镜像采用三段式构建(编译 pgrust 二进制 → 获取 psql 客户端与系统目录文件 → 组装运行镜像),构建逻辑可以直接查看仓库根目录的Dockerfile,入口脚本是docker/entrypoint.sh,详细说明见docker/README.md。整个镜像里只有 pgrust 服务器和一个 psql 客户端,完全没有 C 版 postgres,数据目录初始化由 pgrust 自带的--initdb驱动完成。

关键环境变量:与官方 postgres 镜像完全一致

pgrust 镜像刻意保留了官方 postgres 镜像的"契约",以下环境变量全部通用:

环境变量作用默认值
POSTGRES_PASSWORD超级用户密码(必填)
POSTGRES_USER超级用户名postgres
POSTGRES_DB初始创建的数据库名与 POSTGRES_USER 相同
PGDATA数据目录位置/var/lib/postgresql/data
POSTGRES_HOST_AUTH_METHOD连接认证方式trust

另外,首次启动时镜像会自动执行/docker-entrypoint-initdb.d/目录下的初始化脚本(支持.sql.sh.sql.gz等格式),可以把建表语句或初始化数据放进去,非常方便。

连接并验证 Rust 版 PostgreSQL

容器启动后,用 psql 连接并执行一条查询来验证:

psql "postgres://postgres:secret@localhost:5432/postgres" \ -c "select version(), 1 + 1 as two"

看到返回 PostgreSQL 版本信息,就说明连接成功。也可以直接进入容器内使用 psql:

docker exec -it -e PGPASSWORD=secret pgrust \ psql -h 127.0.0.1 -U postgres

💡 小提示:当前版本在 TCP 连接上默认使用 trust 认证(密码已写入系统目录,但暂不强制校验),随着项目迭代会逐步完善密码认证机制。

数据持久化:挂载数据卷

默认情况下,容器删除后数据也会消失。想持久化保存数据,启动时挂载一个数据卷即可:

docker run -d --name pgrust \ -e POSTGRES_PASSWORD=secret \ -p 5432:5432 \ -v pgdata:/var/lib/postgresql/data \ malisper/pgrust:v0.1

这样即使容器被删除重建,数据依然保留在pgdata卷中,后续升级镜像也无需重新初始化数据库。

常见问题(FAQ)

Q1:端口被占用怎么办?-p 5432:5432改成其他端口,例如-p 5433:5432,连接时把端口对应改成 5433 即可。

Q2:连不上 / 忘记密码?docker logs pgrust查看启动日志,确认容器是否完成了初始化;也可以删除容器,重新用-e POSTGRES_PASSWORD=新密码启动。

Q3:pgrust 现在能用于生产环境吗?目前项目仍处于快速迭代阶段,官方明确表示尚未达到生产就绪标准。建议先在开发、测试环境体验,并持续关注后续版本发布。

总结

本文带你完整走了一遍 pgrust 安装教程:通过 Docker 一键启动、本地构建镜像、配置环境变量、验证连接,以及数据持久化。pgrust 作为 Rust 重写 PostgreSQL 的代表项目,兼容性(46000+ 条回归查询)和性能潜力都相当亮眼,是值得持续关注的开源数据库新秀。现在就动手,用 Docker 启动你的第一个 Rust 版 PostgreSQL 吧!

【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表