Vishesh Duggar bio photo

Vishesh Duggar

5x founder. Co-founder & CTO Product @vamstar. 15+ years building and advising startups of all sizes. If you're building something cool, I'd love to hear about it.

Looking for advice on product, strategy or engineering?

Book Appointment

Subscribe to my mailing list


Vamstar LinkedIn Twitter Github

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 </code>

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.

15+ Years strategising and delivering growth, engineering, customer value and more. I have served as a CTO to multiple organizations, including Vamstar, AtruHelp, Billaway, SuperSehat, and more.

If you're a founder or CEO eager to move faster and seek tailored strategies for your unique challenges, don't navigate this journey alone. Reach out to me. Together, we can dissect, refine, and optimize your enterprise's trajectory to withstand the tests of time and innovation. Let's make your vision not just a goal, but an impending reality.

I have limited open hours. Book Appointment