MySQL este una dintre cele mai populare baze de date relaționale. Vă permite să stocați date în tabele și să creați relații între aceste tabele. Pentru a utiliza MySQL, care rulează ca un server de baze de date, va trebui să scrieți cod pentru a vă conecta la acesta.

Majoritatea limbajelor de programare precum Python oferă suport pentru acest lucru. De fapt, în Python, există mai multe abordări pe care le puteți lua, fiecare cu propriile sale avantaje.

Pregătiți configurația MySQL

Pentru a vă conecta la baza de date, aveți nevoie de următoarele valori:

  • Gazdă: locația serverului MySQL, localhost dacă îl rulați pe același computer.
  • Utilizator: numele de utilizator MySQL.
  • Parola: parola MySQL.
  • Numele bazei de date: numele bazei de date la care doriți să vă conectați.

Înainte de a vă conecta la baza de date MySQL, creați un director nou:

mkdir python-mysql

Configurați un mediu virtual Python

Un mediu virtual Python vă permite să instalați pachete și să rulați scripturi într-un mediu izolat. Cand tu

instagram viewer
creați un mediu virtual, apoi puteți instala versiuni de Python și dependențe Python în cadrul acestuia. În acest fel, izolați diferite versiuni și evitați problemele de compatibilitate.

Conectați-vă la MySQL folosind mysqlclient

The mysqlclient driverul este o interfață cu serverul de baze de date MySQL care oferă API-ul serverului de baze de date Python. Este scris în C.

Rulați următoarea comandă în mediul virtual pentru a instala mysqlclient:

pip instalare mysqlclient

Dacă sunteți pe o mașină Linux, instalați mai întâi anteturile și bibliotecile de dezvoltare Python 3 și MySQL.

# Debian / Ubuntu
sudo apt-get instalare python3-dev Mod implicit-libmysqlclient-dev construi-esenţial

# Red Hat / CentOS
sudo yum instalare python3-devel mysql-devel

Pe Windows, puteți instala mysqlclient folosind un fișier roată binar. Descărcați fișierul mysqlclient care este compatibil cu platforma dvs. de pe Colecția neoficială a lui Christoph Gohlke. Apoi puteți utiliza fișierul roată descărcat cu pip pentru a instala mysqlclient astfel:

pipinstalarec:\\mysqlclient‑1.3.13cp36cp36mwin_amd64.whl

Utilizați următorul cod de conexiune pentru a vă conecta la baza de date MySQL odată ce instalarea este finalizată:

import MySQLdb

conexiune = MySQLdb.connect(
gazdă="gazdă locală",
utilizator="<mysql_user>",
passwd="<parola_mysql>",
db="<numele bazei de date>"
)

cursor = connection.cursor()
cursor.execute("SelectațiBază de date();")
db = cursor.fetchone()

daca db:
imprimare("Tu'sunt conectat la baza de date: ", db)
altfel:
imprimare('Nu este conectat.')

În acest program aveți:

  • Mysqlclient importat.
  • Am creat un obiect de conexiune folosind MySQLdb.connect().
  • Am transmis detaliile de configurare a bazei de date către MySQLdb.connect().
  • A creat un obiect cursor pentru a interacționa cu MySQL.
  • A folosit obiectul cursor pentru a prelua versiunea bazei de date MySQL conectată.

Nu uitați să schimbați detaliile bazei de date cu ale dvs.

Conectați-vă la MySQL folosind mysql-connector-python

mysql-connector-python este driverul de conexiune oficial suportat de Oracle. Este scris și în pur Python.

Instalați-l prin pip pentru a începe să îl utilizați.

pip instalare mysql-connector-python

Conectați-vă la MySQL utilizând următorul cod de conexiune.

import mysql.connector
din mysql.connector importEroare

conexiune = mysql.connector.connect (gazdă="gazdă locală",
utilizator="<mysql_user>",
passwd="<parola_mysql>",
db="<numele bazei de date>")

încerca:
dacăconexiune.este conectat():
cursor = connection.cursor()
cursor.execute("SelectațiBază de date();")
db = cursor.fetchone()
imprimare("Tu'sunteți conectat la baza de date: ", db)
cu exceptia Eroarela fel de e:
imprimare("Eroarein timp ce conectarea la MySQL", e)
in cele din urma:
dacăconexiune.este conectat():
cursor.închide()
conexiune.închide()
print("Conexiune MySQL este închis")

Codul de conexiune de mai sus face același lucru ca și codul de conexiune mysqclient.

Odată ce ați creat obiectul de conexiune, puteți crea un cursor, pe care îl puteți utiliza apoi pentru a executa interogări în baza de date.

