Para conectar nuestras aplicaciones hechas en lenguaje Python con el gestor de base de datos MySQL o su equivalente MariaDB, solo necesitamos un conector que se puede instalar de manera simple y sencilla utilizando el gestor de paquetes estándar pip (pip installs packages) desde una ventana de consola o terminal.
Instalar conector de MySQL desde la terminal
En una ventana de terminal, consola o símbolo del sistema, escribe la siguiente instrucción:
pip install mysql-connector-python
En algunas distribuciones Linux, es posible que necesites permisos para ejecutar ese comando:
sudo pip install mysql-connector-python
Una vez termine la instalación, debemos obtener un output similar a este:

Si estás usando Visual Studio Code o algún editor similar, ve al menú Terminal y selecciona New Terminal.

Y ejecutas ahí el comando.

Creación de la base de datos para Python
En tus gestor de base de datos, crea la base de datos que necesitas.

Por motivos demostrativos, no es necesario por ahora que tenga tablas.

Creando la conexión a MySQL
En un archivo Python separado, comenzamos a trabajar. Lo primero será realizar la llamada al connector de la siguiente manera.
import mysql.connector
Inmediatamente, creamos un método para invocarlo en nuestras aplicaciones.
def abrir():
Proporcionamos los datos de acceso a nuestra base de datos. Necesitamos 4 valores: El usuario (recuerda no usar root en un proyecto de producción), su clave, el nombre de nuestra base de datos y el nombre o dirección IP del servidor.
usuario = "root"
clave = "root"
base = "ejemplopython"
servidor = "localhost"
Iniciamos un bloque try – except.
try:
Generamos una conexión usando los datos de acceso.
bd = mysql.connector.connect(
host = servidor,
user = usuario,
password = clave,
database = base
)
Con el método is_connected para corroborar, regresamos la conexión realizada si es que tuvo éxito.
if bd.is_connected(): return bd
En caso contrario, regresamos False.
else: return False
Capturamos cualquier posible excepción o error de acceso.
except mysql.connector.Error as error:
Mostramos los errores y problemas en el output para depurar. Los errores se manejan como un tipo de datos set, pero si queremos tratar cada error por separado, podemos hacerlo como lo sugiere la documentación de MySQL.
print(f"Error: {error}")
Por último regresamos False ya que tampoco se pudo conectar.
return False
El resultado queda como sigue:

Probando la conexión a MySQL
En un archivo nuevo comenzamos importando el archivo que hicimos con la conexión.
import conectar
Usando el método abrir, creamos una conexión a la base de datos.
mysql = conectar.abrir()
Si la conexión regresa False, entonces no se pudo conectar.
if(mysql==False):
print("No se pudo conectar")
Pero si regresa un objeto de tipo connector, entonces se logró la conexión.
else:
print("Conexión exitosa")
Queda como sigue:

Al ejecutar nuestra prueba, podemos ver que hemos podido lograr la conexión.

Si no se puede conectar por alguna razón, podemos ver en el output la razón para investigar y corregir. En este ejemplo he quitado la contraseña del usuario y eso se ve reflejado en su salida.

Comentarios, dudas y preguntas
¡Y eso es todo! No olvides dejar tus comentarios, dudas y / o preguntas. Con gusto las respondemos.
