MySQL Connector/C++ Release Notes
Previously, for client applications that use the legacy JDBC API
(that is, not X DevAPI or X DevAPI for C), if the connection to the
server was not used within the period specified by the
wait_timeout
system variable
and the server closed the connection, the client received no
notification of the reason. Typically, the client would see
Lost connection to MySQL server during
query
(CR_SERVER_LOST
) or
MySQL server has gone away
(CR_SERVER_GONE_ERROR
).
In such cases, the server now writes the reason to the
connection before closing it, and client receives a more
informative error message, The client was
disconnected by the server because of inactivity. See
wait_timeout and interactive_timeout for configuring this
behavior.
(ER_CLIENT_INTERACTION_TIMEOUT
).
The previous behavior still applies for client connections to older servers and connections to the server by older clients. (WL #14425)
For connections made using X Plugin, if client with a connection to a server remains idle (not sending to the server) for longer than the relevant X Plugin timeout setting (read, write, or wait timeout), X Plugin closes the connection. If any of these timeouts occur, the plugin returns a warning notice with the error code ER_IO_READ_ERROR to the client application.
For such connections, X Plugin now also sends a warning notice if a connection is actively closed due to a server shutdown, or by the connection being killed from another client session. In the case of a server shutdown, the warning notice is sent to all authenticated X Protocol clients with open connections, with the ER_SERVER_SHUTDOWN error code. In the case of a killed connection, the warning notice is sent to the relevant client with the ER_SESSION_WAS_KILLED error code, unless the connection was killed during SQL execution, in which case a fatal error is returned with the ER_QUERY_INTERRUPTED error code.
If connection pooling is used and a connection close notice is received in a session as a result of a server shutdown, all other idle sessions that are connected to the same endpoint are removed from the pool.
Client applications can use the warning notices to display to users, or to analyze the reason for disconnection and decide whether to attempt reconnection to the same server, or to a different server. (WL #13946)
Connector/C++ packages now include sasl2 modules due to connection
failures for accounts that use the
authentication_ldap_sasl
authentication
plugin.
(Bug #32175836)
For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for Connector/C++ has been updated to version 1.1.1k. Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html. (Bug #32719727)
References: See also: Bug #32680637.
Upon connecting to the server, Connector/C++ executed a number of
SHOW [SESSION] VARIABLES
statements to
retrieve system variable values. Such statements involve locking
in the server, so they are now avoided in favor of
SELECT @@
statements.
var_name
Additionally, Connector/C++ was trying to fetch the value of the
max_statement_time
system variable, which has
been renamed to
max_execution_time
. Connector/C++ now
uses the correct variable name, with the result that
getQueryTimeout()
and
setQueryTimeout()
now work properly for both
Statement
and Prepared
Statement
objects.
(Bug #28928712, Bug #93201)
DatabaseMetaData.getProcedures()
failed when
the metadataUseInfoSchema
connection option
was false.
(Bug #24371558)