4 formas de conectar o Python ao MySQL

COMPARTILHAR:

Usar um banco de dados MySQL em Python é simples, mas existem diferentes maneiras de fazê-lo. Ajuda a entender o que são e como funcionam.

O MySQL é um dos bancos de dados relacionais mais populares. Ele permite que você armazene dados em tabelas e crie relacionamentos entre essas tabelas. Para usar o MySQL como um servidor de banco de dados, você precisa escrever código para se conectar a ele.

A maioria das linguagens de programação como Python suportam isso. Na verdade, em Python, você pode adotar várias abordagens, cada uma com suas próprias vantagens.

Prepare sua configuração do MySQL

Para se conectar ao banco de dados, você precisa dos seguintes valores:

  • Host: A localização do servidor MySQL, ou localhost se você estiver executando na mesma máquina.
  • Usuário: nome de usuário do MySQL.
  • Senha: senha do MySQL.
  • Nome do banco de dados: o nome do banco de dados ao qual você deseja se conectar.

Antes de se conectar ao banco de dados MySQL, crie um novo diretório:

mkdir python-mysql

Configurar o ambiente virtual Python

Os ambientes virtuais Python permitem que você instale pacotes e execute scripts em um ambiente isolado. Ao criar um ambiente virtual, você pode instalar a versão do Python e as dependências do Python nele. Dessa forma, você pode isolar versões diferentes e evitar problemas de compatibilidade.

Conecte-se ao MySQL usando mysqlclient

O driver mysqlclient é uma interface para o servidor de banco de dados MySQL que fornece uma API do servidor de banco de dados Python. Está escrito em C.

Execute o seguinte comando no ambiente virtual para instalar o mysqlclient:

pip install mysqlclient

Se você estiver em uma máquina Linux, primeiro instale os cabeçalhos e bibliotecas de desenvolvimento Python 3 e MySQL.

# Debian / Ubuntu
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
# Red Hat / CentOS
sudo yum install python3-devel mysql-devel

No Windows, você pode instalar o mysqlclient usando o binário wheel. Baixe o arquivo mysqlclient compatível com sua plataforma da coleção não oficial de Christoph Gohlke. Você pode então instalar o mysqlclient usando o arquivo wheel baixado via pip da seguinte forma:

pip install c:\\mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl

Uma vez instalado, use o seguinte código de conexão para se conectar ao banco de dados MySQL:

import MySQLdb
 
connection = MySQLdb.connect(
    host="localhost",
    user="<mysql_user>",
    passwd="<mysql_password>",
    db="<database_name>"
)
 
cursor = connection.cursor()
cursor.execute("select database();")
db = cursor.fetchone()
 
if db:
    print("Você está conectado ao banco de dados: ", db)
else:
    print('Não conectado.')

Neste programa você tem:

  • Cliente mysql importado.
  • Criado um objeto de conexão usando MySQLdb.connect().
  • Passou os detalhes de configuração do banco de dados para MySQLdb.connect().
  • Criado um objeto cursor para interagir com o MySQL.
  • Usou o objeto cursor para buscar a versão do banco de dados MySQL conectado.

Lembre-se de substituir os detalhes do banco de dados pelos seus.

Conecte-se ao MySQL usando mysql-connector-python

O mysql-connector-python é o driver de conexão oficialmente suportado pela Oracle. Também é escrito em Python puro.

Instale-o via pip para começar a usá-lo.

pip install mysql-connector-python

Conecte-se ao MySQL usando o seguinte código de conexão.

import mysql.connector
from mysql.connector import Error
 
connection = mysql.connector.connect(host="localhost",
    user="<mysql_user>",
    passwd="<mysql_password>",
    db="<database_name>")
 
try:
    if connection.is_connected():
        cursor = connection.cursor()
        cursor.execute("select database();")
        db = cursor.fetchone()
        print("Você está conectado ao banco de dados: ", db)
except Error as e:
    print("Erro ao conectar ao MySQL", e)
finally:
    if connection.is_connected():
        cursor.close()
        connection.close()
        print("A conexão MySQL está fechada")

O código de conexão acima faz a mesma coisa que o código de conexão mysqlclient.