Acest program de conectare folosește și încearcă să prinzi bloc. Clasa Error, de la mysql.connector, vă permite să identificați excepțiile generate atunci când vă conectați la baza de date. Acest lucru ar trebui să simplifice depanarea și depanarea.

Conectați-vă la MySQL folosind PyMySQL

The PyMySQL driverul de conexiune este un înlocuitor pentru MySQLdb. Pentru a-l folosi, trebuie să rulați Python 3.7 sau mai nou, iar serverul dvs. MySQL ar trebui să fie versiunea 5. 7 sau mai nou. Dacă utilizați MariaDB, ar trebui să fie versiunea 10.2 sau mai mare. Puteți găsi aceste cerințe pe Pagina PyMySQL Github.

Pentru a instala PyMySQL, executați următoarea comandă.

pip instalare PyMySQL

Conectați-vă la MySQL folosind PyMySQL folosind acest cod.

import pymysql

connection = pymysql.connect (gazdă="gazdă locală",
utilizator="<mysql_user>",
parola="<parola_mysql>",
baza de date="<numele bazei de date>")

încerca:
cursor = connection.cursor()
cursor.execute("SelectațiBază de date();")
db = cursor.fetchone()
imprimare("Tu'sunt conectat la baza de date: ", db)
cu exceptia pymysql. Eroare la fel de e:
imprimare("Eroarein timp ce conectarea la MySQL", e)
in cele din urma:
cursor.închide()
conexiune.închide()
print("Conexiune MySQL este închis")

După ce ați realizat conexiunea și ați creat obiectul cursor, puteți începe să faceți interogări SQL.

Conectați-vă la MySQL folosind aiomysql

The aiomysql driverul de conexiune este ca versiunea asincronă a PyMySQL. Oferă acces la o bază de date MySQL din cadrul asyncio.

Pentru a utiliza aiomysql, aveți nevoie de Python 3.7+ și PyMySQL instalat în mediul dumneavoastră de dezvoltare.

Rulați următoarea comandă pentru a instala asyncio și aiomysql.

pip instalare asincron
pip instalare aiomysql

Cu aiomysql, puteți conecta Python la MySQL folosind un obiect de conexiune de bază și folosind un pool de conexiuni.

Iată un exemplu care arată cum să vă conectați la baza de date MySQL folosind un obiect de conexiune.

import asincron
import aiomysql
bucla = asyncio.get_event_loop()

asincrondefpython_mysql():
connection = await aiomysql.connect (gazdă="gazdă locală",
utilizator="<mysql_user>",
parola="<parola_mysql>",
baza de date="<numele bazei de date>")

cur = așteaptă connection.cursor()
așteaptă cur.execute("SelectațiBază de date();")
db = așteaptă cur.fetchone()
imprimare("Tu'sunt conectat la baza de date: ", db)
așteaptă cur.close()
conexiune.închide()

buclă.run_until_complete(python_mysql())

Spre deosebire de un obiect de conexiune la bază de date, un pool de conexiuni vă permite să reutilizați conexiunile la baza de date. Face acest lucru prin menținerea unui grup de conexiuni deschise și atribuirea acestora la cerere. Când un client solicită o conexiune, i se atribuie una din pool. Odată ce clientul închide conexiunea, conexiunea se întoarce la pool.

Codul de bază pentru conectarea printr-un pool este ca mai jos:

import asincron
import aiomysql
bucla = asyncio.get_event_loop()
asincrondefpython_mysql():
pool = așteaptă aiomysql.create_pool (gazdă="gazdă locală",
utilizator="<mysql_user>",
parola="<parola_mysql>",
baza de date="<numele bazei de date>", buclă=buclă, comitere automată=fals)

asincroncu pool.acquire() la fel de conexiune:
cursor = așteaptă connection.cursor()
așteaptă cur.execute("SelectațiBază de date();")
db = așteaptă cur.fetchone()
imprimare("Tu'sunt conectat la baza de date: ", db)

bazin.închide()
așteaptă pool.wait_closed()

buclă.run_until_complete(python_mysql())

Acest program ar trebui să imprime versiunea de MySQL la care v-ați conectat atunci când îl rulați.

Gestionarea bazei de date PostgreSQL

Acest articol v-a arătat mai multe moduri prin care puteți conecta o aplicație Python la MySQL. Fiecare dintre aceste metode vă permite să interacționați și să executați interogări în baza de date.

Odată conectat la o bază de date MySQL, puteți executa interogări de date și efectua tranzacții în baza de date. Puteți crea o aplicație Python, o puteți conecta la MySQL și puteți începe să stocați date.