全部产品
Search
文档中心

Lindorm:Menggunakan mysql-connector-python untuk mengembangkan aplikasi

更新时间:Jan 27, 2026

mysql-connector-python adalah konektor Python yang disediakan oleh MySQL. Konektor ini tidak bergantung pada pustaka fungsi standar bahasa C dan lebih mudah digunakan. Topik ini menjelaskan cara menggunakan mysql-connector-python untuk terhubung ke LindormTable saat Anda mengembangkan aplikasi dengan Python.

Prasyarat

  • Python 3.8 atau versi yang lebih baru telah diinstal.

  • Fitur kompatibilitas MySQL telah diaktifkan untuk instance tersebut. Untuk informasi lebih lanjut, lihat Aktifkan fitur kompatibilitas MySQL.

  • Alamat IP klien Anda telah ditambahkan ke daftar putih instance Lindorm Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih.

Prosedur

  1. Instal versi 8.0.11 mysql-connector-python. Anda juga dapat menjalankan perintah pip install mysql-connector-python==8.0.11 untuk menginstalnya.

  2. Buat koneksi dan konfigurasikan parameter.

    connection = mysql.connector.connect(host='<Titik akhir LindormTable untuk MySQL.>', port=33060, user='<Nama pengguna>', passwd='<Kata sandi>', database='<Nama basis data>')
    cursor = connection.cursor(prepared=True)
    

    Parameter

    Parameter

    Deskripsi

    host

    Lindorm Wide Table SQL Address. Hapus tanda titik dua di akhir dan nomor port :33060. Untuk informasi selengkapnya tentang cara mendapatkan titik akhir, lihat Lihat alamat koneksi.

    Penting

    Jika aplikasi Anda diterapkan pada instance Elastic Compute Service (ECS) dan instance ECS berada dalam VPC yang sama dengan instance Lindorm, kami sarankan Anda terhubung ke instance Lindorm melalui VPC. Jika tidak, hubungkan ke instance Lindorm melalui Internet. Untuk terhubung ke instance Lindorm melalui Internet, Anda harus mengaktifkan titik akhir publik dari instance tersebut. Untuk informasi lebih lanjut, lihat Aktifkan LindormSearch.

    port

    Port protokol MySQL untuk LindormTable. Nilainya tetap 33060.

    user

    Jika Anda lupa password pengguna, Anda dapat mengubahnya di sistem manajemen kluster LindormTable. Untuk informasi selengkapnya, lihat Ubah password pengguna.

    passwd

    database

    Nama basis data yang ingin Anda sambungkan. Secara default, klien Anda terhubung ke basis data bernama default.

  3. Gunakan SQL LindormTable untuk melakukan operasi di LindormTable. Blok kode berikut memberikan contoh tentang cara menggunakan SQL LindormTable untuk membuat tabel:

    sql_create_table = ("create table if not exists test_python(c1 integer, c2 integer, c3 varchar, primary key(c1))")
    print(sql_create_table)
    cursor.execute(sql_create_table)
    

Contoh kode

Anda dapat menggunakan mysql-connector-python untuk terhubung ke LindormTable dari Python dalam dua mode:

  • Mode koneksi langsung: cocok untuk operasi tunggal atau akses yang jarang dilakukan. Koneksi dibuat dan ditutup untuk setiap operasi.

  • Mode kolam koneksi: cocok untuk akses frekuensi tinggi karena meningkatkan performa dan mengurangi overhead sumber daya melalui penggunaan ulang koneksi.

Mode koneksi langsung

Kode berikut memberikan contoh:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import json

import mysql.connector

# Buka koneksi database.
# host: Titik akhir untuk menghubungkan ke LindormTable menggunakan protokol MySQL.
# port: Port untuk menghubungkan ke LindormTable menggunakan protokol MySQL. Nilai default adalah 33060.
# user: Username untuk menghubungkan ke LindormTable.
# passwd: Password yang sesuai dengan username tersebut.
# database: Nama database di LindormTable.


connection = mysql.connector.connect(host='ld-bp1hn6yq0yb34****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com', port=33060,user='root', passwd='test',database='default')

# Buat cursor. Atur prepared=True.
cursor = connection.cursor(prepared=True)

# Buat tabel.
sql_create_table = ("create table if not exists test_python(c1 integer, c2 integer, c3 varchar, primary key(c1))")
print(sql_create_table)
cursor.execute(sql_create_table)

# Masukkan data.
sql_upsert = "upsert into test_python(c1, c2, c3) values(?, ?, ?)"
print(sql_upsert)

