Python menyediakan beberapa cara untuk terhubung ke database MySQL dan memproses data. Artikel ini menjelaskan tiga metode.
Database MySQL dan pengguna harus sudah ada sebelum Anda dapat menggunakan salah satu metode berikut. Untuk informasi tentang cara mengelola database MySQL menggunakan cPanel, silakan lihat artikel ini.Menghubungkan ke MySQL menggunakan Python
Sebelum Anda dapat mengakses database MySQL menggunakan Python, Anda harus menginstal satu (atau lebih) paket berikut di lingkungan virtual:
- klien mysql :Paket ini berisi MySQLdb modul. Itu ditulis dalam C, dan merupakan salah satu paket Python yang paling umum digunakan untuk MySQL.
- mysql-connector-python :Paket ini berisi mysql.connector modul. Itu ditulis seluruhnya dengan Python.
- PyMySQL :Paket ini berisi pymysql modul. Itu ditulis seluruhnya dengan Python.
Ketiga paket ini menggunakan API database SQL portabel Python. Artinya, jika Anda beralih dari satu modul ke modul lainnya, Anda dapat menggunakan kembali hampir semua kode yang ada (contoh kode di bawah menunjukkan cara melakukannya).
Menyiapkan lingkungan virtual Python dan menginstal paket MySQL
Untuk menyiapkan lingkungan virtual Python dan menginstal paket MySQL, ikuti langkah-langkah berikut:
- Masuk ke akun Anda menggunakan SSH.
- Untuk membuat lingkungan virtual, ketik perintah berikut:
cd ~ virtualenv sqlenv
- Virtualenv perintah membuat lingkungan virtual bernama sqlenv , dan perintah selanjutnya dalam prosedur ini mengasumsikan bahwa lingkungan tersebut bernama sqlenv . Anda dapat menggunakan nama lingkungan apa pun yang Anda inginkan, tetapi pastikan Anda mengganti semua kemunculan sqlenv dengan nama lingkungan Anda sendiri.
- Jika Anda menjalankan versi Python alternatif (misalnya, Anda secara manual mengonfigurasi versi Python yang lebih baru untuk akun Anda seperti yang dijelaskan dalam artikel ini), Anda dapat menentukan versi tersebut untuk lingkungan virtual. Misalnya, untuk menginstal versi Python 3.8 yang dikonfigurasi pengguna di lingkungan virtual, Anda dapat menggunakan perintah berikut:
virtualenv -p /home/username/bin/python3.8 sqlenv
-
Untuk mengaktifkan lingkungan virtual, ketik perintah berikut:
source sqlenv/bin/activate
Prompt perintah sekarang dimulai dengan (sqlenv) untuk menunjukkan bahwa Anda bekerja di lingkungan virtual Python. Semua perintah berikut dalam prosedur ini mengasumsikan bahwa Anda bekerja dalam lingkungan virtual. Jika Anda keluar dari sesi SSH Anda (atau menonaktifkan lingkungan virtual dengan menggunakan nonaktifkan perintah), pastikan Anda mengaktifkan kembali lingkungan virtual sebelum mengikuti langkah-langkah di bawah ini dan menjalankan kode contoh. -
Untuk memperbarui pip di lingkungan virtual, ketik perintah berikut:
pip install -U pip
-
Ketik perintah untuk paket yang ingin Anda instal:
- Untuk menginstal mysqlclient paket, ketik perintah berikut:
pip install mysqlclient
-
Untuk menginstal mysql-connector-python paket, ketik perintah berikut:
pip install mysql-connector-python
-
Untuk menginstal pymysql paket, ketik perintah berikut:
pip install pymysql
- Untuk menginstal mysqlclient paket, ketik perintah berikut:
Contoh kode
Setelah Anda menginstal paket MySQL di lingkungan virtual, Anda siap untuk bekerja dengan database yang sebenarnya. Contoh kode Python berikut menunjukkan cara melakukannya, serta betapa mudahnya beralih di antara implementasi paket SQL yang berbeda. Kode sampel berfungsi dengan Python 2.7 dan Python 3.x.
Dalam kode Anda sendiri, ganti nama pengguna dengan nama pengguna database MySQL, kata sandi dengan kata sandi pengguna basis data, dan dbname dengan nama database:
#!/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()
Contoh ini membuat serangkaian Koneksi objek yang membuka database yang sama menggunakan modul MySQL yang berbeda. Karena ketiga modul MySQL menggunakan antarmuka API database SQL portabel, mereka dapat menggunakan kode di doQuery() berfungsi tanpa modifikasi apa pun.
Saat Anda memiliki Koneksi objek yang terkait dengan database, Anda dapat membuat Cursor obyek. Kursor objek memungkinkan Anda untuk menjalankan execute() metode, yang pada gilirannya memungkinkan Anda untuk menjalankan pernyataan SQL mentah (dalam hal ini, SELECT kueri pada tabel bernama karyawan ).
Seperti yang Anda lihat, API database SQL portabel Python membuatnya sangat mudah untuk beralih di antara modul MySQL dalam kode Anda. Dalam contoh di atas, satu-satunya perubahan kode yang diperlukan untuk menggunakan modul yang berbeda adalah pada impor dan hubungkan pernyataan.Informasi Lebih Lanjut
- Untuk informasi lebih lanjut tentang API database SQL portabel Python, silakan kunjungi https://www.python.org/dev/peps/pep-0249.
- Untuk informasi lebih lanjut tentang mysqlclient paket, silakan kunjungi https://pypi.org/project/mysqlclient.
- Untuk informasi lebih lanjut tentang mysql-connector-python paket, silakan kunjungi https://pypi.python.org/pypi/mysql-connector-python.
- Untuk informasi lebih lanjut tentang PyMySQL paket, silakan kunjungi https://pypi.python.org/pypi/PyMySQL.