Back to home

This is an archived post. For my new content, please visit my Substack.

Visit my Substack

Run MySQL locally on macOS using Docker

November 15, 2023
mysqldocker

Running a MySQL server locally can be a hassle, especially when dealing with different versions and configurations.

Running a MySQL server locally can be a hassle, especially when dealing with different versions and configurations. However, using Docker simplifies this process significantly. In this tutorial, we'll walk through setting up a MySQL server for local development using Docker, which is particularly useful when working with tools like Prisma and NextAuth.

Prerequisites

  • Docker installed on your machine.
  • Basic understanding of Docker concepts.

Step 1: Create a Docker-Compose File

First, we need to create a docker-compose.yml file which defines our MySQL service. This file ensures that MySQL runs with the desired settings.

version: '3.3'

services: db: image: mysql:latest # Using the latest official MySQL image restart: always environment: MYSQL_DATABASE: 'testdb' # Name of your database MYSQL_ROOT_PASSWORD: 'test' # Root password (change for production) MYSQL_ROOT_HOST: '%' # Allows root connections from any host ports: - '3306:3306' # Port mapping volumes: - ./:/var/lib/mysql # Maps your local directory to the container's MySQL data directory

This file tells Docker to run the latest MySQL image, set up a database named testdb, and configure the necessary environment variables. It also maps port 3306 to your local machine and uses a volume for data persistence.

Step 2: Running the MySQL Server

To start the MySQL server, navigate to the directory containing your docker-compose.yml file and run the following command in your terminal:

docker-compose up -d

This command starts your MySQL server in detached mode, meaning it runs in the background.

Step 3: Accessing the Database

To access your new MySQL database, you can use any MySQL client with the following credentials:

  • Host: localhost
  • Port: 3306
  • User: root
  • Password: test

Remember, this is for local development, so it's okay to use simple credentials. However, for a production environment, ensure to use a secure password.

Step 4: Integrating with Prisma

If you're using Prisma, you can now connect to your local MySQL server. Update your Prisma schema file to include the MySQL connection URL:

mysql://root:test@localhost:3306/testdb

Conclusion

Docker makes it incredibly easy to run a MySQL server locally, ensuring a consistent and isolated environment for your development needs. It's especially useful when working with Prisma and NextAuth for authentication mechanisms. By following these steps, you can set up a flexible and robust development environment for your projects.