sql >> Database teknologi >  >> RDS >> Mysql

Sådan opretter du forbindelse til MySQL ved hjælp af Python

Python giver flere måder at oprette forbindelse til en MySQL-database og behandle data på. Denne artikel beskriver tre metoder.

MySQL-databaserne og -brugerne skal allerede eksistere, før du kan bruge nogen af ​​følgende metoder. For information om, hvordan du administrerer MySQL-databaser ved hjælp af cPanel, se venligst denne artikel.

Opretter forbindelse til MySQL ved hjælp af Python

Før du kan få adgang til MySQL-databaser ved hjælp af Python, skal du installere en (eller flere) af følgende pakker i et virtuelt miljø:

  • mysqlclient :Denne pakke indeholder MySQLdb modul. Den er skrevet i C og er en af ​​de mest brugte Python-pakker til MySQL.
  • mysql-connector-python :Denne pakke indeholder mysql.connector modul. Det er udelukkende skrevet i Python.
  • PyMySQL :Denne pakke indeholder pymysql modul. Det er udelukkende skrevet i Python.

Alle tre af disse pakker bruger Pythons bærbare SQL database API. Det betyder, at hvis du skifter fra et modul til et andet, kan du genbruge næsten al din eksisterende kode (kodeeksemplet nedenfor viser, hvordan du gør dette).

Opsætning af det virtuelle Python-miljø og installation af en MySQL-pakke

Følg disse trin for at opsætte det virtuelle Python-miljø og installere en MySQL-pakke:

  1. Log ind på din konto ved hjælp af SSH.
  2. For at oprette et virtuelt miljø skal du skrive følgende kommandoer:
    cd ~
    virtualenv sqlenv
    
    • Den virtualenv kommandoen opretter et virtuelt miljø ved navn sqlenv , og efterfølgende kommandoer i denne procedure antager, at miljøet hedder sqlenv . Du kan bruge et hvilket som helst miljønavn, du ønsker, men sørg for at erstatte alle forekomster af sqlenv med dit eget miljønavn.
    • Hvis du kører en alternativ Python-version (f.eks. konfigurerede du manuelt en nyere Python-version til din konto som beskrevet i denne artikel), kan du angive den version til det virtuelle miljø. For eksempel, for at installere en brugerkonfigureret version af Python 3.8 i det virtuelle miljø, kan du bruge følgende kommando:
      virtualenv -p /home/username/bin/python3.8 sqlenv
      
  3. For at aktivere det virtuelle miljø skal du skrive følgende kommando:

    source sqlenv/bin/activate
    Kommandoprompten starter nu med (sqlenv) for at angive, at du arbejder i et virtuelt Python-miljø. Alle de følgende kommandoer i denne procedure forudsætter, at du arbejder i det virtuelle miljø. Hvis du logger ud af din SSH-session (eller deaktiverer det virtuelle miljø ved at bruge deaktiver kommando), sørg for at genaktivere det virtuelle miljø, før du følger nedenstående trin og kører eksempelkoden.
  4. For at opdatere pip i det virtuelle miljø skal du skrive følgende kommando:

    pip install -U pip
  5. Indtast kommandoen for den pakke, du vil installere:

    • For at installere mysqlclient pakke, skal du skrive følgende kommando:
      pip install mysqlclient
    • For at installere mysql-connector-python pakke, skriv følgende kommando:

      pip install mysql-connector-python
    • For at installere pymysql pakke, skriv følgende kommando:

      pip install pymysql
Kodeeksempel

Når du har installeret en MySQL-pakke i det virtuelle miljø, er du klar til at arbejde med faktiske databaser. Følgende eksempel på Python-kode viser, hvordan man gør dette, samt hvor nemt det er at skifte mellem de forskellige SQL-pakkeimplementeringer. Eksempelkoden fungerer med Python 2.7 og Python 3.x.

I din egen kode skal du erstatte brugernavn med MySQL-databasebrugernavnet, adgangskode med databasebrugerens adgangskode og dbname med databasenavnet:

#!/usr/bin/python

from __future__ import print_function

hostname = 'localhost'
username = 'username'
password = 'password'
database = 'dbname'

# Simple routine to run a query on a database and print the results:
def doQuery( conn ) :
    cur = conn.cursor()

    cur.execute( "SELECT fname, lname FROM employee" )

    for firstname, lastname in cur.fetchall() :
        print( firstname, lastname )


print( "Using mysqlclient (MySQLdb):" )
import MySQLdb
myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database )
doQuery( myConnection )
myConnection.close()

print( "Using mysql.connector:" )
import mysql.connector
myConnection = mysql.connector.connect( host=hostname, user=username, passwd=password, db=database )
doQuery( myConnection )
myConnection.close()

print( "Using pymysql:" )
import pymysql
myConnection = pymysql.connect( host=hostname, user=username, passwd=password, db=database )
doQuery( myConnection )
myConnection.close()

Dette eksempel opretter en række forbindelse objekter, der åbner den samme database ved hjælp af forskellige MySQL-moduler. Fordi alle tre MySQL-moduler bruger den bærbare SQL-database API-grænseflade, er de i stand til at bruge koden i doQuery() funktion uden ændringer.

Når du har en forbindelse objekt knyttet til en database, kan du oprette en Markør objekt. Markøren objekt giver dig mulighed for at køre execute() metode, som igen giver dig mulighed for at køre rå SQL-sætninger (i dette tilfælde en SELECT forespørgsel på en tabel ved navn medarbejder ).

Som du kan se, gør Pythons bærbare SQL database API det meget nemt at skifte mellem MySQL moduler i din kode. I eksemplet ovenfor er de eneste kodeændringer, der er nødvendige for at bruge et andet modul, til importen og tilslut udsagn.

Flere oplysninger

  • For mere information om Pythons bærbare SQL-database API, besøg venligst https://www.python.org/dev/peps/pep-0249.
  • For mere information om mysqlclient pakke, besøg venligst https://pypi.org/project/mysqlclient.
  • For mere information om mysql-connector-python pakke, besøg venligst https://pypi.python.org/pypi/mysql-connector-python.
  • For mere information om PyMySQL pakke, besøg venligst https://pypi.python.org/pypi/PyMySQL.

  1. Failover for PostgreSQL-replikering 101

  2. SQL:slet alle data fra alle tilgængelige tabeller

  3. Sådan sikrer du MySQL/MariaDB-servere

  4. Får Oracle PL/SQL serverens IP v4?