对于使用遗留 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++ 应用程序:特定于平台的注意事项。
-
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_TIMEOUT
与OPT_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)