MySQL er en af ​​de mest populære relationelle databaser. Det giver dig mulighed for at gemme data i tabeller og skabe relationer mellem disse tabeller. For at bruge MySQL, der kører som en databaseserver, skal du skrive kode for at oprette forbindelse til den.

De fleste programmeringssprog som Python understøtter dette. Faktisk er der i Python flere tilgange, du kan tage, hver med sine egne fordele.

Forbered din MySQL-konfiguration

For at oprette forbindelse til databasen skal du bruge følgende værdier:

  • Host: placeringen af ​​MySQL-serveren, localhost, hvis du kører den på den samme computer.
  • Bruger: MySQL-brugernavnet.
  • Adgangskode: MySQL-adgangskoden.
  • Databasenavn: navnet på den database, du vil oprette forbindelse til.

Før du opretter forbindelse til MySQL-databasen, skal du oprette en ny mappe:

mkdir python-mysql

Konfigurer et virtuelt Python-miljø

Et virtuelt Python-miljø giver dig mulighed for at installere pakker og køre scripts i et isoleret miljø. Når du skabe et virtuelt miljø, kan du derefter installere versioner af Python- og Python-afhængigheder i den. På denne måde isolerer du forskellige versioner og undgår kompatibilitetsproblemer.

Opret forbindelse til MySQL ved hjælp af mysqlclient

Det mysqlclient driveren er en grænseflade til MySQL-databaseserveren, der leverer Python-databaseserverens API. Det er skrevet i C.

Kør følgende kommando i det virtuelle miljø for at installere mysqlclient:

pip installere mysqlclient

Hvis du er på en Linux-maskine, skal du installere Python 3- og MySQL-udviklingsheaderne og -bibliotekerne først.

# Debian / Ubuntu
sudo apt-get installere python3-dev Standard-libmysqlclient-dev bygge-vigtig

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

På Windows kan du installere mysqlclient ved hjælp af en binær hjulfil. Download mysqlclient-filen, der er kompatibel med din platform fra Christoph Gohlkes uofficielle samling. Du kan derefter bruge den downloadede hjulfil med pip til at installere mysqlclient som denne:

pipinstallerec:\\mysqlclient‑1.3.13cp36cp36mwin_amd64.whl

Brug følgende forbindelseskode til at oprette forbindelse til MySQL-databasen, når installationen er fuldført:

importere MySQLdb

forbindelse = MySQLdb.connect(
vært="lokal vært",
bruger="<mysql_user>",
passwd="<mysql_adgangskode>",
db="<databasenavn>"
)

cursor = forbindelse.cursor()
cursor.execute("Vælgdatabase();")
db = cursor.fetchone()

hvis db:
Print("Du'igen forbundet til databasen: ", db)
andet:
Print('Ikke forbundet.')

I dette program har du:

  • Importeret mysqlclient.
  • Oprettede et forbindelsesobjekt ved hjælp af MySQLdb.connect().
  • Sendte databasekonfigurationsdetaljerne til MySQLdb.connect().
  • Oprettet et markørobjekt for at interagere med MySQL.
  • Brugte markørobjektet til at hente versionen af ​​den tilsluttede MySQL-database.

Husk at skifte databasedetaljerne med dine egne.

Opret forbindelse til MySQL ved hjælp af mysql-connector-python

mysql-connector-python er den officielle forbindelsesdriver, der understøttes af Oracle. Det er også skrevet i ren Python.

Installer det via pip for at begynde at bruge det.

pip installere mysql-connector-python

Opret forbindelse til MySQL ved hjælp af følgende forbindelseskode.

importere mysql.connector
fra mysql.connector importereFejl

forbindelse = mysql.connector.connect (vært="lokal vært",
bruger="<mysql_user>",
passwd="<mysql_adgangskode>",
db="<databasenavn>")

prøve:
hvisforbindelse.er_forbundet():
cursor = forbindelse.cursor()
cursor.execute("Vælgdatabase();")
db = cursor.fetchone()
Print("Du'igen forbundet til databasen: ", db)
undtagen Fejlsom e:
Print("Fejlmens opretter forbindelse til MySQL", e)
langt om længe:
hvisforbindelse.er_forbundet():
cursoren.tæt()
forbindelse.tæt()
print("MySQL-forbindelse er lukket")

Ovenstående forbindelseskode gør det samme, som mysqclient-forbindelseskoden gør.

Når du har oprettet forbindelsesobjektet, kan du oprette en markør, som du derefter kan bruge til at udføre forespørgsler på databasen.

