MySQL

将 Better Auth 与 MySQL 集成。

MySQL 是一种流行的开源关系型数据库管理系统(RDBMS),广泛用于构建 Web 应用程序和其他类型的软件。它提供了灵活且可扩展的数据库解决方案,能够高效地存储和检索数据。 了解更多信息请访问:MySQL

示例用法

确保你已经安装并配置了 MySQL。
然后,你可以直接将其连接到 Better Auth。

auth.ts
import { betterAuth } from "better-auth";
import { createPool } from "mysql2/promise";

export const auth = betterAuth({
  database: createPool({
    host: "localhost",
    user: "root",
    password: "password",
    database: "database",
    timezone: "Z", // 确保时区值一致非常重要
  }),
});

更多信息请阅读 Kysely 的文档中的 MySQLDialect

架构生成与迁移

Better Auth CLI 允许你基于 Better Auth 的配置和插件生成或迁移数据库架构。

MySQL 架构生成

MySQL 架构迁移

✅ 支持✅ 支持
npx auth@latest migrate
npx auth@latest generate

联合查询(试验性功能)

数据库联合查询在 Better Auth 需要从多个表中一次性获取相关数据时非常有用。
比如 /get-session/get-full-organization 等端点极大受益于此功能,根据数据库延迟不同,性能提升可达到 2 到 3 倍。

Kysely MySQL 方言从版本 1.4.0 起原生支持联合查询。

要启用此功能,需要在你的 auth 配置中将 experimental.joins 选项设置为 true

auth.ts
import { betterAuth } from "better-auth";

export const auth = betterAuth({
  experimental: { joins: true }
});

启用此功能后,可能需要运行数据库迁移。

其他信息

MySQL 是通过 Kysely 适配器在底层支持的,任何由 Kysely 支持的数据库同样受到支持。 (详细阅读

如果你想提升性能或寻求优化建议,可以参考我们的 性能优化指南