Version 8.0.14 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, 5.6, and 5.5. It supports the Java Database Connectivity (JDBC) 4.2 API, and implements the X DevAPI.
Important Change: For MySQL Server 8.0.14 and later, 5.7.25 and later, 5.6.43 and later, and 5.5.63 and later, minimal permissions on named pipes are granted to clients that use them to connect to the server. Connector/J, however, can only use named pipes when granted full access on them. As a workaround, the MySQL Server that Connector/J wants to connect to must be started with the system variable
named_pipe_full_access_group
; see the description for the system variable for more details. (Bug #28971500)X DevAPI:
getDefaultSchema()
now returnsnull
when no default schema has been set for theSession
. (WL #12621)Connector/J now has a new property for building from source,
com.mysql.cj.build.verbose
, which controls the verbosity of the build process' output. Its default value is false, which makes the output considerably shorter comparing with earlier versions of Connector/J. (Bug #28970166)The method
ResultSet.getBoolean()
now returnsFALSE
when the designated column is of data typeCHAR
orVARCHAR
and contains an “N” or “n”. This makes Connector/J 8.0 behaves like Connector/J 5.1 when it comes to converting strings to booleans. (Bug #28706219, Bug #92574)Connector/J is now capable of reading and, if needed, ignoring any initial notice packets sent by X Plugin before an X Protocol connection is established. (WL #12462)
-
X DevAPI: Connector/J returned a
NullPointerException
when an application tried to establish an XProtocol connection using a Windows named pipe, which is not supported. With this fix, anXProtoclException
is returned instead.This fix also makes sure that instead of a
NullPointerException
, a proper exception is thrown when an application tries to establish a Classic MySQL Protocol connection with a named pipe, but the named pipe is not specified at connection or it cannot be found on the specified path. (Bug #28606708) X DevAPI: Adding an empty document with
executeAsync()
resulted in anERROR 5013
(Missing row data for Insert
). With this fix, no error or warning is returned in the case. (Bug #23045642)Collection.count()
returned a wrong error message when the collection did not exist. (Bug #28924137)The source code of Connector/J contains non-ASCII characters, which might cause encoding issues during compilation if the system did not also use a UTF-8 locale. With this fix, the build script now handles non-ASCII characters well regardless of the system locale. (Bug #28894344)
A memory leak occurred if Connector/J was loaded via the bootstrap class path instead of the main application classpath. It was because
AbandonedConnectionCleanupThread
failed to initialize its internal thread in that case, so that references for closed connections were not cleaned up, and their number kept growing. This fix repairs the clean up process for closed connections and also makes the process thread safe. (Bug #28747636, Bug #92508)clearInputStream()
returned aNullPointerException
when themysqlSocket
,mysqlInput
, ormysqlOutput
object it tried to retrieve was null. With this fix, anIOExcpetion
is thrown instead in the situation. Thanks to Henning Schmiedehausen for contributing to the fix. (Bug #28731795, Bug #92625)Updating a result set returned by a server-side prepared statement with SELECT ... FOR UPDATE resulted in an
SQLException
. (Bug #28692243, Bug #92536)When the connection property
zeroDateTimeBehavior
was set toCONVERT_TO_NULL
, Connector/J converted a TIME type value of00:00:00
tonull
. With this fix, it returns ajava.sql.Time
instance of zero hours, minutes, and seconds, as expected. (Bug #28101003, Bug #91065)When using server-side prepared statements and working with a table with multicolumn primary key, an
updateRow()
call failed with aNullPointerException
or aSQLException
. (Bug #25650514)When using server-side prepared statements, a
refreshRow()
call after anupdateRow()
call failed with aSQLException
. (Bug #25650482)changeUser()
failed to change or reauthenticate a user when all of the following were true: (a) connection to the server was by SSL; (b) thecaching_sha2
orsha256_password
authentication plugin was used for the user; and (c) the user password contained Unicode characters. (Bug #25642226)