连接器/ c++现在可以在Windows上使用MinGW编译。感谢Eric Beuque的贡献。注意,这允许在MinGW上进行构建,但并不使MinGW成为连接器/ c++的官方支持平台。(Bug #31636723, Bug #100248)
对于使用X Plugin建立的连接,Connector/ c++现在允许指定用于使用压缩的连接的压缩算法。连接uri和
SessionSettings
对象允许显式指定首选算法:URI字符串允许
压缩算法
选择。该值是一个算法名称,或者指定为数组的一个或多个以逗号分隔的算法列表。例子:mysqlx: / /用户:密码@宿主:港口/db?压缩算法= lz4 mysqlx: / /用户:密码@宿主:港口/db?压缩算法= [lz4 zstd_stream]
SessionSettings
允许一个对象SessionOption: COMPRESSION_ALGORITHMS
选择。一个或多个以逗号分隔的算法列表。例子:mysqlx:会话税(SessionOption::用户。”user_name”,SessionOption: PWD。”密码“SessionOption:: COMPRESSION_ALGORITHMS lz4”);mysqlx:会话税(SessionOption::用户。”user_name”,SessionOption: PWD。”密码”,SessionOption: COMPRESSION_ALGORITHMS”,lz4 zstd_stream”);
或者,算法值可以作为一个容器给出:
Std::list< Std::string>算法= {"lz4","zstd_stream"};mysqlx:会话税(SessionOption::用户。”user_name”,SessionOption: PWD。”密码”,SessionOption: COMPRESSION_ALGORITHMS、算法);
对于X DevAPI For C,有一个新的
MYSQLX_OPT_COMPRESSION_ALGORITHMS
选择和相应的OPT_COMPRESSION_ALGORITHMS
辅助宏。URI模式遵循X DevAPI URI模式:
Mysqlx_session_t *sess = mysqlx_get_session_from_url("mysqlx://用户:密码@宿主:港口/db?压缩算法= [lz4 zstd_stream)”& error);
选项模式遵循用于的字符串格式
SessionOption
:mysqlx_session_option_set(选择OPT_HOST(“host_name”),OPT_USER(“用户”),OPT_PWD(“密码”),OPT_COMPRESSION_ALGORITHMS(“lz4, zstd_stream”),PARAM_END));
这些规则适用:
允许的算法名称为
zstd_stream
,lz4_message
,deflate_stream
,以及他们的别名zstd
,lz4
,缩小
.名字是不区分大小写的。不知名的名字会被忽略。压缩算法选项允许多种算法,应该按优先级顺序列出。指定多个算法的选项可以混合使用完整的算法名称和别名。
如果没有指定压缩算法选项,则默认为
zstd_stream、lz4_message deflate_stream
.实际使用的算法是在服务器端也允许的压缩算法选项中列出的第一个算法。然而,压缩算法的选项取决于压缩模式:
如果压缩模式为
禁用
,压缩算法选项将被忽略。如果压缩模式为
首选
但是服务器端不允许列出任何算法,连接是未压缩的。如果压缩模式为
要求
但是服务器端不允许列出任何算法,就会发生错误。
另请参阅使用X插件进行连接压缩.
对于使用遗留JDBC API(即不是X DevAPI或X DevAPI For C)的应用程序,Connector/ c++二进制发行版现在包括提供客户端LDAP身份验证插件的库,以及插件所需的任何依赖库。这使得Connector/ c++应用程序可以使用简单的LDAP身份验证连接到MySQL服务器,或者使用SASL LDAP身份验证
SCRAM-SHA-1
身份验证方法。请注意LDAP身份验证需要使用MySQL Enterprise Edition发行版中的服务器。有关LDAP身份验证插件的更多信息,请参见LDAP可插入身份验证.
如果Connector/ c++是从压缩的焦油文件或Zip存档,应用程序将需要设置
OPT_PLUGIN_DIR
连接选项到适当的目录,以便可以找到绑定的插件库。(或者,将所需的插件库复制到客户端库所期望的默认目录。)例子:
sql: ConnectOptionsMap connection_properties;//使用简单的LDAP认证…connection_properties“用户名”=”simple_ldap_user_name”;connection_properties“密码”=”simple_ldap_password”;connection_properties [OPT_ENABLE_CLEARTEXT_PLUGIN] = true;//使用sramg - sha -1使用SASL LDAP认证…connection_properties“用户名”=”sasl_ldap_user_name”;connection_properties“密码”=”sasl_ldap_scram_password”;//如果Connector/ c++是从tar文件或Zip归档文件安装的,则需要…connection_properties [OPT_PLUGIN_DIR] = " $ {INSTALL_DIR} / lib{64} /插件”;Auto *driver = get_driver_instance();Auto *con = driver->connect(connection_properties);//执行语句…con - > close ();
对于使用遗留JDBC API(即不是X DevAPI或X DevAPI For C)的应用程序,
当地的
数据加载能力加载数据
语句以前只能在客户端通过为客户端可访问的所有文件启用它或完全禁用它来控制。新OPT_LOAD_DATA_LOCAL_DIR
选项允许限制当地的
将数据加载到指定目录中的文件中。例如,设置连接时的值:sql: ConnectOptionsMap选择;选择[OPT_HOSTNAME] =“localhost”;选择[OPT_LOAD_DATA_LOCAL_DIR] =“/ tmp”;sql::Connection *conn = driver->connect(opt);
OPT_LOAD_DATA_LOCAL_DIR
也可以设置连接后的时间:sql: ConnectOptionsMap选择;选择[OPT_HOSTNAME] =“localhost”;sql::Connection *conn = driver->connect(opt);/ /……某些查询/插入/更新std::string路径= "/tmp";康涅狄格州- > setClientOption (OPT_LOAD_DATA_LOCAL_DIR、路径);//加载本地数据dir…//通过设置为空conn->setClientOption(OPT_LOAD_DATA_LOCAL_DIR, nullptr)禁用本地INFILE;
的
OPT_LOAD_DATA_LOCAL_DIR
选项映射到MYSQL_OPT_LOAD_DATA_LOCAL_DIR
选择mysql_options ()
C API函数。有关更多信息,请参见本地加载数据的安全考虑.