MySQL je ena izmed najbolj priljubljenih relacijskih baz podatkov. Omogoča vam shranjevanje podatkov v tabele in ustvarjanje odnosov med temi tabelami. Za uporabo MySQL, ki deluje kot strežnik baz podatkov, boste morali napisati kodo za povezavo z njim.

Večina programskih jezikov, kot je Python, nudi podporo za to. Pravzaprav lahko v Pythonu uporabite več pristopov, od katerih ima vsak svoje prednosti.

Pripravite svojo konfiguracijo MySQL

Za povezavo z bazo podatkov potrebujete naslednje vrednosti:

  • Host: lokacija strežnika MySQL, localhost, če ga izvajate v istem računalniku.
  • Uporabnik: uporabniško ime MySQL.
  • Geslo: geslo MySQL.
  • Ime baze podatkov: ime baze podatkov, s katero se želite povezati.

Preden se povežete z bazo podatkov MySQL, ustvarite nov imenik:

mkdir python-mysql

Nastavite navidezno okolje Python

Navidezno okolje Python vam omogoča namestitev paketov in izvajanje skriptov v izoliranem okolju. Ko ti ustvarite virtualno okolje, lahko nato vanj namestite različice odvisnosti Python in Python. Na ta način izolirate različne različice in se izognete težavam z združljivostjo.

Povežite se z MySQL z uporabo mysqlclient

The mysqlclient gonilnik je vmesnik za strežnik baz podatkov MySQL, ki zagotavlja API strežnika baz podatkov Python. Napisano je v C.

Za namestitev mysqlclient v navideznem okolju zaženite naslednji ukaz:

pip namestite mysqlclient

Če uporabljate računalnik z Linuxom, najprej namestite razvojne glave in knjižnice Python 3 in MySQL.

# Debian/Ubuntu
sudo apt-get namestite python3-dev privzeto-libmysqlclient-dev graditi- bistveno

# Red Hat / CentOS
sudo njam namestite python3-devel mysql-devel

V sistemu Windows lahko namestite mysqlclient z binarno datoteko kolesa. Prenesite datoteko mysqlclient, ki je združljiva z vašo platformo Neuradna zbirka Christopha Gohlkeja. Nato lahko uporabite preneseno datoteko kolesa s pip za namestitev mysqlclient, kot je ta:

pipnamestitec:\\mysqlclient‑1.3.13cp36cp36mwin_amd64.whl

Za povezavo z bazo podatkov MySQL uporabite naslednjo kodo za povezavo, ko je namestitev končana:

uvoz MySQLdb

povezava = MySQLdb.connect(
gostitelj ="lokalni gostitelj",
uporabnik="<mysql_user>",
passwd="<mysql_password>",
db="<ime_baze>"
)

kazalec = povezava.kurzor()
cursor.execute("izberitebazo podatkov();")
db = cursor.fetchone()

če db:
natisni ("ti'ponovno povezan z bazo podatkov: ", db)
drugo:
natisni ('Brez povezave.')

V tem programu imate:

  • Uvožen mysqlclient.
  • Ustvaril objekt povezave z uporabo MySQLdb.connect().
  • Predal podrobnosti konfiguracije baze podatkov v MySQLdb.connect().
  • Ustvaril predmet kazalca za interakcijo z MySQL.
  • Uporabil je predmet kazalca za pridobitev različice povezane baze podatkov MySQL.

Ne pozabite zamenjati podrobnosti baze podatkov s svojimi.

Povežite se z MySQL z uporabo mysql-connector-python

mysql-konektor-python je uradni gonilnik povezave, ki ga podpira Oracle. Napisana je tudi v čistem Pythonu.

Namestite ga prek pip, da ga začnete uporabljati.

pip namestite mysql-konektor-python

Povežite se z MySQL z naslednjo kodo povezave.

uvoz mysql.connector
od mysql.connector uvozNapaka

povezava = mysql.connector.connect (gostitelj="lokalni gostitelj",
uporabnik="<mysql_user>",
passwd="<mysql_password>",
db="<ime_baze>")

poskusi:
čepovezavo.is_connected():
kazalec = povezava.kurzor()
cursor.execute("izberitebazo podatkov();")
db = cursor.fetchone()
natisni ("ti'ponovno povezan z dtabase: ", db)
razen Napakakot e:
natisni ("Napakamedtem povezovanje z MySQL", e)
končno:
čepovezavo.is_connected():
kazalec.zapri()
povezavo.zapri()
print("Povezava MySQL je zaprto")

Zgornja koda povezave naredi isto stvar kot povezovalna koda mysqclient.

Ko ustvarite objekt povezave, lahko ustvarite kazalec, ki ga nato uporabite za izvajanje poizvedb v bazi podatkov.

