Todos os produtos
Search
Central de documentação

Lindorm:Desenvolva aplicações com mysql-connector-python

Última atualização: Jun 28, 2026

O mysql-connector-python é o conector oficial MySQL escrito puramente em Python, sem dependências de bibliotecas C. Este guia demonstra como conectar uma aplicação Python ao LindormTable e executar operações CRUD. Ao final, você poderá:

  • Instale e configure o conector

  • Conectar-se ao LindormTable no modo de conexão direta ou pool de conexões

  • Crie, inserir, atualize, exclua e consultar dados com a sintaxe SQL de tabela ampla do LindormTable

Pré-requisitos

Antes de começar, verifique se você tem:

Instale o conector

Execute o comando a seguir para instalar o mysql-connector-python 8.0.15:

pip install mysql-connector-python==8.0.15

Conecte-se ao LindormTable

A tabela a seguir descreve os parâmetros de conexão usados em todos os exemplos. Substitua os valores de exemplo pelos seus valores reais antes de executar qualquer código.

Parâmetro

Descrição

Exemplo

host

O Lindorm Wide Table SQL Address, sem os dois pontos e o número da porta (:33060). Para obter esse valor, consulte Visualize endpoints.

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

port

Fixo em 33060.

33060

user

Nome de usuário do LindormTable. Para redefinir uma senha esquecida, consulte Alterar sua senha.

root

passwd

Senha do LindormTable.

—

database

Banco de dados de destino da conexão. Assume o valor default se não for especificado.

default

Importante

Se a aplicação estiver em uma instância Elastic Compute Service (ECS) na mesma Virtual Private Cloud (VPC) da instância Lindorm, conecte-se pelo endpoint VPC. Caso contrário, use o endpoint público. Para ativar o endpoint público, consulte Ative o LindormSearch.

Importante

Sempre crie o cursor com prepared=True. Sem essa configuração, strings com caracteres especiais, como aspas duplas ("), podem ter escape incorreto durante a gravação no LindormTable.

Escolha um modo de conexão

O mysql-connector-python oferece suporte a dois modos de conexão:

Modo

Quando usar

Conexão direta

Ideal para operações únicas ou acessos pouco frequentes. Abre e fecha uma nova conexão para cada operação.

Pool de conexões

Recomendado para acessos frequentes. Reutiliza conexões para reduzir sobrecarga e melhorar o desempenho.

Exemplos de código

Modo de conexão direta

O exemplo a seguir estabelece uma conexão direta e executa operações de criação, inserção, exclusão, atualização e consulta em uma tabela de teste.

#!/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 conexões

Este exemplo cria um pool de conexões, obtém uma conexão dele e executa o mesmo conjunto de operações. Ao chamar connection.close(), a conexão retorna ao pool em vez de ser encerrada permanentemente.

#!/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()

Próximos passos