日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于Python的應用開發(mysql-connector-python)

mysql-connector-python是MySQL官方提供的Python連接器,不依賴C語言標準函數庫,使用更便捷。本文介紹如何在Python中通過mysql-connector-python連接Lindorm寬表引擎。

前提條件

  • 已安裝Python環境,且Python版本為3.8及以上版本。

  • 已開通MySQL協議兼容功能。如何開通,請參見開通MySQL協議兼容功能

  • 已將客戶端IP添加至白名單,具體操作請參見設置白名單

操作步驟

  1. 安裝8.0.11版本的mysql-connector-python。您也可以通過pip install mysql-connector-python==8.0.11語句直接通過pip進行安裝。

  2. 創建連接并配置連接參數。

    connection = mysql.connector.connect(host='<MySQL兼容地址>', port=33060, user='<用戶名>', passwd='<密碼>', database='<數據庫名>')
    cursor = connection.cursor(prepared=True)
    

    參數說明

    參數

    說明

    host

    Lindorm寬表引擎的MySQL兼容地址,需去掉末尾的冒號及端口號:33060。如何獲取,請參見查看連接地址

    重要

    如果應用部署在ECS,且ECS與Lindorm實例部署在同一專有網絡,建議您通過專有網絡訪問Lindorm實例,否則請使用公網訪問。通過公網連接Lindorm前需在控制臺開通公網地址,開通方式請參見開通步驟

    port

    Lindorm寬表引擎MySQL協議的端口,固定為33060

    user

    如果您忘記用戶密碼,可以通過Lindorm寬表引擎的集群管理系統修改密碼。具體操作,請參見修改用戶密碼

    passwd

    database

    需要連接的數據庫名稱。默認連接default數據庫。

  3. 通過寬表SQL語法使用Lindorm寬表引擎。以創建表為例。

    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)
    

完整示例

完整示例代碼如下:

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

import mysql.connector

# 打開數據庫連接。
# host是Lindorm寬表引擎MySQL協議的連接地址。
# port是Lindorm寬表引擎MySQL協議的端口,一般為33060。
# user是Lindorm寬表引擎的用戶賬號。
# passwd是Lindorm寬表引擎的用戶賬號對應的密碼。
# database是Lindorm寬表引擎中的數據庫名。


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

# 創建cursor,注意prepared=True
cursor = connection.cursor(prepared=True)

# 創建表
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)

# 插入數據
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"})))

# 執行多條插入語句
data = [
    (3, 3, '3'),
    (4, 4, json.dumps({"key": "value4"})),
]
cursor.executemany(sql_upsert, data)

# 刪除數據
sql_delete = "delete from test_python where c1 = ?"
print(sql_delete)
cursor.execute(sql_delete, (3,))

# 修改數據
sql_update = "upsert into test_python(c1, c2, c3) values(?, ?, ?)"
print(sql_update)
cursor.execute(sql_update, (1, 2, '2'))

# 查詢特定數據
sql_select = "select * from test_python where c1 = ?"
print(sql_select)
cursor.execute(sql_select, (4,))
rows = cursor.fetchall()
print(rows)

# 查詢表中所有數據
sql_select_all = "select * from test_python"
print(sql_select_all)
cursor.execute(sql_select_all)
rows = cursor.fetchall()
print(rows)

# 關閉 cursor
cursor.close()

# 關閉連接
connection.close()
重要

如果寫入的字符串中含有特殊字符(例如JSON字符串中的雙引號),建議您通過prepared=True的方式寫入數據(上述示例代碼所示方式),避免寫入Lindorm的數據被添加特殊的轉義字符。