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, que funciona como um servidor de banco de dados, você precisará escrever um código para se conectar a ele.
A maioria das linguagens de programação, como Python, oferece suporte para isso. Na verdade, em Python, existem várias abordagens que você pode adotar, 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, localhost se você estiver executando no mesmo computador.
- Usuário: o nome de usuário do MySQL.
- Senha: a 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 um ambiente virtual Python
Um ambiente virtual Python permite instalar pacotes e executar scripts em um ambiente isolado. Ao criar um ambiente virtual, você pode instalar versões de dependências do Python e do Python nele. Dessa forma, você isola versões diferentes e evita problemas de compatibilidade.
Conecte-se ao MySQL usando mysqlclient
O driver mysqlclient é uma interface para o servidor de banco de dados MySQL que fornece a 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, instale primeiro os cabeçalhos e bibliotecas de desenvolvimento Python 3 e MySQL.
sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
sudo yum install python3-devel mysql-devel
No Windows, você pode instalar o mysqlclient usando um arquivo 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 usar o arquivo wheel baixado com pip para instalar o mysqlclient assim:
pip install c:\mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl
Use o seguinte código de conexão para se conectar ao banco de dados MySQL assim que a instalação estiver concluída:
import MySQLdbconnection = 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("You're connected to database: ", db)
else:
print('Not connected.')
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 trocar os detalhes do banco de dados pelos seus próprios.
Conecte-se ao MySQL usando mysql-connector-python
mysql-connector-python é o driver de conexão oficial 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 Errorconnection = 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("You're connected to dtabase: ", db)
except Error as e:
print("Error while connecting to MySQL", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL connection is closed")
O código de conexão acima faz a mesma coisa que o código de conexão mysqclient.
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 programa de conexão também usa o tente… pegue quadra. A classe Error, de mysql.connector, permite capturar exceções levantadas ao se conectar ao banco de dados. Isso deve simplificar a depuração e a solução de problemas.
Conecte-se ao MySQL usando PyMySQL
O driver de conexão PyMySQL é um substituto para MySQLdb. Para usá-lo, você precisa estar executando o Python 3.7 ou mais recente e seu servidor MySQL deve ser a versão 5.7 ou mais recente. Se você usa o 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 pymysqlconnection = 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("You're connected to database: ", db)
except pymysql.Error as e:
print("Error while connecting to MySQL", e)
finally:
cursor.close()
connection.close()
print("MySQL connection is closed")
Depois de fazer a conexão e criar o objeto cursor, você pode começar a fazer consultas SQL.
Conecte-se ao MySQL usando aiomysql
O driver de conexão aiomysql é como a versão assíncrona do PyMySQL. Ele fornece acesso a um banco de dados MySQL a partir do framework assíncrono.
Para usar o aiomysql, você precisa do Python 3.7+ e do PyMySQL instalado em seu ambiente de desenvolvimento.
Execute o seguinte comando para instalar o asyncio e o aiomysql.
pip install asyncio
pip install aiomysql
Com o aiomysql, você pode conectar o Python ao MySQL usando um objeto de conexão básico e um pool de conexões.
Aqui está um exemplo mostrando como se conectar ao banco de dados MySQL usando um objeto de conexão.
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("You're connected to database: ", db)
await cur.close()
connection.close()
loop.run_until_complete(python_mysql())
Ao contrário de um objeto de conexão de banco de dados, um pool de conexões permite que você reutilize conexões de banco de dados. Ele faz isso mantendo um conjunto de conexões abertas e atribuindo-as mediante solicitação. Quando um cliente solicita uma conexão, ele recebe uma do pool. Depois que o cliente fecha a conexão, a conexão volta 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("You're connected to database: ", 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.
Gerenciando seu banco de dados PostgreSQL
Este artigo mostrou 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.