# Jalankan satu pernyataan insert.
cursor.execute(sql_upsert, (1, 1, '1'))
cursor.execute(sql_upsert, (2, 2, json.dumps({"key": "value2"})))

# Lakukan penulisan batch untuk memasukkan dua baris data sekaligus.
sql_upsert_batch = ("upsert into test_python(c1, c2, c3) values(?, ?, ?), (?, ?, ?)")
cursor.execute(sql_upsert_batch, (3, 3, '3' , 4, 4, json.dumps({"key": "value4"})))

# Hapus data.
sql_delete = "delete from test_python where c1 = ?"
print(sql_delete)
cursor.execute(sql_delete, (3,))

# Ubah data.
sql_update = "upsert into test_python(c1, c2, c3) values(?, ?, ?)"
print(sql_update)
cursor.execute(sql_update, (1, 2, '2'))

# Kueri data tertentu.
sql_select = "select * from test_python where c1 = ?"
print(sql_select)
cursor.execute(sql_select, (4,))
rows = cursor.fetchall()
print(rows)

# Kueri semua data dalam tabel.
sql_select_all = "select * from test_python"
print(sql_select_all)
cursor.execute(sql_select_all)
rows = cursor.fetchall()
print(rows)

# Tutup cursor.
cursor.close()

# Tutup koneksi.
connection.close()
Penting

Jika string yang ingin Anda tulis berisi karakter khusus, seperti tanda kutip ganda (") dalam string JSON, gunakan pengaturan parameter prepared=True, seperti pada contoh di atas. Hal ini mencegah penambahan karakter escape pada data yang ditulis ke Lindorm.

Mode kolam koneksi

Kode berikut memberikan contoh:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import json

import mysql.connector
from mysql.connector import pooling

# Buat kolam koneksi.
# pool_name: Nama kolam koneksi.
# pool_size: Ukuran kolam koneksi. Ini adalah jumlah maksimum koneksi dalam kolam. Sesuaikan nilai ini sesuai kebutuhan.
# host: Titik akhir untuk menghubungkan ke LindormTable menggunakan protokol MySQL.
# port: Port untuk menghubungkan ke LindormTable menggunakan protokol MySQL. Nilai default adalah 33060.
# user: Username untuk menghubungkan ke LindormTable.
# passwd: Password yang sesuai dengan username tersebut.
# database: Nama database di LindormTable.
connection_pool = pooling.MySQLConnectionPool(
    pool_name="mypool",
    pool_size=20,
    host='11.166.XX.X',
    port=33060,
    user='root',
    password='root',
    database='default',
)

# Ambil koneksi dari kolam koneksi.
connection = connection_pool.get_connection()

# Buat cursor. Atur prepared=True.
cursor = connection.cursor(prepared=True)

# Hapus tabel.
sql_drop_table = "drop table if exists test_python"
print(sql_drop_table)
cursor.execute(sql_drop_table)

# Buat tabel.
sql_create_table = ("create table test_python(c1 integer, c2 integer, c3 varchar, primary key(c1))")
print(sql_create_table)
cursor.execute(sql_create_table)

# Jalankan satu pernyataan insert.
sql_upsert = "insert into test_python(c1, c2, c3) values(?, ?, ?)"
print(sql_upsert)
cursor.execute(sql_upsert, (1, 1, '1'))
cursor.execute(sql_upsert, (2, 2, '2'))


# Lakukan penulisan batch untuk memasukkan tiga baris data sekaligus.
sql_upsert_batch = "insert into test_python(c1, c2, c3) values(?, ?, ?), (?, ?, ?), (?, ?, ?)"
cursor.execute(sql_upsert_batch, (3, 3, '3', 4, 4, '4', 5, 5, '5'))

# Hapus data.
sql_delete = "delete from test_python where c1 = ?"
print(sql_delete)
cursor.execute(sql_delete, (3,))

# Ubah data.
sql_update = "upsert into test_python(c1, c2, c3) values(?, ?, ?)"
print(sql_update)
cursor.execute(sql_update, (1, 2, '2'))

# Kueri data tertentu.
sql_select = "select * from test_python where c1 = ?"
print(sql_select)
cursor.execute(sql_select, (4,))
rows = cursor.fetchall()
print(rows)

# Kueri semua data dalam tabel.
sql_select_all = "select * from test_python"
print(sql_select_all)
cursor.execute(sql_select_all)
rows = cursor.fetchall()
print(rows)

# Tutup cursor.
cursor.close()

# Tutup koneksi. Koneksi dikembalikan ke kolam koneksi, bukan ditutup secara permanen.
connection.close()