Depois de criar o objeto de conexão, você pode criar um cursor que pode ser usado para executar consultas no banco de dados.

Este conector também usa um bloco try…catch. A classe Error em mysql.connector permite que você capture exceções lançadas ao se conectar a um banco de dados. Isso deve simplificar a depuração e a solução de problemas.

Conecte-se ao MySQL com PyMySQL

O driver de conexão PyMySQL é um substituto para MySQLdb. Para usá-lo, você precisa estar executando o Python 3.7 ou superior e seu servidor MySQL deve ser 5.7 ou superior. Se você usa MariaDB, deve ser a versão 10.2 ou superior. Você pode encontrar esses requisitos na página PyMySQL Github.

Para instalar o PyMySQL, execute o seguinte comando.

pip install PyMySQL

Conecte-se ao MySQL usando PyMySQL usando este código.

import pymysql
 
connection = pymysql.connect(host="localhost",
    user="<mysql_user>",
    password="<mysql_password>",
    database="<database_name>")
 
try:
    cursor = connection.cursor()
    cursor.execute("select database();")
    db = cursor.fetchone()
    print("Você está conectado ao banco de dados: ", db)
except pymysql.Error as e:
    print("Erro ao conectar ao MySQL", e)
finally:
    cursor.close()
    connection.close()
    print("A conexão MySQL está fechada")

Conecte-se ao MySQL usando aiomysql

O driver de conexão aiomysql é semelhante à versão assíncrona do PyMySQL. Ele fornece acesso a bancos de dados MySQL a partir de uma estrutura assíncrona.

Para usar o aiomysql, você precisa do Python 3.7+ e do PyMySQL instalado no ambiente de desenvolvimento.

Execute os seguintes comandos para instalar o asyncio e o aiomysql.

pip install asyncio
pip install aiomysql

Com o aiomysql, você pode conectar o Python ao MySQL usando objetos de conexão básicos e pool de conexões.

Aqui está um exemplo mostrando como usar o objeto de conexão para se conectar a um banco de dados MySQL.

import asyncio
import aiomysql
loop = asyncio.get_event_loop()
 
async def python_mysql():
    connection = await aiomysql.connect(host="localhost",
    user="<mysql_user>",
    password="<mysql_password>",
    database="<database_name>")
 
    cur = await connection.cursor()
    await cur.execute("select database();")
    db = await cur.fetchone()
    print("Você está conectado ao banco de dados: ", db)
    await cur.close()
    connection.close()
 
loop.run_until_complete(python_mysql())

Ao contrário dos objetos de conexão de banco de dados, o pool de conexões permite que você reutilize conexões de banco de dados. Ele faz isso mantendo o pool de conexões aberto e atribuindo-os mediante solicitação. Quando um cliente solicita uma conexão, ele a recebe do pool. Depois que o cliente fecha a conexão, a conexão é retornada ao pool.

O código básico para conectar através de um pool é como abaixo:

import asyncio
import aiomysql
loop = asyncio.get_event_loop()
async def python_mysql():
    pool = await aiomysql.create_pool(host="localhost",
    user="<mysql_user>",
    password="<mysql_password>",
    database="<database_name>", loop=loop, autocommit=False)
 
    async with pool.acquire() as connection:
        cursor = await connection.cursor()
        await cur.execute("select database();")
		    db = await cur.fetchone()
		    print("Você está conectado ao banco de dados: ", db)
 
    pool.close()
    await pool.wait_closed()
 
loop.run_until_complete(python_mysql())

Este programa deve imprimir a versão do MySQL à qual você se conectou ao executá-lo.

Gerencie seu banco de dados

Este artigo mostra várias maneiras de conectar um aplicativo Python ao MySQL. Cada um desses métodos permite interagir e executar consultas no banco de dados.

Uma vez conectado a um banco de dados MySQL, você pode executar consultas de dados e realizar transações de banco de dados. Você pode criar um aplicativo Python, conectá-lo ao MySQL e começar a armazenar dados.

Leia também: Cisco anuncia planos para sair da Rússia e da Bielorrússia

Os 5 melhores livros de python
COMPARTILHAR:
brayan

Brayan Monteiro

Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software, SEO de sites e em negócios digitais.