连接对象

class pymysql.connections.Connection(*, user=None, password='', host=None, database=None, unix_socket=None, port=0, charset='', collation=None, sql_mode=None, read_default_file=None, conv=None, use_unicode=True, client_flag=0, cursorclass=<class 'pymysql.cursors.Cursor'>, init_command=None, connect_timeout=10, read_default_group=None, autocommit=False, local_infile=False, max_allowed_packet=16777216, defer_connect=False, auth_plugin_map=None, read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False, program_name=None, server_public_key=None, ssl=None, ssl_ca=None, ssl_cert=None, ssl_disabled=None, ssl_key=None, ssl_key_password=None, ssl_verify_cert=None, ssl_verify_identity=None, compress=None, named_pipe=None, passwd=None, db=None)

表示与 MySQL 服务器的套接字连接。

获取此类实例的正确方法是调用 connect()。

建立与 MySQL 数据库的连接。接受多个参数

参数:
  • host – 数据库服务器所在的地址。

  • user – 用于登录的用户名。

  • password – 用于登录的密码。

  • database – 要使用的数据库,None 表示不使用特定数据库。

  • port – 要使用的 MySQL 端口,默认为 3306 通常可以。

  • bind_address – 当客户端具有多个网络接口时,指定要从中连接到主机的接口。参数可以是主机名或 IP 地址。

  • unix_socket – 使用 Unix 套接字而不是 TCP/IP。

  • read_timeout – 从连接读取数据的超时时间(以秒为单位)。(默认为 None - 无超时)

  • write_timeout – 向连接写入数据的超时时间(以秒为单位)。(默认为 None - 无超时)

  • charset (str) – 要使用的字符集。

  • collation (str) – 要使用的排序规则名称。

  • sql_mode – 要使用的默认 SQL_MODE。

  • read_default_file – 指定要从中读取这些参数的 my.cnf 文件(在 [client] 部分下)。

  • conv – 要使用的转换字典,而不是默认字典。这用于提供类型的自定义编组和解组。请参阅转换器。

  • use_unicode – 是否默认使用 Unicode 字符串。此选项默认为 True。

  • client_flag – 发送到 MySQL 的自定义标志。在 constants.CLIENT 中查找潜在的值。

  • cursorclass – 要使用的自定义游标类。

  • init_command – 建立连接时要运行的初始 SQL 语句。

  • connect_timeout – 连接到数据库的超时时间(以秒为单位)。(默认为 10,最小值:1,最大值:31536000)

  • ssl – 与 mysql_ssl_set() 的参数类似的参数字典或 ssl.SSLContext。

  • ssl_ca – 包含 PEM 格式 CA 证书的文件的路径。

  • ssl_cert – 包含 PEM 格式客户端证书的文件的路径。

  • ssl_disabled – 禁用 TLS 使用的布尔值。

  • ssl_key – 包含 PEM 格式客户端证书私钥的文件的路径。

  • ssl_key_password – 客户端证书私钥的密码。

  • ssl_verify_cert – 设置为 True 以检查服务器证书的有效性。

  • ssl_verify_identity – 设置为 True 以检查服务器的身份。

  • read_default_group – 要在配置文件中读取的组。

  • autocommit – 自动提交模式。None 表示使用服务器默认值。(默认为 False)

  • local_infile – 布尔值,用于启用 LOAD DATA LOCAL 命令的使用。(默认为 False)

  • max_allowed_packet – 发送到服务器的数据包的最大大小(以字节为单位)。(默认为 16MB)仅用于将“LOAD LOCAL INFILE”数据包的大小限制在默认值(16KB)以下。

  • defer_connect – 在构造时不要显式连接 - 等待 connect 调用。(默认为 False)

  • auth_plugin_map – 插件名称到处理该插件的类的字典。该类将把 Connection 对象作为构造函数的参数。该类需要一个 authenticate 方法,该方法接受身份验证数据包作为参数。对于对话框插件,可以使用 prompt(echo, prompt) 方法(如果不存在 authenticate 方法)从用户返回字符串。(实验性)

  • server_public_key – SHA256 身份验证插件公钥值。(默认为 None)

  • binary_prefix – 在 bytes 和 bytearray 上添加 _binary 前缀。(默认为 False)

  • compress – 不支持。

  • named_pipe – 不支持。

  • db – **已弃用** database 的别名。

  • passwd – **已弃用** password 的别名。

请参阅规范中的连接

begin()

开始事务。

close()

发送退出消息并关闭套接字。

请参阅规范中的Connection.close()

引发:

Error – 如果连接已关闭。

commit()

将更改提交到稳定存储。

请参阅规范中的Connection.commit()

cursor(cursor=None)

创建一个新的游标来执行查询。

参数:

cursor (Cursor, SSCursor, DictCursor, 或 SSDictCursor.) – 要创建的游标类型。None 表示使用 Cursor。

property open

如果连接已打开,则返回 True。

ping(reconnect=True)

检查服务器是否处于活动状态。

参数:

reconnect (boolean) – 如果连接已关闭,则重新连接。

引发:

Error – 如果连接已关闭且 reconnect=False。

rollback()

回滚当前事务。

请参阅规范中的Connection.rollback()

select_db(db)

设置当前数据库。

参数:

db – 数据库的名称。

set_character_set(charset, collation=None)

设置字符集(和排序规则)

发送“SET NAMES charset [COLLATE collation]”查询。根据 charset 更新 Connection.encoding。

set_charset(charset)

已弃用。请改用 set_character_set()。

show_warnings()

发送“SHOW WARNINGS” SQL 命令。