MySQL yra viena iš populiariausių reliacinių duomenų bazių. Tai leidžia saugoti duomenis lentelėse ir kurti ryšius tarp tų lentelių. Norėdami naudoti MySQL, kuris veikia kaip duomenų bazės serveris, turėsite parašyti kodą, kad galėtumėte prie jo prisijungti.

Dauguma programavimo kalbų, tokių kaip Python, palaiko tai. Tiesą sakant, „Python“ yra keletas metodų, kurių kiekvienas turi savo privalumų.

Paruoškite savo MySQL konfigūraciją

Norint prisijungti prie duomenų bazės, reikia šių reikšmių:

  • Priegloba: „MySQL“ serverio vieta, „localhost“, jei naudojate jį tame pačiame kompiuteryje.
  • Vartotojas: MySQL vartotojo vardas.
  • Slaptažodis: MySQL slaptažodis.
  • Duomenų bazės pavadinimas: duomenų bazės, prie kurios norite prisijungti, pavadinimas.

Prieš prisijungdami prie MySQL duomenų bazės, sukurkite naują katalogą:

mkdir python-mysql

Nustatykite Python virtualią aplinką

Python virtuali aplinka leidžia įdiegti paketus ir paleisti scenarijus izoliuotoje aplinkoje. Kada tu sukurti virtualią aplinką, tada jame galite įdiegti Python ir Python priklausomybių versijas. Taip atskirsite skirtingas versijas ir išvengsite suderinamumo problemų.

instagram viewer

Prisijunkite prie MySQL naudodami mysqlclient

The mysqlclient tvarkyklė yra MySQL duomenų bazės serverio sąsaja, teikianti Python duomenų bazės serverio API. Tai parašyta C.

Vykdykite šią komandą virtualioje aplinkoje, kad įdiegtumėte mysqlclient:

pip diegti mysqlclient

Jei naudojate Linux įrenginį, pirmiausia įdiekite Python 3 ir MySQL kūrimo antraštes ir bibliotekas.

# Debian / Ubuntu
sudo apt-get diegti python3-dev numatytas-libmysqlclient-dev statyti-esminis

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

„Windows“ sistemoje „mysqlclient“ galite įdiegti naudodami dvejetainį rato failą. Atsisiųskite su jūsų platforma suderinamą mysqlclient failą iš Christoph Gohlke neoficiali kolekcija. Tada galite naudoti atsisiųstą rato failą su pip, kad įdiegtumėte mysqlclient taip:

pipdiegtic:\\mysqlclient‑1.3.13cp36cp36mwin_amd64.whl

Norėdami prisijungti prie MySQL duomenų bazės, kai diegimas bus baigtas, naudokite šį ryšio kodą:

importuoti MySQLdb

ryšys = MySQLdb.connect(
šeimininkas="vietinis šeimininkas",
vartotojas ="<mysql_user>",
passwd="<mysql_slaptažodis>",
db="<duomenų bazės_pavadinimas>"
)

žymeklis = ryšys.žymeklis()
cursor.execute("pasirinkiteduomenų bazėje();")
db = cursor.fetchone()

jei db:
spausdinti ("Tu'Prisijungę prie duomenų bazės: ", db)
Kitas:
spausdinti ('Neprisijungęs.')

Šioje programoje turite:

  • Importuotas mysqlclient.
  • Sukurtas ryšio objektas naudojant MySQLdb.connect().
  • Perdavė išsamią duomenų bazės konfigūracijos informaciją MySQLdb.connect().
  • Sukurtas žymeklio objektas sąveikauti su MySQL.
  • Naudojo žymeklio objektą prijungtos MySQL duomenų bazės versijai gauti.

Nepamirškite pakeisti duomenų bazės informacijos savo.

Prisijunkite prie MySQL naudodami mysql-connector-python

mysql-connector-python yra oficiali Oracle palaikoma ryšio tvarkyklė. Jis taip pat parašyta grynu Python.

Norėdami pradėti naudoti, įdiekite jį per pip.

pip diegti mysql-connector-python

Prisijunkite prie MySQL naudodami šį ryšio kodą.

importuoti mysql.connector
mysql.connector importuotiKlaida

ryšys = mysql.connector.connect (host="vietinis šeimininkas",
vartotojas ="<mysql_user>",
passwd="<mysql_slaptažodis>",
db="<duomenų bazės_pavadinimas>")

