MySQL
@lucia-auth/adapter-mysql
package provides adapters for MySQL drivers:
mysql2
- PlanetScale serverless
npm install @lucia-auth/adapter-mysql
Schema
You can change the varchar
length as necessary. session(id)
should be able to hold at least 40 chars.
User ID can be numeric (see Define user ID type) but session ID must be a string type.
CREATE TABLE user (
id VARCHAR(255) PRIMARY KEY
);
CREATE TABLE user_session (
id VARCHAR(255) PRIMARY KEY,
expires_at DATETIME NOT NULL,
user_id VARCHAR(255) NOT NULL REFERENCES user(id)
);
Drivers
mysql2
Mysql2Adapter
takes a Pool
or Connection
instance from mysql2/promises
and a list of table names.
import { Lucia } from "lucia";
import { Mysql2Adapter } from "@lucia-auth/adapter-mysql";
import mysql from "mysql2/promise";
const pool = mysql.createPool();
const adapter = new Mysql2Adapter(pool, {
user: "user",
session: "user_session"
});
PlanetScale serverless
PlanetScaleAdapter
takes a Client
or Connection
instance and a list of table names.
import { Lucia } from "lucia";
import { PlanetScaleAdapter } from "@lucia-auth/adapter-mysql";
import { Client } from "@planetscale/database";
const client = new Client();
const adapter = new PlanetScaleAdapter(client, {
user: "user",
session: "user_session"
});