Back to Drizzle Orm

Get Started with Drizzle and MySQL

src/content/docs/get-started/mysql-new.mdx

latest2.4 KB
Original Source

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"; import Breadcrumbs from '@mdx/Breadcrumbs.astro'; import FileStructure from '@mdx/get-started/FileStructure.mdx'; import InstallPackages from '@mdx/get-started/InstallPackages.mdx'; import SetupEnv from '@mdx/get-started/SetupEnv.mdx'; import ConnectMySQL from '@mdx/get-started/mysql/ConnectMySQL.mdx'; import CreateTable from '@mdx/get-started/mysql/CreateTable.mdx'; import QueryDatabase from '@mdx/get-started/QueryDatabase.mdx'; import ApplyChanges from '@mdx/get-started/ApplyChanges.mdx'; import RunFile from '@mdx/get-started/RunFile.mdx'; import SetupConfig from '@mdx/get-started/SetupConfig.mdx';

<Breadcrumbs/>

Get Started with Drizzle and MySQL

<Prerequisites> - **dotenv** - package for managing environment variables - [read here](https://www.npmjs.com/package/dotenv) - **tsx** - package for running TypeScript files - [read here](https://tsx.is/) - **mysql2** - package for querying your MySQL database - [read here](https://github.com/sidorares/node-mysql2) </Prerequisites>

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.

<FileStructure/>

Step 1 - Install mysql2 package

<InstallPackages lib='mysql2'/>

Step 2 - Setup connection variables

<SetupEnv env_variable='DATABASE_URL' /> <Callout title='tips'> If you don't have a MySQL database yet and want to create one for testing, you can use our guide on how to set up MySQL in Docker.

The MySQL in Docker guide is available here. Go set it up, generate a database URL (explained in the guide), and come back for the next steps </Callout>

Step 3 - Connect Drizzle ORM to the database

<ConnectMySQL/>

Step 4 - Create a table

<CreateTable/>

Step 5 - Setup Drizzle config file

<SetupConfig dialect='mysql' env_variable='DATABASE_URL'/>

Step 6 - Applying changes to the database

<ApplyChanges />

Step 7 - Seed and Query the database

<QueryDatabase dialect='mysql2' env_variable='DATABASE_URL'/>

Step 8 - Run index.ts file

<RunFile/>