MySQL er en av de mest populære relasjonsdatabasene. Den lar deg lagre data i tabeller og skape relasjoner mellom disse tabellene. For å bruke MySQL, som kjører som en databaseserver, må du skrive kode for å koble til den.

De fleste programmeringsspråk som Python gir støtte for dette. Faktisk, i Python, er det flere tilnærminger du kan ta, hver med sine egne fordeler.

Forbered MySQL-konfigurasjonen

For å koble til databasen trenger du følgende verdier:

  • Vert: plasseringen av MySQL-serveren, localhost hvis du kjører den på samme datamaskin.
  • Bruker: MySQL-brukernavnet.
  • Passord: MySQL-passordet.
  • Databasenavn: navnet på databasen du vil koble til.

Før du kobler til MySQL-databasen, opprett en ny katalog:

mkdir python-mysql

Sett opp et virtuelt Python-miljø

Et virtuelt Python-miljø lar deg installere pakker og kjøre skript i et isolert miljø. Når du lage et virtuelt miljø, kan du deretter installere versjoner av Python- og Python-avhengigheter i den. På denne måten isolerer du forskjellige versjoner og unngår kompatibilitetsproblemer.

Koble til MySQL ved å bruke mysqlclient

De mysqlclient driver er et grensesnitt til MySQL-databaseserveren som gir Python-databaseserver-API. Det er skrevet i C.

Kjør følgende kommando i det virtuelle miljøet for å installere mysqlclient:

pip installere mysqlclient

Hvis du er på en Linux-maskin, installer Python 3- og MySQL-utviklingshodene og -bibliotekene først.

# Debian / Ubuntu
sudo apt-get installere python3-dev misligholde-libmysqlclient-dev bygge-viktig

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

På Windows kan du installere mysqlclient ved å bruke en binær hjulfil. Last ned mysqlclient-filen som er kompatibel med plattformen din fra Christoph Gohlkes uoffisielle samling. Du kan deretter bruke den nedlastede hjulfilen med pip for å installere mysqlclient slik:

pipinstallerec:\\mysqlclient‑1.3.13cp36cp36mwin_amd64.whl

Bruk følgende tilkoblingskode for å koble til MySQL-databasen når installasjonen er fullført:

import MySQLdb

forbindelse = MySQLdb.connect(
vert="lokal vert",
bruker="<mysql_user>",
passwd="<mysql_password>",
db="<databasenavn>"
)

cursor = forbindelse.cursor()
cursor.execute("å velgedatabase();")
db = cursor.fetchone()

hvis db:
skrive ut("Du're koblet til databasen: ", db)
ellers:
skrive ut('Ikke tilkoblet.')

I dette programmet har du:

  • Importert mysqlclient.
  • Opprettet et tilkoblingsobjekt ved hjelp av MySQLdb.connect().
  • Sendte databasekonfigurasjonsdetaljene til MySQLdb.connect().
  • Laget et markørobjekt for å samhandle med MySQL.
  • Brukte markørobjektet for å hente versjonen av den tilkoblede MySQL-databasen.

Husk å bytte databasedetaljene med dine egne.

Koble til MySQL ved å bruke mysql-connector-python

mysql-connector-python er den offisielle tilkoblingsdriveren som støttes av Oracle. Den er også skrevet i ren Python.

Installer den via pip for å begynne å bruke den.

pip installere mysql-connector-python

Koble til MySQL med følgende tilkoblingskode.

import mysql.connector
fra mysql.connector importFeil

forbindelse = mysql.connector.connect (vert="lokal vert",
bruker="<mysql_user>",
passwd="<mysql_password>",
db="<databasenavn>")

prøve:
hvisforbindelse.er sammenkoblet():
cursor = forbindelse.cursor()
cursor.execute("å velgedatabase();")
db = cursor.fetchone()
skrive ut("Du'koblet til databasen igjen: ", db)
unntatt Feilsom e:
skrive ut("Feilsamtidig som kobler til MySQL", e)
til slutt:
hvisforbindelse.er sammenkoblet():
markøren.Lukk()
forbindelse.Lukk()
print("MySQL-tilkobling er lukket")

Koblingskoden ovenfor gjør det samme som mysqclient-tilkoblingskoden gjør.

Når du har opprettet tilkoblingsobjektet, kan du opprette en markør, som du deretter kan bruke til å utføre spørringer på databasen.

