MySQL on üks populaarsemaid relatsiooniandmebaase. See võimaldab salvestada andmeid tabelitesse ja luua nende tabelite vahel seoseid. Andmebaasiserverina töötava MySQL-i kasutamiseks peate sellega ühenduse loomiseks kirjutama koodi.

Enamik programmeerimiskeeli, nagu Python, pakuvad seda tuge. Tegelikult on Pythonis mitu lähenemisviisi, millest igaühel on oma eelised.

Valmistage ette oma MySQL-i konfiguratsioon

Andmebaasiga ühenduse loomiseks vajate järgmisi väärtusi:

  • Host: MySQL-serveri asukoht, lokaalne host, kui kasutate seda samas arvutis.
  • Kasutaja: MySQL-i kasutajanimi.
  • Parool: MySQL-i parool.
  • Andmebaasi nimi: andmebaasi nimi, millega soovite ühenduse luua.

Enne MySQL-i andmebaasiga ühenduse loomist looge uus kataloog:

mkdir python-mysql

Pythoni virtuaalse keskkonna seadistamine

Pythoni virtuaalne keskkond võimaldab installida pakette ja käivitada skripte isoleeritud keskkonnas. Kui sa luua virtuaalne keskkond, saate seejärel installida sellesse Pythoni ja Pythoni sõltuvuste versioonid. Nii eraldate erinevad versioonid ja väldite ühilduvusprobleeme.

Ühendage MySQL-iga, kasutades mysqlclient

The mysqlclient draiver on liides MySQL-i andmebaasiserverile, mis pakub Pythoni andmebaasiserveri API-d. See on kirjutatud C-s.

Mysqlclienti installimiseks käivitage virtuaalses keskkonnas järgmine käsk:

pip installida mysqlclient

Kui kasutate Linuxi masinat, installige esmalt Python 3 ja MySQL arenduspäised ja teegid.

# Debian / Ubuntu
sudo apt-get installida python3-dev vaikimisi-libmysqlclient-dev ehitada- hädavajalik

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

Windowsis saate installida mysqlclienti binaarrattafaili abil. Laadige saidilt alla teie platvormiga ühilduv mysqlclient fail Christoph Gohlke mitteametlik kollektsioon. Seejärel saate mysqlclienti installimiseks kasutada allalaaditud rattafaili koos pip-ga:

pipinstallidac:\\mysqlclient‑1.3.13cp36cp36mwin_amd64.whl

Kui installimine on lõppenud, kasutage MySQL-i andmebaasiga ühenduse loomiseks järgmist ühenduskoodi:

importida MySQLdb

ühendus = MySQLdb.connect(
host="kohalik host",
kasutaja="<mysql_user>",
passwd="<mysql_password>",
db="<andmebaasi_nimi>"
)

kursor = ühendus.kursor()
cursor.execute("valiandmebaasi();")
db = cursor.fetchone()

kui db:
print("Sina'uuesti andmebaasiga ühendatud: ", db)
muidu:
print('Pole ühendatud.')

Selles programmis on teil:

  • Imporditud mysqlclient.
  • Loodud ühendusobjekt MySQLdb.connect() abil.
  • Andis andmebaasi konfiguratsiooni üksikasjad edasi MySQLdb.connect().
  • Loodud kursoriobjekt MySQL-iga suhtlemiseks.
  • Kasutas kursoriobjekti ühendatud MySQL-i andmebaasi versiooni toomiseks.

Ärge unustage vahetada andmebaasi üksikasju enda andmetega.

Ühendage MySQL-iga, kasutades mysql-connector-pythonit

mysql-connector-python on ametlik ühenduse draiver, mida Oracle toetab. See on kirjutatud ka puhtas Pythonis.

Selle kasutamise alustamiseks installige see pipi kaudu.

pip installida mysql-connector-python

Ühendage MySQL-iga, kasutades järgmist ühenduskoodi.

importida mysql.connector
alates mysql.connector importidaViga

ühendus = mysql.connector.connect (host="kohalik host",
kasutaja="<mysql_user>",
passwd="<mysql_password>",
db="<andmebaasi_nimi>")

proovige:
kuiühendus.on_connected():
kursor = ühendus.kursor()
cursor.execute("valiandmebaasi();")
db = cursor.fetchone()
print("Sina'uuesti ühendatud andmebaasiga: ", db)
välja arvatud Viganagu e:
print("Vigasamas MySQL-iga ühenduse loomine", e)
lõpuks:
kuiühendus.on_connected():
kursor.Sulge()
ühendus.Sulge()
print ("MySQL-i ühendus on suletud")

Ülaltoodud ühenduse kood teeb sama, mida mysqclient ühenduse kood.

