src/content/docs/get-started-mysql.mdx
import Npm from '@mdx/Npm.astro'; import Callout from '@mdx/Callout.astro'; import Prerequisites from "@mdx/Prerequisites.astro"; import CodeTabs from "@mdx/CodeTabs.astro"; import WhatsNextPostgres from "@mdx/WhatsNextPostgres.astro";
To use Drizzle with a MySQL database, you should use the mysql2 driver
According to the official website,
mysql2 is a MySQL client for Node.js with focus on performance.
Drizzle ORM natively supports mysql2 with drizzle-orm/mysql2 package.
<CodeTabs items={['mysql2', 'mysql with config']}>
import { drizzle } from "drizzle-orm/mysql2";
const db = drizzle(process.env.DATABASE_URL);
const response = await db.select().from(...)
import { drizzle } from "drizzle-orm/mysql2";
// You can specify any property from the mysql2 connection options
const db = drizzle({ connection:{ uri: process.env.DATABASE_URL }});
const response = await db.select().from(...)
If you need to provide your existing driver:
<CodeTabs items={['Client connection', 'Pool connection']}>
import { drizzle } from "drizzle-orm/mysql2";
import mysql from "mysql2/promise";
const connection = await mysql.createConnection({
host: "host",
user: "user",
database: "database",
...
});
const db = drizzle({ client: connection });
import { drizzle } from "drizzle-orm/mysql2";
import mysql from "mysql2/promise";
const poolConnection = mysql.createPool({
host: "host",
user: "user",
database: "database",
...
});
const db = drizzle({ client: poolConnection });
For querying purposes feel free to use either client or pool based on your business demands.
</Callout>