Dette tilkoblingsprogrammet bruker også prøv... fange blokkere. Feilklassen, fra mysql.connector, lar deg fange opp unntak når du kobler til databasen. Dette skal forenkle feilsøking og feilsøking.

Koble til MySQL ved hjelp av PyMySQL

De PyMySQL tilkoblingsdriveren er en erstatning for MySQLdb. For å bruke den må du kjøre Python 3.7 eller nyere og MySQL-serveren din bør være versjon 5. 7, eller nyere. Hvis du bruker MariaDB bør det være versjon 10.2 eller høyere. Du finner disse kravene på PyMySQL Github-side.

For å installere PyMySQL, kjør følgende kommando.

pip installere PyMySQL

Koble til MySQL ved å bruke PyMySQL ved å bruke denne koden.

import pymysql

forbindelse = pymysql.connect (vert ="lokal vert",
bruker="<mysql_user>",
passord="<mysql_password>",
database="<databasenavn>")

prøve:
cursor = forbindelse.cursor()
cursor.execute("å velgedatabase();")
db = cursor.fetchone()
skrive ut("Du're koblet til databasen: ", db)
unntatt pymysql. Feil som e:
skrive ut("Feilsamtidig som kobler til MySQL", e)
til slutt:
markøren.Lukk()
forbindelse.Lukk()
print("MySQL-tilkobling er lukket")

Når du har opprettet tilkoblingen og opprettet markørobjektet, kan du begynne å opprette SQL-spørringer.

Koble til MySQL ved å bruke aiomysql

De aiomysql tilkoblingsdriveren er som den asynkrone versjonen av PyMySQL. Den gir tilgang til en MySQL-database fra asyncio-rammeverket.

For å bruke aiomysql trenger du Python 3.7+ og PyMySQL installert i utviklingsmiljøet ditt.

Kjør følgende kommando for å installere asyncio og aiomysql.

pip installere asyncio
pip installere aiomysql

Med aiomysql kan du koble Python til MySQL ved å bruke et grunnleggende tilkoblingsobjekt og ved å bruke en tilkoblingspool.

Her er et eksempel som viser hvordan du kobler til MySQL-databasen ved hjelp av et tilkoblingsobjekt.

import asyncio
import aiomysql
loop = asyncio.get_event_loop()

asynkrondefpython_mysql():
forbindelse = avvent aiomysql.connect (host="lokal vert",
bruker="<mysql_user>",
passord="<mysql_password>",
database="<databasenavn>")

nå = avvente forbindelse.cursor()
vent cur.execute("å velgedatabase();")
db = avvente cur.fetchone()
skrive ut("Du're koblet til databasen: ", db)
avvente cur.close()
forbindelse.Lukk()

Løkke.run_until_complete(python_mysql())

I motsetning til et databasetilkoblingsobjekt lar en tilkoblingspool deg gjenbruke databasetilkoblinger. Den gjør dette ved å opprettholde en pool av åpne forbindelser og tildele dem på forespørsel. Når en klient ber om en tilkobling, blir de tildelt en fra bassenget. Når klienten lukker tilkoblingen, går tilkoblingen tilbake til bassenget.

Den grunnleggende koden for tilkobling gjennom et basseng er som nedenfor:

import asyncio
import aiomysql
loop = asyncio.get_event_loop()
asynkrondefpython_mysql():
pool = vent aiomysql.create_pool (host="lokal vert",
bruker="<mysql_user>",
passord="<mysql_password>",
database="<databasenavn>", loop=loop, autocommit=False)

asynkronmed pool.acquire() som forbindelse:
markør = avvente forbindelse.cursor()
vent cur.execute("å velgedatabase();")
db = avvente cur.fetchone()
skrive ut("Du're koblet til databasen: ", db)

basseng.Lukk()
avvente pool.wait_closed()

Løkke.run_until_complete(python_mysql())

Dette programmet skal skrive ut versjonen av MySQL du har koblet til når du kjører det.

Administrere PostgreSQL-databasen din

Denne artikkelen viste deg flere måter du kan koble en Python-applikasjon til MySQL. Hver av disse metodene lar deg samhandle med og utføre spørringer på databasen.

Når du er koblet til en MySQL-database, kan du utføre dataspørringer og utføre databasetransaksjoner. Du kan lage en Python-applikasjon, koble den til MySQL og begynne å lagre data.