¿Cómo conectar Django con Mysql Server?

¿Cómo conectar Django con Mysql Server?

Veamos cómo conectamos Django 3 con mysql de una forma sencilla similar a postgresql.

Muchos de los proyectos, videos y cursos que vemos sobre Django, están enfocados a trabajar con el gestor de base de datos Postgres, principalmente porque es la propia documentación de Django quien lo recomienda. Pero por trabajo o por requerimientos de la empresa a veces es necesario que trabajemos con otro gestor de base de datos como Mysql, por esta razón veremos ahora cómo conectamos django con Mysql, trabajare toda  la configuración en Linux Mint como sistema operativo y asumiendo que ya se tiene creado un proyecto en Django.

  1. Instalación de Mysql en Linux Mint

    1. sudo apt update

    2. sudo apt install mysql-server

  2. Ahora si necesitamos brindar mayor seguridad a nuestras base de datos en mysql, es recomendable ejecutar lo siguiente en la terminal

    1. sudo mysql_secure_installation

  3. Vemos que nos hace una serie de preguntas pidiendo nuestra decisión respecto a algunos temas de seguridad. 

  4. Ahora accedemos a la shell de mysql para comenzar a crear una base de datos y los usuarios que podrán acceder a esta base de datos

    1. Acceder a la shell

      1. sudo mysql

    2. Una vez dentro de la consola de mysql creamos nuestra base de datos

      1. CREATE DATABASE nombre_bd;

    3. Ahora creamos un usuario con contraseña

      1. CREATE USER ‘un_usuario’ IDENTIFIED BY ‘un_password’

    4. Ahora le damos permisos a este usuario para acceder a la base de datos que acabamos de crear

      1. GRANT ALL PRIVILEGES ON nombre_bd.* TO nombre_usuario;

  5. Ahora que tenemos la base de datos y el usuario creado, ya podemos ir a Django y conectar a esta base de datos

    1. La documentación de Django nos especifica el cómo hacerlo y que driver recomienda utilizar para la conexión. 

      1. https://docs.djangoproject.com/en/3.0/ref/databases/#databases

      2. como podemos ver, no indica utilizar mysqlclient https://pypi.org/project/mysqlclient/

    2. Ahora  vamos al entorno virtual activado e instalamos mysqlclient

      1. pip install mysqlclient

    3. Si esto demandó un error en la consola, es posiblemente porque nos falta instalar algunos paquetes en nuestro sistema operativo para que este driver funcione bien, esto se soluciona, instalando:

      1. sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

    4. Volvemos a ejecutar pip install mysqlclient en el entorno virtual

  6. Ahora que ya tenemos instalado el driver, nos dirigimos al apartado de conexión a base de datos en nuestro archivo de configuracion, settings.py o local.py

    1. aquí cambiamos la arquitectura de conexión y pasamos a utilizar el driver mysqlclient

      DATABASES = {

          'default': {

              'ENGINE': 'django.db.backends.mysql',

              'NAME': 'nombre_db',

              'USER': 'usuario_creado',

              'PASSWORD': 'constraseña_usuario',

              'HOST': 'localhost',

              'PORT': '3306',

          }

      }

  7. Si no esta seguro de que mysql se instaló en el puerto 3306 que es el puerto por defecto que toma, puede entrar a la shell de mysql y puede ejecutar:

    1. SHOW GLOBAL VARIABLES LIKE 'PORT';

    2. Esto mostrara el puerto donde está trabajando mysql

  8. Ahora solo queda ir al entorno virtual, y hacer las migraciones respectivas.

Video de Ejemplo en el canal de youtube:

 

 

Déjanos tu correo y entérate de mas de estos artículos: