MySQL 连接器/Python 发行说明  / MySQL 连接器/Python 2.2 中的更改  /  MySQL Connector/Python 2.2.2 的变化(2016-12-01,发展里程碑)

MySQL Connector/Python 2.2.2 的变化(2016-12-01,发展里程碑)

添加或更改的功能

  • 如果 MySQL 服务器配置为支持加密连接,Connector/Python 现在会默认尝试建立加密连接,否则回退到未加密连接。这是类似于 --ssl-mode=PREFERREDMySQL 客户端程序支持的选项的行为。

    已为 mysqlxURI 类型字符串连接架构实施以下 TLS/SSL 选项。都需要 Python 2.7.9 或更高版本。

    • ssl-enable:此选项强制执行 SSL 连接。如果给定,连接尝试必须能够建立加密连接,否则尝试失败。

    • ssl-ca:此选项用于验证服务器证书。

    • ssl-cert, ssl-key: 这些选项用于传递客户端证书和密钥,但服务器目前不使用这些来验证客户端。

    ssl-enable参数可以在参数字典或 URL 中指定,如下所示 :

    mysqlx.get_session({"user": "root", "host": "localhost", "port": 33060,
                        "password": "pass", "ssl-enable": True})

    或者:

    mysqlx.get_session("mysqlx://root:pass@localhost?ssl-enable")

    其他参数使用类似。在 URI 类型字符串中,路径名值应在括号内给出;例如, 。请参阅使用类似 URI 的字符串或键值对连接到服务器。(漏洞#24954646)ssl-cert=(path_name)

  • 现在有一个标准的 API 来创建一个表: Schema对象有一个 create_table函数。如果表存在,它会抛出错误。

  • 对于任何采用参数值列表作为参数的方法,现在可以更灵活地指定参数:作为值列表或单个参数列表。例如,这些方法调用是相同的:

    Collection.add([{"a": 27}, {"a": 28}])
    Collection.add({"a": 27}, {"a": 28})
  • 对于Schema对象, 添加了get_viewcreate_viewalter_viewdrop_view 函数以支持对View对象的检索、创建、更改和删除操作。

  • 在 Unix 和类 Unix 系统上,现在支持 Unix 域套接字文件作为连接传输。可以在参数字典或 URL 中指定套接字文件,如下所示:

    mysqlx.get_session({"user": "root", "password": "pass",
                       "socket": "/path/to/socket"})

    或者:

    mysqlx.get_session("mysqlx://user:pass@(/path/to/sock)/schema")
    mysqlx.get_session("mysqlx://user:pass@/path%2Fto%2Fsock/schema")
    mysqlx.get_session("mysqlx://user:pass@.%2Fpath%2Fto%2Fsock/schema")
    mysqlx.get_session("mysqlx://user:pass@..%2Fpath%2Fto%2Fsock/schema")

修正错误

  • 对于使用 创建的用户,通过为标准 MySQL 客户端程序指定but not 或fails 来REQUIRE SSL建立 SSL 连接 。在连接器/Python 中(不正确地)允许相同的连接配置。(漏洞 #24953032)--ssl-key--ssl-ca--ssl-cert

  • 由于不正确的 SSL CA 导致的连接失败会导致出现无意义的错误消息。(漏洞 #24948054)

  • INFORMATION_SCHEMA如果从非表中选择的视图被更改为从表中选择,则 使用架构对象更改视图失败INFORMATION_SCHEMA。(缺陷号 24947078)

  • schema.create_collection()使用空集合名称会引发不正确的错误。(漏洞 #24520850)