-
以前,对于使用遗留 JDBC API(即不是 X DevAPI 或 X DevAPI for C)的客户端应用程序,如果在
wait_timeout
系统变量指定的时间内未使用到服务器的连接并且服务器关闭了连接,则客户没有收到原因通知。通常,客户端会 在查询期间看到与 MySQL 服务器的连接丢失 (CR_SERVER_LOST
) 或 MySQL 服务器已消失 (CR_SERVER_GONE_ERROR
)。在这种情况下,服务器现在会在关闭连接之前将原因写入连接,并且客户端会收到一条信息更丰富的错误消息,客户端因不活动而被服务器断开连接。请参阅 wait_timeout 和 interactive_timeout 以配置此行为。 (
ER_CLIENT_INTERACTION_TIMEOUT
).以前的行为仍然适用于客户端与旧服务器的连接以及旧客户端与服务器的连接。
-
对于使用 X 插件建立的连接,如果连接到服务器的客户端保持空闲(不发送到服务器)的时间超过相关的 X 插件超时设置(读取、写入或等待超时),X 插件将关闭连接。如果发生任何这些超时,插件将向客户端应用程序返回一个错误代码为ER_IO_READ_ERROR的警告通知。
对于此类连接,如果连接因服务器关闭或连接被另一个客户端会话终止而主动关闭,X Plugin 现在还会发送警告通知。在服务器关闭的情况下,警告通知将发送到所有具有打开连接的经过身份验证的 X 协议客户端,并带有ER_SERVER_SHUTDOWN错误代码。在连接终止的情况下,将向相关客户端发送带有 ER_SESSION_WAS_KILLED错误代码的警告通知,除非连接在 SQL 执行期间被终止,在这种情况下会返回带有 ER_QUERY_INTERRUPTED错误代码的致命错误。
如果使用连接池并且由于服务器关闭而在会话中收到连接关闭通知,则连接到同一端点的所有其他空闲会话将从池中删除。
客户端应用程序可以使用警告通知向用户显示,或分析断开连接的原因并决定是尝试重新连接到同一服务器还是不同的服务器。
-
对于捆绑了 OpenSSL 库的平台,Connector/C++ 的链接 OpenSSL 库已更新至版本 1.1.1k。在https://www.openssl.org/news/cl111.txt和 https://www.openssl.org/news/vulnerabilities.html中描述了新 OpenSSL 版本中修复的问题 。(缺陷号 32719727)
参考资料:另请参阅:Bug #32680637。
-
连接到服务器后,Connector/C++ 执行许多
SHOW [SESSION] VARIABLES
语句来检索系统变量值。此类语句涉及锁定服务器,因此现在避免使用它们以支持 语句。SELECT @@
var_name
此外,Connector/C++ 试图获取
max_statement_time
系统变量的值,该变量已重命名为max_execution_time
. Connector/C++ 现在使用正确的变量名称,结果是 现在对于对象getQueryTimeout()
和 对象都setQueryTimeout()
可以正常工作 。(缺陷 #28928712,缺陷 #93201)Statement
Prepared Statement
DatabaseMetaData.getProcedures()
metadataUseInfoSchema
当连接选项为 false时失败。(漏洞#24371558)