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

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

遗留 (JDBC API) 注释

  • 对于使用遗留 JDBC API 建立的与服务器的连接(即,不是使用 X DevAPI 或 X DevAPI for C 建立的),默认连接字符集现在是utf8mb4 而不是utf8. 使用 X DevAPI 或 X DevAPI for C 与服务器的连接继续使用由服务器确定的连接字符集。(漏洞#28204677)

包装说明

  • 连接器/C++ 32 位 MSI 包现在可用于 Windows。这些 32 位版本支持使用旧版 JDBC 连接器。

  • Connector/C++ 压缩的tar文件包现在可用于 Solaris。

    也可以在 Solaris 上从源代码构建 Connector/C++。有关特定于平台的构建说明,请参阅 构建连接器/C++ 应用程序:特定于平台的注意事项

X DevAPI 注释

  • Connector/C++ 现在为使用 X 协议的应用程序提供连接池。此功能基于客户端对象,一种新型的 X DevAPI 对象。客户端可用于创建会话,会话从该客户端管理的池中获取连接。有关完整说明,请参阅 使用连接池连接到单个 MySQL 服务器

    X DevAPI 示例:

    using namespace mysqlx;
    
    Client cli("user:password@host_name/db_name", ClientOption::POOL_MAX_SIZE, 7);
    Session sess = cli.getSession();
    
    // use sess as before
    
    cli.close();  // close session sess

    C 示例的 X DevAPI:

    char error_buf[255];
    int  error_code;
    
    mysqlx_client_t *cli
     = mysqlx_get_client_from_url(
         "user:password@host_name/db_name", "{ \"maxSize\": 7 }", error_buf, &error_code
       );
    mysqlx_session_t *sess = mysqlx_get_session_from_client(cli);
    
    // use sess as before
    
    mysqlx_close_client(cli);  // close session sess
  • 对于 X DevAPI,connect-timeout可以在连接字符串或 URI 中指定一个新选项以指示连接超时(以毫秒为单位)。该 SessionSettings::Options对象支持一个新CONNECT_TIMEOUT选项。

    对于 C 的 X DevAPI,mysqlx_opt_type_t 常量MYSQLX_OPT_CONNECT_TIMEOUTOPT_CONNECT_TIMEOUT() 宏一起使用。

    如果未指定超时选项,则默认值为 10000(10 秒)。值为 0 将禁用超时。以下示例将连接超时设置为 10 毫秒:

    X DevAPI 示例:

    Session sess("user@host/db?connect-timoeut=10");
    
    Session sess(..., SessionOption::CONNECT_TIMEOUT, 10, ...);
    
    Session sess(
      ...,
      SessionOption::CONNECT_TIMEOUT, std::chrono::milliseconds(10),
      ...
    );

    C 示例的 X DevAPI:

    mysqlx_session_options_t *opt = mysqlx_session_options_new();
    mysqlx_session_option_set(opt, ..., OPT_CONNECT_TIMEOUT(10), ...);

添加或更改的功能

  • JSON: Connector/C++ 现在使用 RapidJSON 来提高涉及解析JSON字符串的操作的性能。X DevAPI 或 X DevAPI for C 没有用户可见的 API 更改。

修正错误

  • 在 SLES 15 上,如果 libmysqlcppcon7已安装连接器/C++,则安装失败。(缺陷号 28658120)

  • 由于不确定的全局销毁顺序,静态链接到遗留 JDBC 连接器的应用程序可能会在退出时遇到读取访问冲突。(缺陷 #28525266,缺陷 #91820)

  • 配置 -DCMAKE_BUILD_TYPE=Release在 Linux 上不起作用。(漏洞 #28045274)

  • 表达式中的字段引用.having()可能会被错误解释并产生错误。(缺陷号 26310713)