MySQL is een van de meest populaire relationele databases. Hiermee kunt u gegevens in tabellen opslaan en relaties tussen die tabellen maken. Om MySQL te gebruiken, dat als databaseserver wordt uitgevoerd, moet u code schrijven om er verbinding mee te maken.
De meeste programmeertalen zoals Python bieden hiervoor ondersteuning. In Python zijn er zelfs verschillende benaderingen die u kunt volgen, elk met zijn eigen voordelen.
Bereid uw MySQL-configuratie voor
Om verbinding te maken met de database, hebt u de volgende waarden nodig:
- Host: de locatie van de MySQL-server, localhost als u deze op dezelfde computer uitvoert.
- Gebruiker: de MySQL-gebruikersnaam.
- Wachtwoord: het MySQL-wachtwoord.
- Databasenaam: de naam van de database waarmee u verbinding wilt maken.
Maak een nieuwe map aan voordat u verbinding maakt met de MySQL-database:
mkdir python-mysql
Een virtuele Python-omgeving opzetten
Met een virtuele Python-omgeving kunt u pakketten installeren en scripts uitvoeren in een geïsoleerde omgeving. Wanneer je
een virtuele omgeving creëren, kunt u er vervolgens versies van Python- en Python-afhankelijkheden in installeren. Zo isoleer je verschillende versies en voorkom je compatibiliteitsproblemen.Maak verbinding met MySQL met behulp van mysqlclient
De mysqlclient driver is een interface naar de MySQL-databaseserver die de Python-databaseserver-API levert. Het is geschreven in C.
Voer de volgende opdracht uit in de virtuele omgeving om mysqlclient te installeren:
Pip installeren mysqlclient
Als je op een Linux-machine werkt, installeer dan eerst de Python 3- en MySQL-ontwikkelingsheaders en -bibliotheken.
# Debian / Ubuntu
sudo apt-get installeren python3-dev standaard-libmysqlclient-dev bouwen-essentieel
# Red Hat / CentOS
sudo jammie installeren python3-devel mysql-devel
Op Windows kunt u mysqlclient installeren met behulp van een binair wielbestand. Download het mysqlclient-bestand dat compatibel is met uw platform van De onofficiële collectie van Christoph Gohlke. U kunt dan het gedownloade wielbestand met pip gebruiken om mysqlclient als volgt te installeren:
Pipinstallerenc:\\mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl
Gebruik de volgende verbindingscode om verbinding te maken met de MySQL-database zodra de installatie is voltooid:
importeren MijnSQLdb
verbinding = MySQLdb.connect(
gastheer="localhost",
gebruiker="<mysql_user>",
passwd="<mysql_password>",
db="<database naam>"
)cursor = verbinding.cursor()
cursor.execute("selecteerdatabase();")
db = cursor.fetchone()
als db:
afdrukken("Jij'opnieuw verbonden met database: ", db)
anders:
afdrukken('Niet verbonden.')
In dit programma heb je:
- Geïmporteerde mysqlclient.
- Een verbindingsobject gemaakt met MySQLdb.connect().
- De gegevens van de databaseconfiguratie doorgegeven aan MySQLdb.connect().
- Een cursorobject gemaakt om te communiceren met MySQL.
- Gebruikt het cursorobject om de versie van de verbonden MySQL-database op te halen.
Vergeet niet om de databasedetails om te wisselen met die van u.
Verbinding maken met MySQL met behulp van mysql-connector-python
mysql-connector-python is het officiële verbindingsstuurprogramma dat door Oracle wordt ondersteund. Het is ook geschreven in pure Python.
Installeer het via pip om het te gaan gebruiken.
Pip installeren mysql-connector-python
Maak verbinding met MySQL met behulp van de volgende verbindingscode.
importeren mysql.connector
van mysql.connector importerenFoutverbinding = mysql.connector.connect (host="localhost",
gebruiker="<mysql_user>",
passwd="<mysql_password>",
db="<database naam>")
proberen:
alsverbinding.is verbonden():
cursor = verbinding.cursor()
cursor.execute("selecteerdatabase();")
db = cursor.fetchone()
afdrukken("Jij'opnieuw verbonden met database: ", db)
behalve Foutnet zo e:
afdrukken("Foutterwijl verbinding maken met MySQL", e)
Tenslotte:
alsverbinding.is verbonden():
cursor.dichtbij()
verbinding.dichtbij()
print("MySQL-verbinding is gesloten")
De bovenstaande verbindingscode doet hetzelfde als de mysqclient verbindingscode.
Nadat u het verbindingsobject hebt gemaakt, kunt u een cursor maken, die u vervolgens kunt gebruiken om query's op de database uit te voeren.
Dit verbindingsprogramma maakt ook gebruik van de proberen te vangen blok. De klasse Error, van mysql.connector, kunt u uitzonderingen opvangen die optreden wanneer u verbinding maakt met de database. Dit zou foutopsporing en probleemoplossing moeten vereenvoudigen.
Maak verbinding met MySQL met behulp van PyMySQL
De PyMySQL verbindingsstuurprogramma is een vervanging voor MySQLdb. Om het te gebruiken, moet u Python 3.7 of nieuwer gebruiken en uw MySQL-server moet versie 5 zijn. 7 of nieuwer. Als u MariaDB gebruikt, moet deze versie 10.2 of hoger zijn. U vindt deze eisen op de: PyMySQL Github-pagina.
Voer de volgende opdracht uit om PyMySQL te installeren.
Pip installeren PyMySQL
Maak verbinding met MySQL met behulp van PyMySQL met behulp van deze code.
importeren pymysql
verbinding = pymysql.connect (host="localhost",
gebruiker="<mysql_user>",
wachtwoord="<mysql_password>",
database="<database naam>")
proberen:
cursor = verbinding.cursor()
cursor.execute("selecteerdatabase();")
db = cursor.fetchone()
afdrukken("Jij'opnieuw verbonden met database: ", db)
behalve pymysql. Fout net zo e:
afdrukken("Foutterwijl verbinding maken met MySQL", e)
Tenslotte:
cursor.dichtbij()
verbinding.dichtbij()
print("MySQL-verbinding is gesloten")
Nadat u de verbinding hebt gemaakt en het cursorobject hebt gemaakt, kunt u beginnen met het maken van SQL-query's.
Maak verbinding met MySQL met behulp van aiomysql
De aiomysql verbindingsstuurprogramma is als de asynchrone versie van PyMySQL. Het biedt toegang tot een MySQL-database vanuit het asyncio-framework.
Om aiomysql te gebruiken, moet u Python 3.7+ en PyMySQL in uw ontwikkelomgeving hebben geïnstalleerd.
Voer de volgende opdracht uit om asyncio en aiomysql te installeren.
Pip installeren asynchrone
Pip installeren aiomysql
Met aiomysql kunt u Python verbinden met MySQL met behulp van een basisverbindingsobject en met behulp van een verbindingspool.
Hier is een voorbeeld dat laat zien hoe u verbinding kunt maken met de MySQL-database met behulp van een verbindingsobject.
importeren asynchrone
importeren aiomysql
loop = asyncio.get_event_loop()asynchronezekerpython_mysql():
verbinding = wacht aiomysql.connect (host="localhost",
gebruiker="<mysql_user>",
wachtwoord="<mysql_password>",
database="<database naam>")kur = wachten verbinding.cursor()
wacht cur.execute("selecteerdatabase();")
db = wachten cur.fetchone()
afdrukken("Jij'opnieuw verbonden met database: ", db)
wachten cur.close()
verbinding.dichtbij()
lus.run_tot_complete(python_mysql())
In tegenstelling tot een databaseverbindingsobject kunt u met een verbindingspool databaseverbindingen opnieuw gebruiken. Het doet dit door een pool van open verbindingen te onderhouden en deze op verzoek toe te wijzen. Wanneer een klant een verbinding aanvraagt, wordt er een toegewezen vanuit de pool. Zodra de client de verbinding sluit, gaat de verbinding terug naar de pool.
De basiscode voor verbinding via een zwembad is als volgt:
importeren asynchrone
importeren aiomysql
loop = asyncio.get_event_loop()
asynchronezekerpython_mysql():
pool = wacht aiomysql.create_pool (host="localhost",
gebruiker="<mysql_user>",
wachtwoord="<mysql_password>",
database="<database naam>", lus=lus, autocommit=False)asynchronemet zwembad.acquire() net zo verbinding:
cursor = wachten verbinding.cursor()
wacht cur.execute("selecteerdatabase();")
db = wachten cur.fetchone()
afdrukken("Jij'opnieuw verbonden met database: ", db)zwembad.dichtbij()
wachten pool.wait_closed()
lus.run_tot_complete(python_mysql())
Dit programma zou de versie van MySQL moeten afdrukken waarmee u verbinding hebt gemaakt wanneer u het uitvoert.
Uw PostgreSQL-database beheren
Dit artikel liet je verschillende manieren zien waarop je een Python-applicatie kunt verbinden met MySQL. Met elk van deze methoden kunt u interactief werken met en query's uitvoeren op de database.
Eenmaal verbonden met een MySQL-database, kunt u gegevensquery's uitvoeren en databasetransacties uitvoeren. U kunt een Python-toepassing maken, deze aansluiten op MySQL en beginnen met het opslaan van gegevens.