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