通过Python连接TaurusDB实例
通过Python连接实例的方式有无需下载SSL证书连接和用户下载SSL证书连接两种,其中使用SSL证书连接通过了加密功能,具有更高的安全性。TaurusDB新实例默认开启SSL数据加密,SSL连接实现了数据加密功能,但同时会增加网络连接响应时间和CPU消耗,请评估对业务的性能影响,根据需要进行设置,详细内容请参考设置SSL数据加密。
前提条件
用户需要具备以下技能:
- 熟悉计算机基础知识。
- 了解Python编程语言。
- 了解Python基础知识。
通过Python连接实例
使用SSL证书连接实例,即通过证书校验并连接数据库。
- 下载CA证书或捆绑包。
- 在“实例管理”页面,单击实例名称进入实例概览页面。
- 单击“SSL”开关右侧的“下载”。
- 通过Python连接TaurusDB数据库,代码中的Python链接格式如下:
conn = pymysql.connect( host=instance_ip, port=instance_port, user=username, password=password, database=database_name, ssl=ssl_config )
表1 参数说明 参数
说明
instance_ip
请替换为实例的IP地址。
- 如果通过弹性云服务器连接,“instance_ip”是实例的“读写内网地址”。您可以在该实例概览页面的“网络信息”区域查看。
- 如果通过公网连接,“instance_ip”为该实例已绑定的“弹性公网IP”,即读写公网地址。您可以在该实例概览页面的“网络信息”区域查看。
- 如果开启了数据库代理,通过数据库代理连接TaurusDB实例时,此处的IP为数据库代理地址。您可以在数据库代理页面查看代理地址。
instance_port
请替换为实例的数据库端口,默认为3306。
您可以在该实例概览页面的“网络信息”区域查看。
database_name
请替换为连接实例使用的数据库名。
ssl_config
CA证书名称,该文件需放在执行该命令的路径下。
代码示例(连接TaurusDB数据库的Python代码):
import pymysql import os // 配置数据库连接参数 instance_ip = '*.*.*.*' //替换为实例的IP地址 instance_port = 3306 database_name = 'my_db_test' // SSL 配置(使用 CA Bundle 验证服务器证书) ssl_config = { 'ssl': { 'ca': '/path/to/ca-bundle.pem', // CA 证书链文件 'check_hostname': True // 验证主机名 } } conn = None try: // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。 // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 username = os.getenv('EXAMPLE_USERNAME_ENV') password = os.getenv('EXAMPLE_PASSWORD_ENV') // 建立数据库连接 conn = pymysql.connect( host=instance_ip , port=instance_port , user=username, password=password, database=database_name , ssl=ssl_config ) print("Database connected(SSL with CA verification)") with conn.cursor() as cursor: // 执行查询 sql = "SELECT * FROM mytable WHERE columnfoo = 500" cursor.execute(sql) // 获取并打印结果 results = cursor.fetchall() for row in results: print(row) finally: // 关闭数据库连接 if conn and conn.open: conn.close() print("Database connection closed")

该方式不对服务端进行证书校验,用户无需下载SSL证书。
- 通过Python连接TaurusDB数据库实例,代码中的Python链接格式如下:
conn = pymysql.connect( host=instance_ip, port=instance_port, user=username, password=password, database=database_name, ssl=ssl_config )
表2 变量说明 变量
说明
instance_ip
请替换为实例的IP地址。
- 如果通过弹性云服务器连接,“instance_ip”是实例的“读写内网地址”。您可以在该实例概览页面的“网络信息”区域查看。
- 如果通过公网连接,“instance_ip”为该实例已绑定的“弹性公网IP”,即读写公网地址。您可以在该实例概览页面的“网络信息”区域查看。
instance_port
请替换为实例的数据库端口,默认为3306。
您可以在该实例概览页面的“网络信息”区域查看。
database_name
请替换为连接实例使用的数据库名。
代码示例(连接TaurusDB数据库的Python代码):
import pymysql import os // 配置数据库连接参数 instance_ip= '*.*.*.*' //替换为实例的IP地址 instance_port= 3306 database_name= 'my_db_test' conn = None try: // 认证用的用户名和密码直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中存放(密码应密文存放,使用时解密),确保安全。 // 本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置)EXAMPLE_USERNAME_ENV和EXAMPLE_PASSWORD_ENV。 username = os.getenv('EXAMPLE_USERNAME_ENV') password = os.getenv('EXAMPLE_PASSWORD_ENV') // 建立数据库连接 conn = pymysql.connect( host=instance_ip, port=instance_port, user=username, password=password, database=database_name, ) print("Database connected") with conn.cursor() as cursor: // 执行查询 sql = "SELECT * FROM mytable WHERE columnfoo = 500" cursor.execute(sql) // 获取并打印结果 results = cursor.fetchall() for row in results: print(row) finally: // 关闭数据库连接 if conn and conn.open: conn.close() print("Database connection closed")