Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/Python 8.0.13 的变化(2018-10-22,全面上市)

MySQL Connector/Python 8.0.13 的变化(2018-10-22,全面上市)

添加或更改的功能

  • 添加了 Python 3.7 支持。(漏洞 #27081809,漏洞 #87818)

  • 为了使用现有 mysqlx.get_session(conn_str)方法,添加了一个新 mysqlx.get_client(conn_str, options)方法来创建一个连接池处理程序,该处理程序提供一种 get_session()方法来创建和检索池中的连接。集合池选项是:

    • enabled:启用或禁用连接池;布尔值,默认为 true。

    • max_size:池中可用的最大连接数;正整数,默认为 25。

    • max_idle_time:连接在关闭前可以在队列中空闲的最大毫秒数;整数 >= 0,默认为 0(无限)。

    • queue_timeout:请求等待连接可用的最大毫秒数;整数 >= 0,默认为 0(无限)。

      这与用于非池化的 connect_timeout 不同。在池场景中,池中已经有连接,因此 queue_timeout 控制等待池中连接的时间。

    用法示例:

    client = mysqlx.get_client(
        {
        'host': 'localhost',
        'port': 33060,
        'user': 'mike',
        'password': 'password'
        },
        { pooling: { 
            enabled: true, 
            max_idle_time: 5000, 
            max_size: 25, 
            queue_timeout: 20000 
            }
        }
    )

    关闭附加到池的会话使池中的连接可用于后续的 get+session() 调用,同时关闭(销毁)池有效地关闭所有服务器连接。

  • 添加了connection-timeout连接超时查询参数。这定义了客户端等待 MySQL 服务器在给定网络地址可用的时间长度(毫秒)。它被添加到 mysqlx.get_session()(非池会话)和 mysqlx.get_client()(池会话)接口。此选项默认为 10000(10 秒)。值 0 禁用超时,因此客户端将等待底层套接字(平台相关)超时。

    用法示例:

    mysqlx.get_session("root@localhost?connect-timeout=0");
    mysqlx.get_session("root@[localhost:33060, 127.0.0.1:33060]?connect-timeout=5000");

    在多主机场景中,该connect-timeout 值适用于每个单独的主机。

修正错误

  • 在 Windows 上,32 位 MSI 安装失败。注册表项路径已更新,以允许执行并通过 CEXT 先决条件检查。(错误#28395599,错误#28464866)

  • 如果启用了 C 扩展,后续的 collection.add() 方法调用将泄漏内存。(缺陷号 28278352)

  • 缺少 bind() 参数可能会导致错误消息不明确或意外停止。(漏洞 #28037275)

  • 在建立 X DevAPI 连接时,用户名和密码字段现在被引用以允许特殊字符。(漏洞 #27528819,漏洞 #89614)