Ta povezovalni program uporablja tudi poskusi... ulovi blok. Razred Error, od mysql.connector, vam omogoča ulov izjem, ki se pojavijo pri povezovanju z bazo podatkov. To bi moralo poenostaviti odpravljanje napak in odpravljanje težav.

Povežite se z MySQL z uporabo PyMySQL

The PyMySQL gonilnik povezave je zamenjava za MySQLdb. Če ga želite uporabljati, morate uporabljati Python 3.7 ali novejši in vaš strežnik MySQL mora biti različice 5. 7 ali novejše. Če uporabljate MariaDB, mora biti različica 10.2 ali novejša. Te zahteve lahko najdete na Stran PyMySQL Github.

Če želite namestiti PyMySQL, zaženite naslednji ukaz.

pip namestite PyMySQL

Povežite se z MySQL s PyMySQL s to kodo.

uvoz pymysql

povezava = pymysql.connect (gostitelj="lokalni gostitelj",
uporabnik="<mysql_user>",
geslo="<mysql_password>",
baza podatkov="<ime_baze>")

poskusi:
kazalec = povezava.kurzor()
cursor.execute("izberitebazo podatkov();")
db = cursor.fetchone()
natisni ("ti'ponovno povezan z bazo podatkov: ", db)
razen pymysql. Napaka kot e:
natisni ("Napakamedtem povezovanje z MySQL", e)
končno:
kazalec.zapri()
povezavo.zapri()
print("Povezava MySQL je zaprto")

Ko vzpostavite povezavo in ustvarite predmet kazalca, lahko začnete ustvarjati SQL poizvedbe.

Povežite se z MySQL z uporabo aiomysql

The aiomysql gonilnik povezave je podoben asinhroni različici PyMySQL. Omogoča dostop do baze podatkov MySQL iz ogrodja asyncio.

Za uporabo aiomysql potrebujete Python 3.7+ in PyMySQL nameščen v vašem razvojnem okolju.

Zaženite naslednji ukaz za namestitev asyncio in aiomysql.

pip namestite asyncio
pip namestite aiomysql

Z aiomysql lahko Python povežete z MySQL z osnovnim objektom povezave in z uporabo področja povezav.

Tukaj je primer, ki prikazuje, kako se povezati z bazo podatkov MySQL z uporabo objekta povezave.

uvoz asyncio
uvoz aiomysql
zanka = asyncio.get_event_loop()

asyncdefpython_mysql():
povezava = čakaj aiomysql.connect (gostitelj="lokalni gostitelj",
uporabnik="<mysql_user>",
geslo="<mysql_password>",
baza podatkov="<ime_baze>")

cur = čakati connection.cursor()
čakaj cur.execute("izberitebazo podatkov();")
db = čakati cur.fetchone()
natisni ("ti'ponovno povezan z bazo podatkov: ", db)
čakati cur.close()
povezavo.zapri()

zanka.run_until_complete(python_mysql())

Za razliko od objekta povezave baze podatkov vam področje povezav omogoča ponovno uporabo povezav baze podatkov. To naredi tako, da vzdržuje nabor odprtih povezav in jih na zahtevo dodeli. Ko odjemalec zahteva povezavo, se ji dodeli ena iz področja. Ko odjemalec zapre povezavo, se povezava vrne v področje.

Osnovna koda za povezavo prek bazena je naslednja:

uvoz asyncio
uvoz aiomysql
zanka = asyncio.get_event_loop()
asyncdefpython_mysql():
pool = await aiomysql.create_pool (gostitelj="lokalni gostitelj",
uporabnik="<mysql_user>",
geslo="<mysql_password>",
baza podatkov="<ime_baze>", loop=loop, autocommit=False)

asyncz pool.acquire() kot povezava:
kazalec = čakati connection.cursor()
čakaj cur.execute("izberitebazo podatkov();")
db = čakati cur.fetchone()
natisni ("ti'ponovno povezan z bazo podatkov: ", db)

bazen.zapri()
čakati pool.wait_closed()

zanka.run_until_complete(python_mysql())

Ta program bi moral natisniti različico MySQL, s katero ste se povezali, ko ga zaženete.

Upravljanje vaše baze podatkov PostgreSQL

Ta članek vam je pokazal več načinov, kako lahko aplikacijo Python povežete z MySQL. Vsaka od teh metod vam omogoča interakcijo z bazo podatkov in izvajanje poizvedb v njej.

Ko ste povezani z bazo podatkov MySQL, lahko izvajate podatkovne poizvedbe in izvajate transakcije baze podatkov. Ustvarite lahko aplikacijo Python, jo povežete z MySQL in začnete shranjevati podatke.