MySQL
将 Better Auth 与 MySQL 集成。
MySQL 是一种流行的开源关系型数据库管理系统(RDBMS),广泛用于构建 Web 应用程序和其他类型的软件。它提供了灵活且可扩展的数据库解决方案,能够高效地存储和检索数据。 了解更多信息请访问:MySQL。
示例用法
确保你已经安装并配置了 MySQL。
然后,你可以直接将其连接到 Better Auth。
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 migratenpx auth@latest generate联合查询(试验性功能)
数据库联合查询在 Better Auth 需要从多个表中一次性获取相关数据时非常有用。
比如 /get-session、/get-full-organization 等端点极大受益于此功能,根据数据库延迟不同,性能提升可达到 2 到 3 倍。
Kysely MySQL 方言从版本 1.4.0 起原生支持联合查询。
要启用此功能,需要在你的 auth 配置中将 experimental.joins 选项设置为 true。
import { betterAuth } from "better-auth";
export const auth = betterAuth({
experimental: { joins: true }
});启用此功能后,可能需要运行数据库迁移。
其他信息
MySQL 是通过 Kysely 适配器在底层支持的,任何由 Kysely 支持的数据库同样受到支持。 (详细阅读)
如果你想提升性能或寻求优化建议,可以参考我们的 性能优化指南。