MySQL je jedna od najpopularnijih relacijskih baza podataka. Omogućuje vam pohranjivanje podataka u tablice i stvaranje odnosa između tih tablica. Da biste koristili MySQL, koji radi kao poslužitelj baze podataka, morat ćete napisati kod za povezivanje s njim.

Većina programskih jezika poput Pythona pruža podršku za to. Zapravo, u Pythonu postoji nekoliko pristupa koje možete koristiti, svaki sa svojim prednostima.

Pripremite svoju MySQL konfiguraciju

Za povezivanje s bazom podataka potrebne su vam sljedeće vrijednosti:

  • Host: lokacija MySQL poslužitelja, localhost ako ga koristite na istom računalu.
  • Korisnik: MySQL korisničko ime.
  • Lozinka: MySQL lozinka.
  • Naziv baze podataka: naziv baze podataka na koju se želite povezati.

Prije spajanja na MySQL bazu podataka, stvorite novi direktorij:

mkdir python-mysql

Postavite Python virtualno okruženje

Python virtualno okruženje omogućuje vam instaliranje paketa i pokretanje skripti u izoliranom okruženju. Kada ti stvoriti virtualno okruženje, zatim unutar njega možete instalirati verzije Python i Python ovisnosti. Na taj način izolirate različite verzije i izbjegavate probleme s kompatibilnošću.

instagram viewer

Povežite se s MySQL pomoću mysqlclienta

The mysqlclient drajver je sučelje za MySQL poslužitelj baze podataka koje pruža API poslužitelja baze podataka Python. Napisano je u C.

Pokrenite sljedeću naredbu u virtualnom okruženju da instalirate mysqlclient:

pip instalirati mysqlclient

Ako koristite Linux stroj, prvo instalirajte razvojna zaglavlja i knjižnice za Python 3 i MySQL.

# Debian / Ubuntu
sudo apt-get instalirati python3-dev zadano-libmysqlclient-dev izgraditi-bitno

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

U sustavu Windows možete instalirati mysqlclient pomoću datoteke binarnog kotača. Preuzmite datoteku mysqlclient koja je kompatibilna s vašom platformom Neslužbena zbirka Christopha Gohlkea. Zatim možete koristiti preuzetu datoteku kotača s pip za instalaciju mysqlclienta na sljedeći način:

pipinstaliratic:\\mysqlclient‑1.3.13k.č.36cp36mwin_amd64.whl

Koristite sljedeći kod za povezivanje za povezivanje s MySQL bazom podataka nakon dovršetka instalacije:

uvoz MySQLdb

veza = MySQLdb.connect(
host="lokalni domaćin",
korisnik="<mysql_user>",
passwd="<mysql_password>",
db="<ime_baze podataka>"
)

kursor = veza.kursor()
cursor.execute("Odaberibaza podataka();")
db = kursor.fetchone()

ako db:
ispis ("Vas'ponovno spojen na bazu podataka: ", db)
drugo:
ispis ('Nije povezano.')

U ovom programu imate:

  • Uvezeni mysqlclient.
  • Stvorio objekt veze pomoću MySQLdb.connect().
  • Proslijedio detalje konfiguracije baze podataka u MySQLdb.connect().
  • Stvorio objekt kursora za interakciju s MySQL-om.
  • Koristio je objekt pokazivača za dohvaćanje verzije povezane MySQL baze podataka.

Ne zaboravite promijeniti pojedinosti baze podataka vlastitim.

Povežite se s MySQL pomoću mysql-connector-python

mysql-konektor-python je službeni upravljački program veze koji podržava Oracle. Također je napisan u čistom Pythonu.

Instalirajte ga putem pip-a da biste ga počeli koristiti.

pip instalirati mysql-konektor-python

Povežite se s MySQL koristeći sljedeći kod za povezivanje.

uvoz mysql.konektor
iz mysql.konektor uvozGreška

veza = mysql.connector.connect (host="lokalni domaćin",
korisnik="<mysql_user>",
passwd="<mysql_password>",
db="<ime_baze podataka>")

probati:
akovezu.je_povezan():
kursor = veza.kursor()
cursor.execute("Odaberibaza podataka();")
db = kursor.fetchone()
ispis ("Vas'ponovno spojen na dtabase: ", db)
osim Greškakao e:
ispis ("Greškadok povezivanje na MySQL", e)
konačno:
akovezu.je_povezan():
kursor.Zatvoriti()
vezu.Zatvoriti()
print("MySQL veza je zatvoreno")

Gornji kod veze radi istu stvar kao i kod veze mysqclient.

Nakon što stvorite objekt povezivanja, možete stvoriti kursor koji zatim možete koristiti za izvršavanje upita u bazi podataka.

