Django MySQL Database Tutorial

With this tutorial, you will have a Django project connected and fully working with a MySQL database in just a few minutes.


Install MySQL

The first step is to install MySQL on your machine. If you are using Linux/Ubuntu use the following commands to update the system then install the mysql-server package:


sudo apt update
sudo apt install mysql-server


To install MySQL on macOS, use the Brew package manager like this:


brew install mysql


Then enable it like this:


brew services start mysql


The final step is to secure the MySQL installation:




Follow the instructions and select the level of security you want.


Note – the above step is optional but highly recommended.


Install Mysql Python Client

Python needs the mysqlclient package so that it can communicate with your MySQL server. Make sure you are using the same version of Python Django is using and use the pip package manager to install it like this:


pip install mysqlclient


If you get an error you might need to install libmysqlclient-dev which you can do with the following command:


sudo apt install libmysqlclient-dev


Configure a MySQL Database, User and Grant Privileges

Now login to MySQL as the root user like this, supplying the password created earlier when prompted:


mysql -u root -p


Now create a database with the following command, replacing exampledb with the name of the database to create:




Now create a new MySQL user with the following command, replacing newuser and user_password:


CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';


Next, grant all privileges for the new user to the new database:


GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';


Configure Django to Connect to MySQL

Open the file in the root of your project, locate to the DATABASES variable, comment it out and add the following code replacing the settings with the ones you just configured:


   'default': {
       'ENGINE': 'django.db.backends.mysql',
       'NAME': 'you_db',
       'HOST': '',
       'PORT': '3306',
       'USER': 'your_user',
       'PASSWORD': 'password',


Migrate Django Tables

The next step is to migrate your Django tables to the MySQL database. cd to the root of your project and run the following command:


python migrate


Create Django Admin Superuser

The final step is to create a new superuser so that you can login to the Django admin panel


python createsuperuser


That's it! Your Django project is now running with an SQL database.

django mysql