惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - weipt

H5S视频平台:一站式解决Web无插件播放难题,多协议接入轻松搞定 终于!我造了个「AI代驾」级别的AutoBuilder,一键干掉80%的重复CRUD工作 OpenClaw 配置飞书机器人完整指南:从零到每天定时推送天气 发票打印还在花钱?这款免费小工具,A4纸一半大小、自动排版,真香! 🔥 自己写的FBX转3D Tiles工具,免费!还能当模型浏览器用 相同代码在360浏览器能显示,在edge提示webgl不支持,edge下都最新的内核。 什么是技术架构、数据架构、业务架构、应用架构和代码架构? 使用pyinstaller打包的exe文件太大,怎么办 2026无人机新规正式施行!各位飞手赶紧收藏 谈谈EF的两种模式 谈谈EF Core 微软官方的 ORM(对象关系映射)框架 Next.js和blazor server比较开发网站哪个好 Blazor Server和 Blazor WebAssembly区别 关于vue项目中cesium的地图显示问题 关于顺丰退出抖音电商退货业务事件的分析 在WINDOWS上创建NTP授时服务器,并验证是否可用 这样的算作“全栈技术”吗? 大疆上云APIdemo打包配置 用nssm将minio和srs注册成服务 LoRa定位技术和蓝牙AoA定位技术的关系 Mysql查询工具,你还用navcat吗? jar注册为服务的方式 nginx怎么样配置rtmp推流服务器 时间戳和时间格式互转
国产数据库私有化部署实战:PolarDB for PostgreSQL 免费容器...
weipt · 2026-05-13 · via 博客园 - weipt

前言:为什么要折腾这个?

最近手头有个政府项目,信创是硬指标。客户要求全栈国产化,操作系统、数据库、中间件都得是国产的。

操作系统好办,现在主流的国产 OS 基本都是免费的。但数据库这块卡住了——翻了一遍安全可靠测评的名单,达梦、人大金仓、OceanBase 这些虽然都合规,但一套几万到几十万不等的授权费,对于预算有限的项目来说确实肉疼。

于是开始找"既要合规又要免费"的路子。

选型过程

其实思路很明确:找基于 PostgreSQL 开发的国产数据库。PG 协议宽松,社区活跃,很多国产数据库都是基于它二次开发的。

最后锁定两个候选:

  • 阿里云 PolarDB for PostgreSQL 开源版

  • 天翼云 OpenTeleDB

两个都通过安全可靠测评,都开源免费,都支持私有化部署。考虑到 PolarDB 生态更成熟、文档更全,先拿它试水。

踩坑实录:从 Docker 到 pgAdmin

第一步:拉取镜像

官方 Docker Hub 的镜像在国内拉取太慢,换了阿里云国内镜像源:

第二步:容器运行

一开始用官方命令直接跑,结果宿主机连不上数据库——没做端口映射。

正确的后台运行命令:

docker run -itd --name polardb-test \
  --cap-add=SYS_PTRACE \
  --privileged=true \
  -p 5432:5432 \
  registry.cn-hangzhou.aliyuncs.com/polardb_pg/polardb_pg_local_instance:15

验证运行状态:

看到 PORTS 列显示 0.0.0.0:5432->5432/tcp 就说明端口映射成功了。

第三步:测试数据库

用 docker exec 进入容器执行 SQL:

docker exec -it polardb-test psql -U postgres -c "SELECT version();"

返回结果:

 PostgreSQL 15.17 (PolarDB 15.17.5.0 build unknown) on x86_64-linux-gnu

PolarDB 跑起来了,基于 PG 15.17。

第四步:pgAdmin 连接问题(坑)

用 pgAdmin 4 连接时,报错:

fe_sendauth: no password supplied

明明 docker exec 可以直接连,为啥 pgAdmin 不行?

查了一下,docker exec 走的是本地 socket 连接,pg_hba.conf 配置的是 trust 认证。而 pgAdmin 走 TCP/IP 网络连接,默认要求密码认证。

解决方案:给 postgres 用户设个密码

docker exec -it polardb-test psql -U postgres -c "ALTER USER postgres WITH PASSWORD '123456';"

设置完成后,pgAdmin 连接配置:

image

这次终于连上了。

image

总结

最终成果:一套完全免费的国产数据库环境,跑在 Docker 里,可以用于开发测试,也可以打包交付给客户私有化部署。

成本:0 元软件授权费。

技术栈:国产数据库(阿里云 PolarDB)+ 容器化部署 + 标准 PostgreSQL 生态(pgAdmin/pg_dump 等工具通用)。

踩坑点:

  1. 国内拉镜像要用阿里云源,否则慢到怀疑人生

  2. 容器运行必须加 -p 5432:5432 做端口映射,否则外网连不上

  3. pgAdmin TCP 连接需要密码,docker exec local 连接不需要,记得人工设一下

下一步准备试试天翼云的 OpenTeleDB,听说性能优化做得不错,尤其是解决了 PG 那个老大难的数据膨胀问题。到时候再写一篇对比评测。


附录:常用管理命令

# 查看容器
docker ps

# 进入容器 bash
docker exec -it polardb-test bash

# 停止容器
docker stop polardb-test

# 启动已存在的容器
docker start polardb-test

# 删除容器
docker rm -f polardb-test