Ovaj program za povezivanje također koristi pokušaj uhvatiti blok. Klasa Error, od mysql.konektor, omogućuje vam da uhvatite iznimke nastale prilikom povezivanja s bazom podataka. To bi trebalo pojednostaviti otklanjanje pogrešaka i rješavanje problema.

Povežite se s MySQL pomoću PyMySQL

The PyMySQL upravljački program veze je zamjena za MySQLdb. Da biste ga koristili, morate imati instaliran Python 3.7 ili noviji, a vaš MySQL poslužitelj trebao bi biti verzije 5. 7 ili noviji. Ako koristite MariaDB to bi trebala biti verzija 10.2 ili novija. Ove zahtjeve možete pronaći na PyMySQL Github stranica.

Da biste instalirali PyMySQL, pokrenite sljedeću naredbu.

pip instalirati PyMySQL

Povežite se s MySQL pomoću PyMySQL pomoću ovog koda.

uvoz pymysql

veza = pymysql.connect (host="lokalni domaćin",
korisnik="<mysql_user>",
lozinka="<mysql_password>",
baza podataka="<ime_baze podataka>")

probati:
kursor = veza.kursor()
cursor.execute("Odaberibaza podataka();")
db = kursor.fetchone()
ispis ("Vas'ponovno spojen na bazu podataka: ", db)
osim pymysql. Greška kao e:
ispis ("Greškadok povezivanje na MySQL", e)
konačno:
kursor.Zatvoriti()
vezu.Zatvoriti()
print("MySQL veza je zatvoreno")

Nakon što uspostavite vezu i kreirate objekt kursora, možete početi s izradom SQL upiti.

Povežite se s MySQL pomoću aiomysql

The aiomysql upravljački program veze je kao asinkrona verzija PyMySQL. Omogućuje pristup MySQL bazi podataka iz asyncio okvira.

Da biste koristili aiomysql, trebate instalirati Python 3.7+ i PyMySQL u vašem razvojnom okruženju.

Pokrenite sljedeću naredbu da instalirate asyncio i aiomysql.

pip instalirati asyncio
pip instalirati aiomysql

Uz aiomysql, možete povezati Python s MySQL pomoću osnovnog objekta veze i korištenjem spremišta veza.

Ovdje je primjer koji pokazuje kako se povezati s MySQL bazom podataka pomoću objekta povezivanja.

uvoz asyncio
uvoz aiomysql
petlja = asyncio.get_event_loop()

asinkdefpython_mysql():
veza = čekaj aiomysql.connect (host="lokalni domaćin",
korisnik="<mysql_user>",
lozinka="<mysql_password>",
baza podataka="<ime_baze podataka>")

cur = čekati veza.kursor()
čekaj cur.execute("Odaberibaza podataka();")
db = čekati cur.fetchone()
ispis ("Vas'ponovno spojen na bazu podataka: ", db)
čekati cur.close()
vezu.Zatvoriti()

petlja.run_until_complete(python_mysql())

Za razliku od objekta veze baze podataka, spremište veza vam omogućuje ponovnu upotrebu veza baze podataka. To čini tako da održava skup otvorenih veza i dodjeljuje ih na zahtjev. Kada klijent zatraži vezu, dodjeljuje mu se ona iz skupa. Nakon što klijent zatvori vezu, veza se vraća u bazen.

Osnovni kod za povezivanje preko bazena je kao u nastavku:

uvoz asyncio
uvoz aiomysql
petlja = asyncio.get_event_loop()
asinkdefpython_mysql():
pool = čekaj aiomysql.create_pool (host="lokalni domaćin",
korisnik="<mysql_user>",
lozinka="<mysql_password>",
baza podataka="<ime_baze podataka>", petlja=petlja, autocommit=False)

asinks pool.acquire() kao veza:
kursor = čekati veza.kursor()
čekaj cur.execute("Odaberibaza podataka();")
db = čekati cur.fetchone()
ispis ("Vas'ponovno spojen na bazu podataka: ", db)

bazen.Zatvoriti()
čekati pool.wait_closed()

petlja.run_until_complete(python_mysql())

Ovaj program bi trebao ispisati verziju MySQL-a s kojom ste se povezali kada ga pokrenete.

Upravljanje vašom PostgreSQL bazom podataka

Ovaj vam je članak pokazao nekoliko načina na koje možete povezati Python aplikaciju s MySQL. Svaka od ovih metoda omogućuje interakciju i izvršavanje upita u bazi podataka.

Jednom kada ste povezani s MySQL bazom podataka, možete izvršavati upite podataka i obavljati transakcije baze podataka. Možete stvoriti Python aplikaciju, spojiti je na MySQL i početi pohranjivati ​​podatke.