Todos los productos
Search
Centro de documentos

Lindorm:Uso de mysql-connector-python para desarrollar aplicaciones

Última actualización: Sep 05, 2026

mysql-connector-python es el conector oficial de MySQL escrito completamente en Python y no requiere dependencias de bibliotecas en C. Esta guía le muestra cómo conectar una aplicación en Python a LindormTable y ejecutar operaciones CRUD. Al finalizar, usted podrá:

  • Instalar y configurar el conector

  • Conectarse a LindormTable mediante el modo de conexión directa o el modo de pool de conexiones

  • Crear, insertar, actualizar, eliminar y consultar datos con la sintaxis SQL de tabla ancha de LindormTable

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Python 3.8 o una versión posterior instalada

  • La compatibilidad con MySQL habilitada para su instancia de Lindorm. Para más detalles, consulte Enable the MySQL compatibility feature

  • Su dirección IP del cliente agregada a la lista de permitidos de la instancia. Para más detalles, consulte Configure whitelists

Instale el conector

Ejecute el siguiente comando para instalar mysql-connector-python 8.0.15:

pip install mysql-connector-python==8.0.15

Conéctese a LindormTable

A continuación se describen los parámetros de conexión que se utilizan en todos los ejemplos. Reemplace los valores de marcador de posición por sus valores reales antes de ejecutar cualquier código.

Parámetro

Descripción

Ejemplo

host

La Lindorm Wide Table SQL Address, sin los dos puntos ni el número de puerto (:33060). Para obtener este valor, consulte View endpoints.

ld-bp1hn6yq0yb34****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com

port

Fijo en 33060.

33060

user

Su nombre de usuario de LindormTable. Para restablecer una contraseña olvidada, consulte Change your password.

root

passwd

Su contraseña de LindormTable.

—

database

La base de datos a la que se conectará. Si no se especifica, el valor predeterminado es default.

default

Importante

Si su aplicación se ejecuta en una instancia de Elastic Compute Service (ECS) dentro de la misma Virtual Private Cloud (VPC) que su instancia de Lindorm, conéctese mediante el endpoint de VPC. De lo contrario, utilice el endpoint público. Para habilitar el endpoint público, consulte Activate LindormSearch.

Importante

Cree siempre el cursor con prepared=True. Sin este parámetro, las cadenas que contienen caracteres especiales, como las comillas dobles ("), podrían escaparse de forma incorrecta al escribirse en LindormTable.

Elija un modo de conexión

mysql-connector-python admite dos modos de conexión:

Modo

Cuándo utilizarlo

Conexión directa

Operaciones únicas o accesos poco frecuentes. Abre y cierra una conexión nueva por cada operación.

Pool de conexiones

Accesos frecuentes. Reutiliza las conexiones para reducir la sobrecarga y mejorar el rendimiento.

Ejemplos de código

Modo de conexión directa

El siguiente ejemplo establece una conexión directa y ejecuta operaciones de creación, inserción, eliminación, actualización y consulta en una tabla de prueba.

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

import mysql.connector

# Establish a connection. Replace the placeholder values with your own.
connection = mysql.connector.connect(
    host='<Lindorm Wide Table SQL Address>',
    port=33060,
    user='<username>',
    passwd='<password>',
    database='default'
)

# Create a cursor. Use prepared=True to handle special characters correctly.
cursor = connection.cursor(prepared=True)

# Create a table.
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)

# Insert data — single rows.
sql_upsert = "upsert into test_python(c1, c2, c3) values(?, ?, ?)"
print(sql_upsert)
cursor.execute(sql_upsert, (1, 1, '1'))
cursor.execute(sql_upsert, (2, 2, json.dumps({"key": "value2"})))

# Insert data — two rows in a batch.
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"})))

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

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

# Query a specific row.
sql_select = "select * from test_python where c1 = ?"
print(sql_select)
cursor.execute(sql_select, (4,))
rows = cursor.fetchall()
print(rows)

# Query all rows.
sql_select_all = "select * from test_python"
print(sql_select_all)
cursor.execute(sql_select_all)
rows = cursor.fetchall()
print(rows)

# Close the cursor and connection.
cursor.close()
connection.close()

Modo de pool de conexiones

En este ejemplo se crea un pool de conexiones, se obtiene una conexión de él y se ejecuta el mismo conjunto de operaciones. Cuando se llama a connection.close(), la conexión regresa al pool en lugar de cerrarse de forma permanente.

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

import mysql.connector
from mysql.connector import pooling

# Create a connection pool.
# Adjust pool_size based on your expected workload concurrency.
connection_pool = pooling.MySQLConnectionPool(
    pool_name="mypool",
    pool_size=20,
    host='<Lindorm Wide Table SQL Address>',
    port=33060,
    user='<username>',
    password='<password>',
    database='default',
)

# Get a connection from the pool.
connection = connection_pool.get_connection()

# Create a cursor. Use prepared=True to handle special characters correctly.
cursor = connection.cursor(prepared=True)

# Drop the table if it exists, then recreate it.
sql_drop_table = "drop table if exists test_python"
print(sql_drop_table)
cursor.execute(sql_drop_table)

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)

# Insert data — single rows.
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'))

# Insert data — three rows in a batch.
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'))

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

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

# Query a specific row.
sql_select = "select * from test_python where c1 = ?"
print(sql_select)
cursor.execute(sql_select, (4,))
rows = cursor.fetchall()
print(rows)

# Query all rows.
sql_select_all = "select * from test_python"
print(sql_select_all)
cursor.execute(sql_select_all)
rows = cursor.fetchall()
print(rows)

# Close the cursor.
# Calling connection.close() returns the connection to the pool.
cursor.close()
connection.close()

Pasos siguientes