MySQL är en av de mest populära relationsdatabaserna. Det låter dig lagra data i tabeller och skapa relationer mellan dessa tabeller. För att använda MySQL, som körs som en databasserver, måste du skriva kod för att ansluta till den.
De flesta programmeringsspråk som Python ger stöd för detta. Faktum är att i Python finns det flera tillvägagångssätt du kan ta, var och en med sina egna fördelar.
Förbered din MySQL-konfiguration
För att ansluta till databasen behöver du följande värden:
- Värd: platsen för MySQL-servern, localhost om du kör den på samma dator.
- Användare: MySQL-användarnamnet.
- Lösenord: MySQL-lösenordet.
- Databasnamn: namnet på databasen du vill ansluta till.
Innan du ansluter till MySQL-databasen, skapa en ny katalog:
mkdir python-mysql
Konfigurera en virtuell Python-miljö
En virtuell Python-miljö låter dig installera paket och köra skript i en isolerad miljö. När du skapa en virtuell miljö, kan du sedan installera versioner av Python- och Python-beroenden inom den. På så sätt isolerar du olika versioner och undviker kompatibilitetsproblem.
Anslut till MySQL med mysqlclient
De mysqlclient drivrutinen är ett gränssnitt till MySQL-databasservern som tillhandahåller Python-databasserverns API. Det är skrivet i C.
Kör följande kommando i den virtuella miljön för att installera mysqlclient:
pip Installera mysqlclient
Om du använder en Linux-maskin, installera Python 3 och MySQL utvecklingshuvuden och bibliotek först.
# Debian / Ubuntu
sudo apt-get Installera python3-dev standard-libmysqlclient-dev bygga-grundläggande
# Red Hat / CentOS
sudo yum Installera python3-devel mysql-devel
På Windows kan du installera mysqlclient med en binär hjulfil. Ladda ner mysqlclient-filen som är kompatibel med din plattform från Christoph Gohlkes inofficiella samling. Du kan sedan använda den nedladdade hjulfilen med pip för att installera mysqlclient så här:
pipInstallerac:\\mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl
Använd följande anslutningskod för att ansluta till MySQL-databasen när installationen är klar:
importera MySQLdb
anslutning = MySQLdb.connect(
värd="lokal värd",
användare="<mysql_user>",
passwd="<mysql_password>",
db="<Databas namn>"
)cursor = connection.cursor()
cursor.execute("Väljdatabas();")
db = cursor.fetchone()
om db:
skriva ut("Du'åter ansluten till databasen: ", db)
annan:
skriva ut('Inte ansluten.')
I det här programmet har du:
- Importerad mysqlclient.
- Skapat ett anslutningsobjekt med MySQLdb.connect().
- Skickade databaskonfigurationsdetaljerna till MySQLdb.connect().
- Skapat ett markörobjekt för att interagera med MySQL.
- Använde markörobjektet för att hämta versionen av den anslutna MySQL-databasen.
Kom ihåg att byta databasinformation med din egen.
Anslut till MySQL med mysql-connector-python
mysql-connector-python är den officiella anslutningsdrivrutinen som stöds av Oracle. Den är också skriven i ren Python.
Installera den via pip för att börja använda den.
pip Installera mysql-connector-python
Anslut till MySQL med följande anslutningskod.
importera mysql.connector
från mysql.connector importeraFelanslutning = mysql.connector.connect (värd="lokal värd",
användare="<mysql_user>",
passwd="<mysql_password>",
db="<Databas namn>")
Prova:
omförbindelse.är ansluten():
cursor = connection.cursor()
cursor.execute("Väljdatabas();")
db = cursor.fetchone()
skriva ut("Du'åter ansluten till databasen: ", db)
bortsett från Felsom e:
skriva ut("Felmedan ansluter till MySQL", e)
till sist:
omförbindelse.är ansluten():
markören.stänga()
förbindelse.stänga()
print("MySQL-anslutning är stängd")
Ovanstående anslutningskod gör samma sak som mysqclient-anslutningskoden gör.
När du väl har skapat anslutningsobjektet kan du skapa en markör som du sedan kan använda för att köra frågor i databasen.
Detta anslutningsprogram använder också försök fånga blockera. Felklassen, från mysql.connector, låter dig fånga undantag som uppstår när du ansluter till databasen. Detta bör förenkla felsökning och felsökning.
Anslut till MySQL med PyMySQL
De PyMySQL anslutningsdrivrutinen är en ersättning för MySQLdb. För att använda den måste du köra Python 3.7 eller senare och din MySQL-server bör vara version 5. 7 eller nyare. Om du använder MariaDB bör det vara version 10.2 eller högre. Du kan hitta dessa krav på PyMySQL Github-sida.
För att installera PyMySQL, kör följande kommando.
pip Installera PyMySQL
Anslut till MySQL med PyMySQL med denna kod.
importera pymysql
connection = pymysql.connect (host="lokal värd",
användare="<mysql_user>",
lösenord="<mysql_password>",
databas="<Databas namn>")
Prova:
cursor = connection.cursor()
cursor.execute("Väljdatabas();")
db = cursor.fetchone()
skriva ut("Du'åter ansluten till databasen: ", db)
bortsett från pymysql. Fel som e:
skriva ut("Felmedan ansluter till MySQL", e)
till sist:
markören.stänga()
förbindelse.stänga()
print("MySQL-anslutning är stängd")
När du har gjort anslutningen och skapat markörobjektet kan du börja skapa SQL-frågor.
Anslut till MySQL med aiomysql
De aiomysql anslutningsdrivrutinen är som den asynkrona versionen av PyMySQL. Det ger tillgång till en MySQL-databas från asyncio-ramverket.
För att använda aiomysql behöver du Python 3.7+ och PyMySQL installerat i din utvecklingsmiljö.
Kör följande kommando för att installera asyncio och aiomysql.
pip Installera asyncio
pip Installera aiomysql
Med aiomysql kan du ansluta Python till MySQL med ett grundläggande anslutningsobjekt och med en anslutningspool.
Här är ett exempel som visar hur man ansluter till MySQL-databasen med ett anslutningsobjekt.
importera asyncio
importera aiomysql
loop = asyncio.get_event_loop()asynkrondefpython_mysql():
anslutning = väntar aiomysql.connect (värd="lokal värd",
användare="<mysql_user>",
lösenord="<mysql_password>",
databas="<Databas namn>")cur = vänta connection.cursor()
await cur.execute("Väljdatabas();")
db = vänta cur.fetchone()
skriva ut("Du'åter ansluten till databasen: ", db)
vänta cur.close()
förbindelse.stänga()
slinga.run_until_complete(python_mysql())
Till skillnad från ett databasanslutningsobjekt låter en anslutningspool dig återanvända databasanslutningar. Den gör detta genom att upprätthålla en pool av öppna anslutningar och tilldela dem på begäran. När en klient begär en anslutning tilldelas de en från poolen. När klienten stänger anslutningen går anslutningen tillbaka till poolen.
Den grundläggande koden för att ansluta genom en pool är som nedan:
importera asyncio
importera aiomysql
loop = asyncio.get_event_loop()
asynkrondefpython_mysql():
pool = väntar aiomysql.create_pool (host="lokal värd",
användare="<mysql_user>",
lösenord="<mysql_password>",
databas="<Databas namn>", loop=loop, autocommit=False)asynkronmed pool.acquire() som förbindelse:
markör = vänta connection.cursor()
await cur.execute("Väljdatabas();")
db = vänta cur.fetchone()
skriva ut("Du'åter ansluten till databasen: ", db)slå samman.stänga()
vänta pool.wait_closed()
slinga.run_until_complete(python_mysql())
Det här programmet ska skriva ut versionen av MySQL du har anslutit till när du kör det.
Hantera din PostgreSQL-databas
Den här artikeln visade dig flera sätt du kan ansluta en Python-applikation till MySQL. Var och en av dessa metoder låter dig interagera med och köra frågor i databasen.
När du väl är ansluten till en MySQL-databas kan du köra datafrågor och utföra databastransaktioner. Du kan skapa en Python-applikation, ansluta den till MySQL och börja lagra data.