MariaDB 是什么
一句话总结
MariaDB 是 MySQL 的开源分支,在 Growth App 中跑在 m1 独立 VPS 上,存储 Frappe Press 供应链数据和所有站点的业务数据。
🤔 为什么会有它 / 解决了什么问题
MySQL 被 Oracle 收购后社区担心闭源风险。MariaDB 由 MySQL 原作者 Monty Widenius 主导创建,保持完全开源,并加入了 Aria 存储引擎、线程池等 MySQL 没有的特性。
🔍 具体原理 / 运作逻辑
关系型数据库,用 SQL 查询数据。Frappe 使用 MariaDB 10.6,Press 控制面板将供应链配置(Root Domain、Server 记录、TLS Certificate)存储在其中,每个站点也在其中建数据库。
更硬核的技术细节(点击展开)
MariaDB 使用 InnoDB 存储引擎(默认),支持行级锁和 MVCC。Frappe 会在每个站点创建时自动建一个独立数据库,数据库名格式为
_xxxxxxxx。
🧭 什么情况下会用到 / 什么场景会遇到它
- Press 创建新站点时 MariaDB 自动创建新数据库
ping_agent()验证 m1 连接是否正常- 排查站点 erros 时查 MariaDB 慢查询日志
🛠️ 怎么上手 / 在哪操作
SSH 到 m1(159.65.38.50)用 mariadb 命令行连接,或通过 bench 容器的 [[bench]] --site xxx console 间接访问。
⚖️ 副作用 / 代价 / 取舍
- DO 不支持托管 MariaDB,只能自管在 VPS 上,备份和升级都得自己负责
- 单机部署无高可用,m1 宕机所有站点不可用;迁移 Hetzner 后可评估托管方案
🕰️ 来历
- 谁提出/创造的:MySQL 创始人 Monty Widenius(Michael Widenius)
- 什么时候出现的:2009 年(MySQL 被 Oracle 收购后不久)
🔗 关联 / 经常一起出现的概念
- Redis:MariaDB 做持久化存储,Redis 做缓存和队列,两者配合——MariaDB 存最终数据,Redis 扛瞬时流量
- Frappe Framework:Frappe 的 ORM 层抽象了 SQL,开发者不直接写 SQL,但底层全是 MariaDB
⚠️ 注意事项 / 常见误区
m1 上的 MariaDB 是自管的单点故障——没有主从复制也没有自动故障转移。docker compose down -v 会删除 Press 控制面板的持久化卷,但 m1 的数据库不受影响(它在独立 VPS 上)。
📎 记忆锚点
大楼的档案室——所有住户(站点)的登记信息(数据)都存在这里,管理员的办公桌(Press)在另一栋楼。
📝 更新日志
| 日期 | 改动 | 原因 |
|---|---|---|
| 2026-07-13 | 首次创建 | - |