Version 8.0.19 is the latest General Availability release of the 8.0 series of MySQL Connector/J. It is suitable for use with MySQL Server versions 8.0, 5.7, and 5.6. It supports the Java Database Connectivity (JDBC) 4.2 API, and implements the X DevAPI.
-
X DevAPI: The server failover support for connections using X DevAPI has been enhanced with the following features:
When the
priority
property is NOT set for each host in the connection URL, failover connections are attempted on the hosts in a random order, until a connection is successfully established (Connector/J used to attempt connections to the hosts in the sequence they appear in the connection URL).Once all hosts have been tried and no connections can be made, Connector/J throws a
com.mysql.cj.exceptions.CJCommunicationsException
and returns the messageUnable to connect to any of the target hosts
.When using connection pooling, Connector/J keeps track of any host it failed to connect to and, for a short waiting period after the failure, avoids connecting to it during the creation or retrieval of a
Session
. However, if all other hosts have already been tried, those excluded hosts will be retried without waiting. Once all hosts have been tried and no connections can be established, Connector/J throws acom.mysql.cj.exceptions.CJCommunicationsException
and returns the messageUnable to connect to any of the target hosts
.
(WL #13346)
-
X DevAPI: The allowed TLS versions and cipher suites for X DevAPI connections can now be restricted by two new connection properties:
xdevapi.tls-versions
restricts the allowable TLS protocol versions to be used for X DevAPI connections.xdevapi.tls-ciphersuites
restricts the allowable cipher suites to be used for X DevAPI connections.
See the descriptions for them in Configuration Properties and also Connecting Securely Using SSL for details. (WL #12736)
MySQL Server 8.0.17 deprecated the display width for the
TINYINT
,SMALLINT
,MEDIUMINT
,INT
, andBIGINT
data types when theZEROFILL
modifier is not used, and MySQL Server 8.0.19 has removed the display width for those data types from results ofSHOW CREATE TABLE
,SHOW CREATE FUNCTION
, and queries onINFORMATION_SCHEMA.COLUMNS
,INFORMATION_SCHEMA.ROUTINES
, andINFORMATION_SCHEMA.PARAMETERS
(except for the display width for signedTINYINT(1)
). This patch adjusts Connector/J to those recent changes of MySQL Server and, as a result,DatabaseMetaData
,ParameterMetaData
, andResultSetMetaData
now report identical results for all the above-mentioned integer types and also for theFLOAT
andDOUBLE
data types. (Bug #30477722)The cipher suites usable by Connector/J are now pre-restricted by a properties file that can be found at
src/main/resources/com/mysql/cj/TlsSettings.properties
inside thesrc
folder on the source tree or in the platform-independent distribution archive (in.tar.gz
or.zip
format) for Connector/J. See Connecting Securely Using SSL for details.-
Connector/J now supports the use of DNS SRV records for connections. Here is a brief summary for Connector/J's support for DNS SRV records:
-
These new schemas in the connection URLs enable DNS SRV support:
jdbc:mysql+srv:
For ordinary and basic failover JDBC connections that make use of DNS SRV records.jdbc:mysql+srv:loadbalance:
For load-balancing JDBC connections that make use of DNS SRV records.jdbc:mysql+srv:replication:
For replication JDBC connections that make use of DNS SRV records.mysqlx+srv:
For X DevAPI connections that make use of DNS SRV records.
Besides using the new schemas in the connection URLs, DNS SRV record support can also be enabled or disabled using the two new connection properties,
dnsSrv
andxdevapi.dns-srv
, for JDBC and X DevAPI connections respectively.
See Support for DNS SRV Records in the MySQL Connector/J Developer Guide for details. (WL #13367)
-
-
The allowable versions of TLS protocol used for connecting to the server, when no restrictions have been set using the connection properties
enabledTLSProtocols
, have been changed to:TLSv1, TLSv1.1, TLSv1.2, and TLSv1.3
for MySQL Community Servers 8.0, 5.7.28 and later, and 5.6.46 and later, and for all commercial versions of MySQL Servers.TLSv1 and TLSv1.1
for all other versions of MySQL Servers.
(WL #12736)
The RPM package for Connection/J provided by the MySQL Yum repository did not have its epoch set; as a result, the package could not be installed on an Enterprise Linux or Fedora system even if the MySQL Yum repository has been enabled, because the Connector/J package in the native repository had the epoch set to 1. This fix sets the epoch also to 1 for the RPM package provided by the MySQL Yum repository, in order to prevent the installation problem. (Bug #30566384, Bug #97700)
-
For some prepared statements, calling
getMetaData()
on them resulted in anIncorrect DATE
error, even when noDATE
values were involved. This was due to some recent changes on the MySQL Server, to which this patch adjusts Connector/J. (Bug #30151808, Bug #96442)References: See also: Bug #29025656, Bug #28940878.
When retrieving
TIME
values usingResultSet.getTimestamp()
, the fractional seconds are truncated whenuseCursorFetch=true
. This patch corrects the problem by fixing theTIME
value decoding in theMysqlBinaryValueDecoder
. It also corrects some inconsistencies in formatting the fractional seconds when returning theTIME
values as strings. (Bug #30119545, Bug #96383)Streaming of multiple result sets failed with an error. It was due to an error in switching the streamer source from one result set to another, and this fix corrects the issue. (Bug #29999318, Bug #96059)