bandyti:
jeiguryšį.is_prijungtas():
žymeklis = ryšys.žymeklis()
cursor.execute("pasirinkiteduomenų bazėje();")
db = cursor.fetchone()
spausdinti ("Tu'vėl prijungtas prie duomenų bazės: ", db)
išskyrus Klaidakaip e:
spausdinti ("Klaidakol prisijungimas prie MySQL“, e)
pagaliau:
jeiguryšį.is_prijungtas():
žymeklį.Uždaryti()
ryšį.Uždaryti()
print ("MySQL ryšys yra uždaryta")

Aukščiau pateiktas ryšio kodas daro tą patį, ką daro mysqclient ryšio kodas.

Sukūrę ryšio objektą, galite sukurti žymeklį, kurį galėsite naudoti duomenų bazėje vykdyti užklausas.

Ši ryšio programa taip pat naudoja pabandyk... sugauti blokas. Klaidų klasė, nuo mysql.connector, leidžia užfiksuoti išimtis, kylančias jungiantis prie duomenų bazės. Tai turėtų supaprastinti derinimą ir trikčių šalinimą.

Prisijunkite prie MySQL naudodami PyMySQL

The PyMySQL ryšio tvarkyklė yra MySQLdb pakaitalas. Norėdami jį naudoti, turite paleisti Python 3.7 arba naujesnę versiją, o jūsų MySQL serveris turi būti 5 versijos. 7 ar naujesnė versija. Jei naudojate MariaDB, jos versija turėtų būti 10.2 arba naujesnė. Šiuos reikalavimus galite rasti PyMySQL Github puslapis.

Norėdami įdiegti PyMySQL, paleiskite šią komandą.

pip diegti PyMySQL

Prisijunkite prie MySQL naudodami PyMySQL naudodami šį kodą.

importuoti pymysql

ryšys = pymysql.connect (host="vietinis šeimininkas",
vartotojas ="<mysql_user>",
slaptažodis ="<mysql_slaptažodis>",
duomenų bazė ="<duomenų bazės_pavadinimas>")

bandyti:
žymeklis = ryšys.žymeklis()
cursor.execute("pasirinkiteduomenų bazėje();")
db = cursor.fetchone()
spausdinti ("Tu'Prisijungę prie duomenų bazės: ", db)
išskyrus pymysql. Klaida kaip e:
spausdinti ("Klaidakol prisijungimas prie MySQL“, e)
pagaliau:
žymeklį.Uždaryti()
ryšį.Uždaryti()
print ("MySQL ryšys yra uždaryta")

Užmezgę ryšį ir sukūrę žymeklio objektą, galite pradėti kurti SQL užklausos.

Prisijunkite prie MySQL naudodami aiomysql

The aiomysql ryšio tvarkyklė yra kaip asinchroninė PyMySQL versija. Tai suteikia prieigą prie MySQL duomenų bazės iš asyncio sistemos.

Norint naudoti aiomysql, kūrimo aplinkoje reikia įdiegti Python 3.7+ ir PyMySQL.

Vykdykite šią komandą, kad įdiegtumėte asyncio ir aiomysql.

pip diegti asyncio
pip diegti aiomysql

Naudodami aiomysql galite prijungti Python prie MySQL naudodami pagrindinį ryšio objektą ir ryšių telkinį.

Štai pavyzdys, rodantis, kaip prisijungti prie MySQL duomenų bazės naudojant ryšio objektą.

importuoti asyncio
importuoti aiomysql
kilpa = asyncio.get_event_loop()

asyncdefpython_mysql():
ryšys = laukti aiomysql.connect (host="vietinis šeimininkas",
vartotojas ="<mysql_user>",
slaptažodis ="<mysql_slaptažodis>",
duomenų bazė ="<duomenų bazės_pavadinimas>")

cur = laukti connect.cursor()
laukti cur.execute("pasirinkiteduomenų bazėje();")
db = laukti cur.fetchone()
spausdinti ("Tu'Prisijungę prie duomenų bazės: ", db)
laukti cur.close ()
ryšį.Uždaryti()

kilpa.run_until_complete(python_mysql())

Skirtingai nuo duomenų bazės ryšio objekto, ryšių telkinys leidžia pakartotinai naudoti duomenų bazės ryšius. Tai daroma palaikydama atvirų jungčių telkinį ir priskirdama juos paprašius. Kai klientas prašo prisijungti, jis jam priskiriamas iš telkinio. Kai klientas uždaro ryšį, ryšys grįžta į baseiną.

Pagrindinis prisijungimo per baseiną kodas yra toks:

importuoti asyncio
importuoti aiomysql
kilpa = asyncio.get_event_loop()
asyncdefpython_mysql():
baseinas = laukti aiomysql.create_pool (host="vietinis šeimininkas",
vartotojas ="<mysql_user>",
slaptažodis ="<mysql_slaptažodis>",
duomenų bazė ="<duomenų bazės_pavadinimas>", loop=ciklas, autocommit=False)

asyncsu pool.acquire() kaip ryšys:
žymeklis = laukti connect.cursor()
laukti cur.execute("pasirinkiteduomenų bazėje();")
db = laukti cur.fetchone()
spausdinti ("Tu'Prisijungę prie duomenų bazės: ", db)

baseinas.Uždaryti()
laukti pool.wait_closed()

kilpa.run_until_complete(python_mysql())

Ši programa turėtų spausdinti MySQL versiją, prie kurios prisijungėte, kai ją paleisite.

Valdykite savo PostgreSQL duomenų bazę

Šiame straipsnyje parodyta keletas būdų, kaip prijungti Python programą prie MySQL. Kiekvienas iš šių metodų leidžia sąveikauti su duomenų baze ir vykdyti užklausas.

Prisijungę prie MySQL duomenų bazės, galite vykdyti duomenų užklausas ir duomenų bazės operacijas. Galite sukurti Python programą, prijungti ją prie MySQL ir pradėti saugoti duomenis.