Kui olete ühendusobjekti loonud, saate luua kursori, mida saate seejärel kasutada andmebaasis päringute tegemiseks.

See ühendusprogramm kasutab ka proovi… püüda blokk. Veaklass, alates mysql.connector, võimaldab teil püüda andmebaasiga ühenduse loomisel esile kerkinud erandeid. See peaks silumist ja tõrkeotsingut lihtsustama.

Ühendage MySQL-iga PyMySQL-i abil

The PyMySQL ühenduse draiver on MySQLdb asendaja. Selle kasutamiseks peab teil olema Python 3.7 või uuem ja teie MySQL-server peaks olema versioon 5. 7 või uuem. Kui kasutate MariaDB-d, peaks see olema versioon 10.2 või uuem. Need nõuded leiate veebisaidilt PyMySQL Githubi leht.

PyMySQL-i installimiseks käivitage järgmine käsk.

pip installida PyMySQL

Ühendage MySQL-iga PyMySQL-i abil, kasutades seda koodi.

importida pymysql

ühendus = pymysql.connect (host="kohalik host",
kasutaja="<mysql_user>",
parool="<mysql_password>",
andmebaas ="<andmebaasi_nimi>")

proovige:
kursor = ühendus.kursor()
cursor.execute("valiandmebaasi();")
db = cursor.fetchone()
print("Sina'uuesti andmebaasiga ühendatud: ", db)
välja arvatud pymysql. Viga nagu e:
print("Vigasamas MySQL-iga ühenduse loomine", e)
lõpuks:
kursor.Sulge()
ühendus.Sulge()
print ("MySQL-i ühendus on suletud")

Kui olete ühenduse loonud ja kursoriobjekti loonud, võite alustada loomist SQL päringud.

Ühendage MySQL-iga, kasutades aiomysql-i

The aiomysql ühenduse draiver on nagu PyMySQL-i asünkroonne versioon. See pakub asyncio raamistikust juurdepääsu MySQL-i andmebaasile.

Aiomysql-i kasutamiseks on teie arenduskeskkonda vaja Python 3.7+ ja PyMySQL.

Käivitage asyncio ja aiomysql installimiseks järgmine käsk.

pip installida asünko
pip installida aiomysql

Aiomysqli abil saate Pythoni ühendada MySQL-iga, kasutades põhiühendusobjekti ja ühenduse basseini.

Siin on näide, mis näitab, kuidas ühendusobjekti abil MySQL-i andmebaasiga ühendust luua.

importida asünko
importida aiomysql
loop = asyncio.get_event_loop()

asünkrdefpython_mysql():
ühendus = oodake aiomysql.connect (host="kohalik host",
kasutaja="<mysql_user>",
parool="<mysql_password>",
andmebaas ="<andmebaasi_nimi>")

cur = ootama ühendus.kursor()
oota cur.execute("valiandmebaasi();")
db = ootama cur.fetchone()
print("Sina'uuesti andmebaasiga ühendatud: ", db)
ootama cur.close()
ühendus.Sulge()

silmus.run_until_complete(python_mysql())

Erinevalt andmebaasiühendusobjektist võimaldab ühenduskogum andmebaasiühendusi uuesti kasutada. See teeb seda, säilitades avatud ühenduste kogumi ja määrates need nõudmisel. Kui klient taotleb ühendust, määratakse talle see basseinist. Kui klient ühenduse sulgeb, läheb ühendus tagasi basseini.

Basseini kaudu ühendamise põhikood on järgmine:

importida asünko
importida aiomysql
loop = asyncio.get_event_loop()
asünkrdefpython_mysql():
pool = oodake aiomysql.create_pool (host="kohalik host",
kasutaja="<mysql_user>",
parool="<mysql_password>",
andmebaas ="<andmebaasi_nimi>", loop=loop, autocommit=False)

asünkrkoos pool.acquire() nagu ühendus:
kursor = ootama ühendus.kursor()
oota cur.execute("valiandmebaasi();")
db = ootama cur.fetchone()
print("Sina'uuesti andmebaasiga ühendatud: ", db)

bassein.Sulge()
ootama pool.wait_closed()

silmus.run_until_complete(python_mysql())

See programm peaks printima selle MySQL-i versiooni, millega olete selle käivitamisel ühenduse loonud.

PostgreSQL-i andmebaasi haldamine

See artikkel näitas teile mitmeid viise, kuidas saate Pythoni rakenduse MySQL-iga ühendada. Kõik need meetodid võimaldavad teil andmebaasiga suhelda ja päringuid täita.

Pärast MySQL-i andmebaasiga ühenduse loomist saate täita andmepäringuid ja teha andmebaasi tehinguid. Saate luua Pythoni rakenduse, ühendada selle MySQL-iga ja alustada andmete salvestamist.