Dette tilslutningsprogram bruger også prøv...fang blok. Fejlklassen, fra mysql.connector, lader dig fange undtagelser, der er rejst, når du opretter forbindelse til databasen. Dette skulle forenkle fejlfinding og fejlfinding.

Opret forbindelse til MySQL ved hjælp af PyMySQL

Det PyMySQL forbindelsesdriveren er en erstatning for MySQLdb. For at bruge det skal du køre Python 3.7 eller nyere, og din MySQL-server skal være version 5. 7 eller nyere. Hvis du bruger MariaDB skal det være version 10.2 eller nyere. Du kan finde disse krav på PyMySQL Github-side.

For at installere PyMySQL skal du køre følgende kommando.

pip installere PyMySQL

Opret forbindelse til MySQL ved hjælp af PyMySQL ved hjælp af denne kode.

importere pymysql

forbindelse = pymysql.connect (host="lokal vært",
bruger="<mysql_user>",
adgangskode="<mysql_adgangskode>",
database="<databasenavn>")

prøve:
cursor = forbindelse.cursor()
cursor.execute("Vælgdatabase();")
db = cursor.fetchone()
Print("Du'igen forbundet til databasen: ", db)
undtagen pymysql. Fejl som e:
Print("Fejlmens opretter forbindelse til MySQL", e)
langt om længe:
cursoren.tæt()
forbindelse.tæt()
print("MySQL-forbindelse er lukket")

Når du har oprettet forbindelsen og oprettet markørobjektet, kan du begynde at oprette SQL-forespørgsler.

Opret forbindelse til MySQL ved hjælp af aiomysql

Det aiomysql forbindelsesdriveren er ligesom den asynkrone version af PyMySQL. Det giver adgang til en MySQL-database fra asyncio-rammen.

For at bruge aiomysql skal du have Python 3.7+ og PyMySQL installeret i dit udviklingsmiljø.

Kør følgende kommando for at installere asyncio og aiomysql.

pip installere asyncio
pip installere aiomysql

Med aiomysql kan du forbinde Python til MySQL ved hjælp af et grundlæggende forbindelsesobjekt og ved hjælp af en forbindelsespulje.

Her er et eksempel, der viser, hvordan man opretter forbindelse til MySQL-databasen ved hjælp af et forbindelsesobjekt.

importere asyncio
importere aiomysql
loop = asyncio.get_event_loop()

asynkrondefpython_mysql():
forbindelse = afvent aiomysql.connect (host="lokal vært",
bruger="<mysql_user>",
adgangskode="<mysql_adgangskode>",
database="<databasenavn>")

nu = vente forbindelse.cursor()
afvent cur.execute("Vælgdatabase();")
db = vente cur.fetchone()
Print("Du'igen forbundet til databasen: ", db)
vente cur.close()
forbindelse.tæt()

sløjfe.run_until_complete(python_mysql())

I modsætning til et databaseforbindelsesobjekt giver en forbindelsespulje dig mulighed for at genbruge databaseforbindelser. Det gør det ved at opretholde en pulje af åbne forbindelser og tildele dem efter anmodning. Når en klient anmoder om en forbindelse, tildeles de en fra puljen. Når klienten lukker forbindelsen, går forbindelsen tilbage til poolen.

Den grundlæggende kode for tilslutning gennem en pool er som nedenfor:

importere asyncio
importere aiomysql
loop = asyncio.get_event_loop()
asynkrondefpython_mysql():
pool = afvent aiomysql.create_pool (host="lokal vært",
bruger="<mysql_user>",
adgangskode="<mysql_adgangskode>",
database="<databasenavn>", loop=loop, autocommit=False)

asynkronmed pool.acquire() som forbindelse:
markør = vente forbindelse.cursor()
afvent cur.execute("Vælgdatabase();")
db = vente cur.fetchone()
Print("Du'igen forbundet til databasen: ", db)

pool.tæt()
vente pool.wait_closed()

sløjfe.run_until_complete(python_mysql())

Dette program skal udskrive den version af MySQL, du har oprettet forbindelse til, når du kører det.

Håndtering af din PostgreSQL-database

Denne artikel viste dig flere måder, du kan forbinde en Python-applikation til MySQL. Hver af disse metoder giver dig mulighed for at interagere med og udføre forespørgsler på databasen.

Når du først er forbundet til en MySQL-database, kan du udføre dataforespørgsler og udføre databasetransaktioner. Du kan oprette en Python-applikation, tilslutte den til MySQL og begynde at gemme data.