PAYATHON 2026

pocketbase 有什么用途?能否用作 MySQL 数据库的管理后台?

技术老齐

PocketBase 不能直接用作现有 MySQL 数据库的管理后台。它使用内嵌的 SQLite,内置管理界面只能管理自身的数据,无法通过填写 MySQL 地址、账号和密码来接管现有数据库。官方 FAQ 也说明,PocketBase 不提供开箱即用的其他数据库支持。

旧应用是否使用框架,不影响这一点。选择工具前,需要先确定是继续管理现有 MySQL,还是为应用更换后端。

PocketBase 具体做什么?

PocketBase 是一个可以独立运行的开源后端,集成了应用常用的后端功能:

  • SQLite 数据存储及数据增删改查接口。
  • 用户认证和访问规则。
  • 文件上传与实时订阅。
  • 用于管理数据和配置的 Web 管理界面。

网页、移动应用等客户端可以调用这些功能,开发者也可以通过 Go 或 JavaScript 扩展业务逻辑。具体能力见 PocketBase 官方文档。

例如,开发一个带用户登录的笔记应用时,可以在 PocketBase 中创建笔记集合、设置访问规则,再由前端调用 API 保存和读取笔记。笔记数据保存在 PocketBase 的 SQLite 数据库中。

PocketBase 自带的管理界面容易让人联想到 phpMyAdmin,但两者管理的数据来源不同:phpMyAdmin 连接 MySQL,PocketBase 管理自身后端中的数据。

管理旧应用的 MySQL,应该怎么做?

如果只需要浏览表、修改记录、执行 SQL 或导入导出数据,可以使用 phpMyAdmin 或 Adminer。这两种工具都能连接现有 MySQL,无须先把旧应用迁移到某个框架。

  1. 确认 MySQL 的服务器地址、端口、数据库名称和可用账号。
  2. 部署管理工具,确保它所在的机器或容器能够连接 MySQL。
  3. 登录后选择旧应用的数据库,先检查表结构和数据,再按需要开放写入权限。

例如,在已经安装 Docker 的本机运行 Adminer:

docker run --rm --name mysql-admin \
  -p 127.0.0.1:8080:8080 \
  adminer

打开 http://127.0.0.1:8080,在登录页选择 MySQL,填写数据库地址、用户名、密码和数据库名称即可。Adminer 官方提供了这种 Docker 运行方式。

登录页填写的服务器地址必须能从 Adminer 容器内部访问。localhost 通常指向容器自身;如果 MySQL 运行在宿主机或另一个容器中,需要填写容器能够访问的对应地址。

想体验 PocketBase,可以怎样开始?

下载适合当前系统的 PocketBase 程序并解压,在程序所在目录执行:

./pocketbase serve

按首次启动提示创建超级用户,然后访问:

http://127.0.0.1:8090/_/

在管理界面中,你可以创建集合、添加字段和记录。PocketBase 会将应用数据保存在自己的数据目录中。启动命令、默认地址和目录用途可查阅入门文档。

这个过程不会连接旧应用的 MySQL,也不会导入其中的数据。即使在 PocketBase 中创建同名集合,也不会自动读取 MySQL 中的同名表。

能否通过开发,让 PocketBase 与 MySQL 配合?

可以编写自定义集成。例如,通过 PocketBase 的 Go 扩展能力编写业务接口,再用自定义代码访问 MySQL。数据库连接、权限和业务操作都需要自行处理,内置管理界面也不会因此自动具备管理 MySQL 表的能力。

如果只是想给旧数据库增加一个管理页面,使用直接支持 MySQL 的工具更省事。如果需要让运营人员执行“审核订单”“退款”之类的操作,则需要带业务逻辑的后台。直接修改数据库字段,可能绕过旧应用中的校验、日志或其他处理流程。

使用时需要注意什么?

数据库管理工具的权限应按用途分配。只查看数据时,使用只读账号;需要修改时,先备份,并限制管理页面的访问范围。

如果决定把旧应用迁移到 PocketBase,需要单独设计数据迁移方案,检查字段类型、主键、关联关系,以及应用中依赖 MySQL 的查询。把数据复制到 SQLite 后,旧应用仍然写入 MySQL,两边不会自动同步。

备注:内容仅供参考。