All pages
Powered by GitBook
Couldn't generate the PDF for 306 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Connector/J 3.5 Release Notes

Release Notes for MariaDB Connector/J 3.5 series

Connector/J

Release notes for MariaDB Connector/Java

Connector/J 3.3 Release Notes

Release Notes for MariaDB Connector/J 3.3 series

Connector/J 3.4 Release Notes

Release Notes for MariaDB Connector/J 3.4 series

Connector/J 3.0 Release Notes

Release Notes for the MariaDB Connector/J 3.0 series

Connector/J 3.1 Release Notes

Release Notes for the MariaDB Connector/J 3.1 series

Connector/J 2.7 Release Notes

Release Notes for the MariaDB Connector/J 2.7 series

Connector/J 2.6 Release Notes

Release Notes for the MariaDB Connector/J 2.6 series

Connector/J 3.2 Release Notes

Release Notes for MariaDB Connector/J 3.2 series

Connector/J 2.4 Release Notes

Release Notes for the MariaDB Connector/J 2.4 series

Connector/J 2.3 Release Notes

Release Notes for the MariaDB Connector/J 2.3 series

Connector/J 2.1 Release Notes

Release Notes for the MariaDB Connector/J 2.1 series

Connector/J 1.8 Release Notes

Release Notes for the MariaDB Connector/J 1.8 series

Connector/J 2.2 Release Notes

Release Notes for the MariaDB Connector/J 2.2 series

Connector/J 2.0 Release Notes

Release Notes for the MariaDB Connector/J 2.0 series

Connector/J 1.7 Release Notes

Release Notes for the MariaDB Connector/J 1.7 series

Connector/J 2.5 Release Notes

Release Notes for the MariaDB Connector/J 2.5 series

Connector/J 3.5.6 Release Notes

Download Release Notes Changelog

Release date: 11 Sep 2025

MariaDB Connector/J 3.5.6 is a Stable (GA) release.

Notable changes

  • Implemented rewriteBatchStatements functionality ()

  • Added server prepared statement fallback to client prepared statements ()

Bugs Fixed

  • Corrected cache enablement to match 2.x behavior ()

  • Added table name metadata support for MariaDB 12.1 following ()

  • Fixed support for multiple commands in the initSql configuration option ()

  • Fixed Connection#isValid(int timeout) to properly respect the timeout parameter when network connectivity is lost ()

Changelog

For a complete list of changes made in MariaDB Connector/J 3.5.6, with links to detailed information on each push, see the .

Connector/J 3.4.2 Release Notes

Download | Release Notes | Changelog |

Release date: 27 Mar 2025

MariaDB Connector/J 3.4.2 is a Stable (GA) release.

Bugs Fixed

  • : Fixed issue with incorrect statements.isClosed value after closing connection

  • : Prevented NPE (Null Pointer Exception) after reconnection failure in high availability configurations

  • : Disabled BULK operations when no parameters are present

Changelog

For a complete list of changes made in MariaDB Connector/J 3.4.2, with links to detailed information on each push, see the .

Connector/J 3.3.4 Release Notes

Download | Release Notes | Changelog |

Release date: 27 Mar 2025

MariaDB Connector/J 3.3.4 is a Stable (GA) release.

Bugs Fixed

  • : Fixed issue with incorrect statements.isClosed value after closing connection

  • : Prevented NPE (Null Pointer Exception) after reconnection failure in high availability configurations

  • : Disabled BULK operations when no parameters are present

Changelog

For a complete list of changes made in MariaDB Connector/J 3.3.4, with links to detailed information on each push, see the .

Connector/J 3.3.2 Release Notes

Download | Release Notes | Changelog |

Release date: 19 Dec 2023

MariaDB Connector/J 3.3.2 is a Stable (GA) release, and will replace 3.2 as the maintenance releases.

Bugs Fixed

  • new option returnMultiValuesGeneratedIds for connector 2.x compatibility, so getGeneratedKeys() return all ids of multi-value inserts

  • regression caussing ClassCastException on DatabaseMetaData when use with option defaultFetchSize set

  • Metadata.getPrimaryKeys table comparison using like in place of strict equality

  • ensuring batch parameter are cleared after SQL Failure

  • NullPointerException when Calling getGeneratedKeys() after an SQL Failure

  • Ensuring reseting result for getUpdateCount() after an SQL Failure

  • ensuring BULK command not used when using INSERT ON DUPLICATE KEY UPDATE in order to always have unique affected rows by default

  • wrong decoding for Resultset.getByte() results for binary varchar fields

  • ensuring never having NPE in OkPacket when setting auto commit

  • Inconsistency in Behavior of PreparedStatement After closeOnCompletion() Between MariaDB and MySQL Connectors

  • Metadata getTableTypes result was not ordered by TABLE_TYPE

Changelog

For a complete list of changes made in MariaDB Connector/J 3.3.2, with links to detailed information on each push, see the .

Connector/J 3.1.4 Release Notes

Download | Release Notes | Changelog |

Release date: 1 May 2023

MariaDB Connector/J 3.1.4 is a Stable (GA) release.

This is the last release of the 3.1 release series as the release series 3.2 is compatible and is therefore replacing 3.1 as the maintenance releases.

Bugs fixed

  • wrong Resultset.wasNull() for zero-date timestamps

  • getBlob on TEXT columns throw Exception

  • Error response during Bulk execution might result in connection wrong state

  • When some numeric data types are set to UNSIGNED, ResultSetMetaData.getColumnTypeName() does not return UNSIGNED

Changelog

For a complete list of changes made in MariaDB Connector/J 3.1.4, with links to detailed information on each push, see the .

Connector/J 3.0.10 Release Notes

Download | Release Notes | Changelog |

Release date: 11 Jan 2023

MariaDB Connector/J 3.0.10 is a Stable (GA) release.

Bugs Fixed

  • Connector/J doesn't set SSL cap bit in Handshake Response Packet

  • timezone=auto option failure on non-fixed-offset zone machine

  • Compatibility for deprecated arguments is case sensitive now

Changelog

For a complete list of changes made in MariaDB Connector/J 3.0.10, with links to detailed information on each push, see the .

Connector/J 2.7.6 Release Notes

Download Release Notes Changelog

Release date: 29 Jun 2022

MariaDB Connector/J 2.7.6 is a Stable (GA) release.

Bugs Fixed

  • avoid race condition provoking locking issue

Changelog

For a complete list of changes made in MariaDB Connector/J 2.7.6, with links to detailed information on each push, see the .

Connector/J 3.1.1 Release Notes

Download | Release Notes | Changelog |

Release date: 11 Jan 2023

MariaDB Connector/J 3.1.1 is a Stable (GA) release.

Bugs fixed

  • 3.0.10 bug fix:

    • Connector/J doesn't set SSL cap bit in Handshake Response Packet

    • timezone=auto option failure on non-fixed-offset zone machine

    • Compatibility for deprecated arguments is case sensitive now

  • org.mariadb.jdbc.client.socket.impl.PacketWriter.writeAscii() broken in 3.1.0

Changelog

For a complete list of changes made in MariaDB Connector/J 3.1.1, with links to detailed information on each push, see the .

Connector/J 2.7.10 Release Notes

Download Release Notes Changelog

Release date: 25 Aug 2023

MariaDB Connector/J 2.7.10 is a Stable (GA) release.

Bugs Fixed

  • Ensure setting connectTimeout as timeout for socket timeout until connection is done. This permit to set a connectTimeout, while socketTimeout can still be set to 0

Changelog

For a complete list of changes made in MariaDB Connector/J 2.7.10, with links to detailed information on each push, see the .

Connector/J 2.7.4 Release Notes

Download Release Notes Changelog

Release date: 11 Aug 2021

MariaDB Connector/J 2.7.4 is a Stable (GA) release.

Bugs Fixed

  • getImportedKeys/getTables regression returning an empty resultset for null/empty catalog

  • Ensure socket state when SocketTimeout occurs

  • IndexOutOfBoundsException when executing prepared queries using automatic key generation in parallel

  • MariaDbPoolDataSource leaks connections when the mariadb server restarts

  • DatabaseMetaData.getColumns regression causing TINYINT(x) with x > 1 to return BIT type in place of TINYINT

  • CallableStatement using function throw wrong error on getter

Changelog

For a complete list of changes made in MariaDB Connector/J 2.7.4, with links to detailed information on each push, see the .

Connector/J 3.3.3 Release Notes

Download | Release Notes | Changelog |

Release date: 20 Feb 2024

MariaDB Connector/J 3.3.3 is a Stable (GA) release.

Bugs Fixed

  • regression: nonparameterized batch fails

  • Error using PrepareStatement.setURL with null url

  • Improve message when reaching socket timeout during connection initial commands

Changelog

For a complete list of changes made in MariaDB Connector/J 3.3.3, with links to detailed information on each push, see the .

Connector/J 2.7.5 Release Notes

Download Release Notes Changelog

Release date: 19 Jan 2022

MariaDB Connector/J 2.7.5 is a Stable (GA) release.

Notable Change

  • The connection id has been added to important log messages for easier correlation of these log messages with MariaDB Server logs

  • The connect does not enable session_track_schema anymore when connecting to the server, as this is the server default already

Bugs Fixed

  • Error message “[1036] Unknown variable: session_track_schema” when MariaDB Connector/J connects to MariaDB Xpand

  • Connection Pools do not validate other connections before use when the socket fails

  • Options useBatchMultiSend and usePipelineAuth are disabled without reason for RDS

Changelog

For a complete list of changes made in MariaDB Connector/J 2.7.5, with links to detailed information on each push, see the .

Connector/J 1.7.5 Release Notes

Release Notes | Changelog |

Release date: 9 Dec 2020

MariaDB Connector/J 1.7.5 is a Stable (GA) release.

This version contains breaking changes that weren't expect in a corrective release. Correction have been done with 1.7.6 version, that is the 1.7.4 version + corrections.

Note: This page describes features in an unreleased version of MariaDB Connector/J.Unreleased means there are no official packages or binaries available for download which contain the features. The source code is available on GitHub.

Connector/J 3.5.4 Release Notes

Release date: 1 Jul 2025

MariaDB Connector/J 3.5.4 is a (GA) release.

Notable Changes

Connector/J 3.1.3 Release Notes

| Release Notes | |

Release date: 22 Mar 2023

MariaDB Connector/J 3.1.3 is a (GA) release.

Bugs fixed

Connector/J 3.3.0 Release Notes

| Release Notes | |

Release date: 8 Nov 2023

MariaDB Connector/J 3.3.0 is a (GA) release, and will replace 3.2 as the maintenance releases.

Notable Changes

Connector/J 3.5.7 Release Notes

Release date: 17 Dec 2025

MariaDB Connector/J 3.5.7 is a (GA) release.

Notable changes

Connector/J 3.0.6 Release Notes

| Release Notes | |

Release date: 29 Jun 2022

MariaDB Connector/J 3.0.6 is a (GA) release.

Notable Changes

Connector/J 2.7.11 Release Notes

Release date: 08 Nov 2023

MariaDB Connector/J 2.7.11 is a (GA) release.

Bugs Fixed

Connector/J 3.5.2 Release Notes

| Release Notes | |

Release date: 11 Feb 2025

MariaDB Connector/J 3.5.2 is a (GA) release.

Notable change

Connector/J 3.0.5 Release Notes

| Release Notes | |

Release date: 25 May 2022

MariaDB Connector/J 3.0.5 is a (GA) release.

Notable Changes

Connector/J 3.0.1 Release Notes

| Release Notes | |

Release date: 11 Aug 2021

MariaDB Connector/J 3.0.1 is a (Beta) release.

NOTE: MariaDB Connector/J 3.0.1 is fully compatible with the latest release of version 2.7. Further maintenance releases will not be provided for version 2.7 after MariaDB Connector/J 3.0 becomes stable (GA).

Connector/J 2.7.12 Release Notes

Release date: 20 Feb 2024

MariaDB Connector/J 2.7.12 is a (GA) release.

Bugs Fixed

Connector/J 3.1.2 Release Notes

| Release Notes | |

Release date: 24 Jan 2023

MariaDB Connector/J 3.1.2 is a (GA) release.

Notable Changes

Connector/J 2.5.4 Release Notes

| Release Notes | |

Release date: 27 Jan 2020

MariaDB Connector/J 2.5.4 is a (GA) release.

NOTE: is fully compatible with this release of version 2.5. Further maintenance releases will not be provided for version 2.5.

Connector/J 2.6.0 Release Notes

| Release Notes | |

Release date: 20 Mar 2020

MariaDB Connector/J 2.6.0 is a (GA) release.

NOTE: MariaDB Connector/J 2.6.0 is fully compatible with the latest release of version 2.5. Further maintenance releases will not be provided for version 2.5.

Connector/J 2.7.9 Release Notes

Release date: 22 Mar 2023

MariaDB Connector/J 2.7.9 is a (GA) release.

Bugs Fixed

Connector/J 3.3.1 Release Notes

| Release Notes | |

Release date: 29 Nov 2023

MariaDB Connector/J 3.3.1 is a (GA) release, and will replace 3.2 as the maintenance releases.

Bugs Fixed

Connector/J 2.5.3 Release Notes

| Release Notes | |

Release date: 8 Jan 2020

MariaDB Connector/J 2.5.3 is a (GA) release.

Notable Updates

Connector/J 2.2.3 Release Notes

| Release Notes | |

Release date: 14 Mar 2018

MariaDB Connector/J 2.2.3 is a (GA) release.

Bug Fixes

Connector/J 2.7.8 Release Notes

Release date: 24 Jan 2023

MariaDB Connector/J 2.7.8 is a (GA) release.

Bugs Fixed

Connector/J 2.6.2 Release Notes

| Release Notes | |

Release date: 23 Jul 2020

MariaDB Connector/J 2.6.2 is a (GA) release.

NOTE: is fully compatible with this release of version 2.6. Further maintenance releases will not be provided for version 2.6.

Connector/J 2.5.1 Release Notes

| Release Notes | |

Release date: 16 Oct 2019

MariaDB Connector/J 2.5.1 is a release.

NOTE: MariaDB Connector/J 2.5.1 is fully compatible with the latest release of version 2.4. Further maintenance releases will not be provided for version 2.4.

Connector/J 2.2.1 Release Notes

| Release Notes | |

Release date: 22 Dec 2017

MariaDB Connector/J 2.2.1 is a (GA) release.

  • [] provide support for authentication plugin ed25519

Connector/J 2.4.4 Release Notes

| Release Notes | |

Release date: 18 Sep 2019

MariaDB Connector/J 2.4.4 is a (GA) release.

Bugs

Connector/J 2.2.6 Release Notes

| Release Notes | |

Release date: 19 Jul 2018

MariaDB Connector/J 2.2.6 is a (GA) release.

Minor change:

Connector/J 2.2.2 Release Notes

| Release Notes | |

Release date: 20 Feb 2018

MariaDB Connector/J 2.2.2 is a (GA) release.

Bug Fixes

Connector/J 2.5.2 Release Notes

| Release Notes | |

Release date: 22 Nov 2019

MariaDB Connector/J 2.5.2 is a (GA) release.

NOTE: MariaDB Connector/J 2.5.2 is fully compatible with the latest release of version 2.4. Further maintenance releases will not be provided for version 2.4.

Connector/J 2.2.4 Release Notes

| Release Notes | |

Release date: 14 May 2018

MariaDB Connector/J 2.2.4 is a (GA) release.

Bug Fixes

Connector/J 3.0.9 Release Notes

| Release Notes | |

Release date: 8 Nov 2022

MariaDB Connector/J 3.0.9 is a (GA) release.

Notable Changes

Connector/J 1.7.6 Release Notes

| Release Notes | |

Release date: 10 Dec 2020

MariaDB Connector/J 1.7.6 is a (GA) release.

Reporting correction/contribution to java 7 supported version

Bugs Fixed

Added caching option for loadCodecs results to improve performance (CONJ-1261)

  • Added new option

Bugs Fixed

  • Fixed incorrect type definitions in DatabaseMetaData.getTypeInfo() (CONJ-1234)

  • Resolved potential race condition that could cause NullPointerException (CONJ-1247)

  • avoids redundant queries for CallableStatement.getParameterMetaData() (CONJ-1250)

  • Fixed SSL configuration issue where zero SSL settings only functioned without explicit SSL configuration ()

  • Resolved GSSAPI authentication error when server exchanges begin with 0x01 byte ()

  • Corrected DatabaseMetadata.getTypeInfo() returning incorrect values for AUTO_INCREMENT, FIXED_PREC_SCALE, and CASE_SENSITIVE fields ()

  • Fixed getString method on BIT(1) fields to properly honor transformedBitIsBoolean configuration ()

  • Enhanced metadata compatibility with MariaDB version 12.0 ()

  • Improved performance of DatabaseMetaData.getExportedKeys method ()

    • Added new option

  • Fixed issue to ensure correct catalog name is returned ()

Changelog

For a complete list of changes made in MariaDB Connector/J 3.5.4, with links to detailed information on each push, see the changelog.

Download
Release Notes
Changelog
Stable
CONJ-1054 Threadsafety issue when using CredentialPlugin in v3.x
  • CONJ-1056 JDBC connector reads incorrect data from unix socket when reading packet size > 32K

  • CONJ-1057 Wrong decoding of binary time with value "00:00:00"

  • CONJ-1058 JDBC 4.3 org.mariadb.jdbc.Statement enquote* methods implementation. thanks to @peterhalicky

  • CONJ-1060 BIT default metadata doesn't take care of transformedBitIsBoolean option

  • report 2.7.9 bug fixes :

    • CONJ-1062 correcting TlsSocketPlugin to use Driver classloader

    • CONJ-1063 DatabaseMetaData.getTypeInfo() returns wrong value for UNSIGNED_ATTRIBUTE

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 3.1.3, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    CONJ-1115 Make connector become more virtual-thread friendly
  • CONJ-1108 Database metadata listing TEMPORARY tables/sequences

  • CONJ-1113 update ed25519 to recent version

  • CONJ-1116 Avoid unnecessary synchronization on calendar when no calendar parameter

  • Bugs Fixed

    • CONJ-1102 BatchUpdateException.getUpdateCounts() returns SUCCESS_NO_INFO but expects EXECUTE_FAILED

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.3.0, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    CONJ-1282 Added TLS SNI (Server Name Indication) support

  • CONJ-1271 Added MariaDbDataTruncation exception that includes MariaDB error code and error message

  • Bugs Fixed

    • CONJ-1291 Fixed ConnectionPoolDataSource incompatibility and connection leaks due to internal ConnectionEventListener in MariaDB Connector/J 3.5.x

    • CONJ-1286 Fixed MariaDbPoolPinnedConnection thread-safety issue

    • CONJ-1283 Fixed rewriteBatchedStatements introduced in 3.5.6 bug when having parenthesis after VALUES parts

    • CONJ-1287 Fixed authentication plugin multi-exchange prefix (0x01) handling introduced in MDEV-37554

    • Fixed NullPointerException in MultiPrimaryReplicaClient

    • Fixed MariaDbClob compilation with JDK 26+

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.5.7, with links to detailed information on each push, see the changelog.

    Download
    Release Notes
    Changelog
    Stable
    CONJ-984 Permit executing initial command with new option initSql
  • CONJ-976 Improve use of pipelining when allowLocalInfile is enabled

  • Bugs Fixed

    • CONJ-985 ResultSet.getObject() returns ByteSet instead of Byte[] for BIT

    • CONJ-953 PreparedStatement.getGeneratedKeys() returns rows when no keys are generated in insert

    • CONJ-975 ArrayIndexOutOfBoundsException when attempt to getTime() from ResultSet

    • CONJ-979 ResultSet.getObject() returns Byte instead of Boolean for tinyint(1)

    • Permit setObject with java.util.Date parameter

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.6, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    CONJ-1075 Correct use of LOAD DATA INFILE that is broken on windows when using "\\" file separators

  • CONJ-1108 Database metadata listing TEMPORARY tables/sequences

  • CONJ-1118 Aurora Single Write Cluster Endpoint can't make Read DB Connection for readonly transaction

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.11, with links to detailed information on each push, see the changelog.

    Download
    Release Notes
    Changelog
    Stable
    CONJ-1229 Permit executeQuery commands to not return a result-set

    Bugs Fixed

    • CONJ-1228 The method result-set.getObject(val) for a field of type BLOB returns an object of type Blob by default instead of the expected object of type byte[].

      • The following methods are not affected

        • resultset.getBytes(val)

        • resultset.getBlob(val)

        • resultset.getObject(val, byte[].class)

        • resultset.getObject(val, Blob.class) all returns expected type)

    • System throws an SQLTimeoutException prematurely without checking all available connections

    • DatabaseMetadata.getTypeInfo() is missing the data types UUID and VECTOR

    • Incorrect behavior where XA connections are closed when regular connections are terminated - this is against JDBC specifications

    • When using the parameter trustCertificateKeyStorePassword, alias for trustStorePassword, an exception is thrown

    • The connection option disconnectOnExpiredPasswords was not handled by the connector..It controls the client behavior when connecting with an expired password.

      • When set to true (default), the client disconnects if it detects an expired password.

      • When false, the client maintains the connection and allows setting a new password.

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.5.2, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    CONJ-958 When multiple hosts are defined in the connection URL and no failover or load balancing mode is used, MariaDB Connector/J will try the hosts sequentially until a connection is successful.
  • CONJ-961 LOAD DATA LOCAL INFILE is now enabled by default on the client side, for compatibility with MariaDB Connector/J 2.7.

    • The connector validates that only the filename used in the original request will be provided, to prevent a man-in-the-middle change of the filename.

    • This might cause Batch performance regression. In case of non use of LOCAL DATA LOCAL INFILE, disable option allowLocalInfile explicitly can improve performance.

  • Bugs Fixed

    • CONJ-956 ArrayIndexOutOfBoundsException when alias length > 250

    • CONJ-947 value after milliseconds precision lost when timestamp is encoded

    • CONJ-949 keep clientCertificateKeyStoreUrl and clientCertificateKeyStoreUrl aliases

    • CONJ-950 metadata TEXT/TINYTEXT/MEDIUMTEXT/LONGTEXT wrong column type and length

    • java.time.OffsetDateTime not supported

    • compatibility with 2.7: now loop through hosts when multiple host without failover mode

    • java.time.Instant not supported

    • resultset for negative TIME value return erronous LocalDateTime values

    • better error message when not loading serverSslCert file

    • clearParameters() breaks validity when using output parameters in stored procedures

    • org.mariadb.jdbc.ClientPreparedStatement is missing a toString implementation, useful for logging

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.5, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    Notable Changes

    See mariadb-connector-j-300-release-notes.md for 3.0 release. with the following fixes :

    Bugs Fixed

    • CONJ-879 Provide JPMS module descriptor

    • CONJ-880 metadata query performance correction

    • CONJ-884 MariaDbPoolDataSource leaks connections when the mariadb server restarts

    • CONJ-885 org.mariadb.jdbc.internal.util.pool.Pool swallows SQLException during addConnection

    • getImportedKeys with null catalog restrict result to current database

    • Adding useMysqlMetadata for 2.7 compatibility

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.1, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Beta

    CONJ-1145 Wrong sequence number of sub header with compressing procotol active

  • CONJ-1151 Wrong debug trace when using compression protocol

  • CONJ-1152 Improve message when reaching socket timeout during connection initial commands

  • CONJ-1153 session tracking only read first SYSTEM_VARIABLES session tracking change

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.12, with links to detailed information on each push, see the changelog.

    Download
    Release Notes
    Changelog
    Stable
    CONJ-1042 fix DatabaseMetaData.getColumns() on old server version (< MySQL 5.6.4 and < MariaDB 5.3.0)

    Bugs fixed

    • CONJ-1040 possible ConcurrentModificationException when parsing properties when connecting

    • CONJ-1041 possible ArrayIndexOutOfBoundsException when writing a parameter to socket pre-buffer when pre-buffer is exactly 16M

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.1.2, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    Notable Updates
    • CONJ-756 - Logging correction when using enablePacketDebug option

    • CONJ-755 - permits to avoid setting session_track_schema with new option trackSchema

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.5.4, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    MariaDB Connector/J 2.6.0
    Notable Updates
    • CONJ-768 - Check Galera allowed state when connecting when option galeraAllowedState is set, and not only on validation

    • CONJ-759 - on failover, catalog changed might not be set when automatically recreating a connection.

    • CONJ-761 - remove unnecessary dependencies for fedora tar creation

    • CONJ-763 - Custom SocketFactory now can change options

    • - DatabaseMetaData.getExportedKeys should return "PRIMARY" for PK_NAME column

    • - Allow MariaDbDatabaseMetaData#getExportedKeys to return the exported keys for all tables

    • - Adding a socket timeout until complete authentication, to avoid hangs is server doesn't support pipelining

    • - permit using Aurora RO endpoint

    • - enablePacketDebug must not reset stack on failover

    • - JDBC Conversion Function support parsing correction

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.6.0, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    CONJ-1062 correcting TlsSocketPlugin to use Driver classloader

  • CONJ-1063 DatabaseMetaData.getTypeInfo() returns wrong value for UNSIGNED_ATTRIBUTE

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.9, with links to detailed information on each push, see the changelog.

    Download
    Release Notes
    Changelog
    Stable
    CONJ-1120 java 8 compatibility error in 3.3.0
  • CONJ-1123 missing OSGi javax.crypto dependency

  • CONJ-1124 ensure not having OOM when setting huge fetch size

  • CONJ-1109 Regression in clearBatch() for parameterized statements

  • CONJ-1126 setting fetchSize directly on a ResultSet object does not reflect the expected change

  • CONJ-1127 Statement.getResultSetType () failed to change the result set type

  • CONJ-1128 Setting Negative Fetch Size on ResultSet Without Throwing Error

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 3.3.1, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    CONJ-752 - Manifest file wrong entry - thanks to Christoph Läubrich
  • CONJ-750 - protocol error when not setting database with maxscale

  • CONJ-747 - JDBC Conversion Function fast-path skipped, always using longer implementation

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.5.3, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    [CONJ-583] possible hang indefinitely using master/slave configuration and failover occurs
  • [CONJ-586] erroneous transaction state when first command result as an error

  • [CONJ-587] using allowMasterDownConnection option can lead to NPE when using setReadOnly()

  • [CONJ-588] using option 'allowMasterDownConnection' won't permit to connect if all master are down

  • [CONJ-534] Connection.isValid() must be routed to Master and Slave connections to avoid any server timeout

  • Download
    Changelog
    Stable

    CONJ-1039 setQueryTimeout on CallableStatement now use server timeout when possible, permitting respecting timeout when store procedure DEFINER differ from connected user

  • CONJ-1041 possible ArrayIndexOutOfBoundsException when writing a String to socket prebuffer when pre-buffer is exactly 16M

  • CONJ-1023 set missing SSL capability in handshake after SSL exchanges

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.8, with links to detailed information on each push, see the changelog.

    Download
    Release Notes
    Changelog
    Stable
    Notable Updates
    • CONJ-804 - Automatic charset correction

    • CONJ-809 - SelectResultSet's (ResultSet) MetaData always indicates all columns to be readonly

    • CONJ-802 - Version parsing depending on Classloader might result in connection Exception

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.6.2, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    MariaDB Connector/J 2.7.0
    Notable Updates
    • CONJ-737 - Error packet caching_sha2_password not handled when not having a password

    • CONJ-738 - PAM authentication multiple exchanges permitting multiple steps in connection string

    • CONJ-735 - Multi insert regression correction returning multi generated keys

    • CONJ-736 - OSGI compliance

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.5.1, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Release Candidate (RC)
    Bug Fixes
    • [CONJ-529] on failover, the driver will pause for 250ms if no servers are available before attempting to loop reconnection

    • [CONJ-548] COM_STMT_BULK_EXECUTE not used for INSERT ... SELECT statements

    • [CONJ-549] correction on connection reset when using MariaDbPoolDataSource with options useServerPrepStmts and useResetConnection enabled

    • [CONJ-555] failover caused by client timeout must not reuse connection

    • [] removing extra ".0" to resultset.getString() value for FLOAT/DOUBLE fields

    • [] fetching state correction when reusing statement without having read all results

    • [] RejectedExecutionException was thrown when having large amount of concurrent batches

    Download
    Changelog
    Stable
    CONJ-501
    CONJ-724: Do not ignore the Calendar parameter in ResultSet#getTime(int, Calendar)
  • CONJ-725: Connection Failure when using PAM authenticated user on 10.4 MariaDB server

  • CONJ-729: master-slave regression: commit on read-only server Executed only when there is an active transaction on master connection

  • CONJ-726: removing possible NPE after failover on aurora cluster

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.4.4, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    [CONJ-623] Increase connection logging when Primary node connection fails
  • [CONJ-384] Permit knowing affected rows number, not only real changed rows

  • Bug correction:

    • [CONJ-624] MariaDbPoolDataSource possible NPE on configuration getter

    • [CONJ-622] The option "connectTimeout" must take in account DriverManager.getLoginTimeout() when set

    • [CONJ-621] wrong escaping when having curly bracket in table/field name

    • [CONJ-618] Client preparestatement parsing error on escaped ' / " in query

    Download
    Changelog
    Stable
    [CONJ-564] Never ever throw an instance of java.lang.Error
  • [CONJ-579] Keywords missing from DatabaseMetaData.getSQLKeywords()

  • [CONJ-567] UrlParser.initialUrl gets overwritten

  • [CONJ-571] Permit java 9 serialization filtering

  • [CONJ-574] forcing using toLowerCase/toUpperCase with Locale.ROOT

  • [CONJ-560] Automatic module name for java 9

  • [CONJ-578] windows testing using all mariadb server

  • [CONJ-570] Add tests for 10.3.3 INVISIBLE column

  • Download
    Changelog
    Stable
    Notable Updates
    • CONJ-745 - use pool reset only for corrected COM_RESET_CONNECTION

    • CONJ-743 - byte signed value wrong serialization for text protocol

    • CONJ-742 ensure plugin using Driver classloader

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.5.2, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable
    [CONJ-580] Some options are missing in documentation like default 'autocommit' value
  • [CONJ-597] Internal exchanges send utf8mb4 with server even if default server collation is not utf8/utf8mb4

  • [CONJ-600] Upgrading non-mandatory Waffle dependency to 1.9.0 (windows GSSAPI authentication)

  • [CONJ-575] test addition to ensure YaSSL downgrade TLSv1.2 protocol to TLSv1.1

  • Download
    Changelog
    Stable
    merge from 2.7.7 : CONJ-1016 avoid splitting BULK command into multiple commands in case of prepareStatement.setNull() use

    Bugs Fixed

    • merge from 2.7.7 : CONJ-1021 GSSAPI authentication might result in connection reset

    • merge from 2.7.7 : CONJ-1019 DatabaseMetaData.getImportedKeys should return real value for PK_NAME column

    • CONJ-1012 stored procedure register output parameter as null if set before registerOutParameter command

    • CONJ-1017 Calendar possible race condition, cause wrong timestamp setting

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.9, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    CONJ-682 : When receiving an RST during connection validation, the pool will end up throwing a connection timeout exception in place of reusing another connection.

  • CONJ-522 : When using multiple pools and a pool is closed, it closes a global executor used by all pools. This occurs even if there are still other pools open.

  • CONJ-750 : protocol error when not setting database, indicating null authentication plugin

  • CONJ-639 : enabledSslProtocolSuites does not include TLSv1.2 by default

  • Download
    Changelog
    Stable
    CONJ-1238
    CONJ-1238
    CONJ-1278
    MDEV-28933
    CONJ-1279
    CONJ-1280
    CONJ-1276
    changelog
    CONJ-1237
    CONJ-1236
    CONJ-1239
    changelog
    CONJ-1237
    CONJ-1236
    CONJ-1239
    changelog
    CONJ-1117
    CONJ-1140
    CONJ-1129
    CONJ-1130
    CONJ-1131
    CONJ-1132
    CONJ-1135
    CONJ-1136
    CONJ-1137
    CONJ-1138
    CONJ-1049
    changelog
    CONJ-1065
    CONJ-1070
    CONJ-1071
    CONJ-1067
    changelog
    CONJ-1023
    CONJ-1026
    CONJ-1032
    changelog
    CONJ-983
    changelog
    CONJ-1023
    CONJ-1026
    CONJ-1032
    CONJ-1036
    changelog
    CONJ-1091
    changelog
    CONJ-890
    CONJ-863
    CONJ-873
    CONJ-884
    CONJ-893
    CONJ-889
    changelog
    CONJ-1050
    CONJ-1150
    CONJ-1152
    changelog
    CONJ-897
    CONJ-914
    CONJ-914
    CONJ-896
    CONJ-895
    changelog

    Connector/J 3.0.0 Release Notes

    Download | Release Notes | Changelog |

    Release date: 4 May 2021

    MariaDB Connector/J 3.0.0 is a Alpha (Alpha) release.

    NOTE: MariaDB Connector/J 3.0.0 is fully compatible with the latest release of version 2.7. Further maintenance releases will not be provided for version 2.7 after MariaDB Connector/J 3.0 becomes stable (GA).

    Notable Changes

    This version is a complete rewrite of the Java driver. The goal being to have a more performant, easy to read, extendable, small driver.

    • Complete rewrite, code simplification / clarification, reduced size (15%), more than 90% coverage tested.

    • Performance Improvements:

      • Prepare and execution are now using pipelining when using option useServerPrepStmts

      • Performance enhancement with

    SSL configuration

    New Options :

    The options useSsl, trustServerCertificate, and disableSslHostnameVerification still exist, but sslMode allows for easier configuration.

    Easy logging

    If using slf4j, just enable the package "org.mariadb.jdbc" log.

    • Level ERROR will log connection errors

    • Level WARNING will log query errors

    • Level DEBUG will log queries

    If not using slf4j, console logging will be used.

    If you really want to use the JDK logger, the System property "mariadb.logging.fallback" set to JDK will indicate to use common logging.

    Failover

    The Failover implementation now permits redoing transactions : when creating a transaction, all commands will be cached, and can be replayed in case of failover.

    This functionality can be enabled using the option transactionReplay.

    This is not enabled by default, because it requires that the application avoid using non-idempotent commands.

    Example:

    Allow setup of socket TCP_KEEPIDLE, TCP_KEEPCOUNT, TCP_KEEPINTERVAL

    Equivalent options are tcpKeepIdle, tcpKeepCount, tcpKeepInterval

    Because these are available only with Java 11, setting these options with java < 11 will have no effect.

    permit authentication plugin restriction

    New Options :

    example setting restrictedAuth to "mysql_native_password,client_ed25519,auth_gssapi_client", only those plugins can be use. If server return ask for an authentication plugin not listed in restrictedAuth, driver will throw an exception.

    Extendable

    The driver is built with a Service Provider Interface (SPI), permitting easy ways to extend the driver.

    Possible extensions:

    • org.mariadb.jdbc.codec.Codec : Allows encoding/decoding types

    • org.mariadb.jdbc.plugin.authentication.AuthenticationPlugin : Allows authentication plugin additions. Defaults are "mysql_clear_password", "auth_gssapi_client", "client_ed25519", "mysql_native_password", "dialog" (PAM), and "caching_sha2_password"

    • org.mariadb.jdbc.plugin.credential.CredentialPlugin : Allows login/password retrieval. Defaults are "AwsIamCredentialPlugin" to permit retrieve a temporary IAM authentication, "EnvCredentialPlugin" to get environment authentication, and "PropertiesCredentialPlugin" to get authentication info from java property

    Bugs Fixed

    • - includeThreadDumpInDeadlockExceptions always includes the thread dump, even when it is not a deadlock exception

    • - Properties parameters that differ from string not taken in account

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.0, with links to detailed information on each push, see the .

    Connector/J 3.0.4 Release Notes

    Download | Release Notes | Changelog |

    Release date: 25 Mar 2022

    MariaDB Connector/J 3.0.4 is a Stable (GA) release.

    Bugs Fixed

    • DatabaseMetadata#getTables throws a syntax error if a NULL value is used for tableNamePattern

    • A DECIMAL overflow for long/int/short is not throwing an exception

    • A NULL value returned for a column can result in java.lang.IllegalArgumentException: Unexpected data type NULL

    • The authentication is restricted to the methods 'mysql_native_password,client_ed25519,auth_gssapi_client' instead of allowing all supported methods, if the option restrictedAuth is not set (default NULL).

    • 32 bit value returned instead of a 64 bit value for generated id / updated rows

    • When the load-balancing HA mode is used a host is not used anymore after a connection failed, even if a connection would be possible again.

    • Connection.getMetaData() returns values of type MariaDbClob instead of the expected type String

    • metadata.getColumnTypeName() returns the values with a wrong types

    • A connection fails if the password is set before the username for MariaDbDataSource

    • The login packet has non-standard length information for the attributes, which can result in issues when using wireshark.

    • When using failover the definition of retriesAllDown is ignored when trying to reconnect

    • Updates of rows is not possible for storage engines which do not provide the metadata information for primary columns

    Install and Upgrade

    • missing OSGI metadata is missing

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.4, with links to detailed information on each push, see the .

    Connector/J 2.7.1 Release Notes

    Download Release Notes Changelog

    Release date: 23 Nov 2020

    MariaDB Connector/J 2.7.1 is a Stable (GA) release.

    Notable changes

    • Byte array parameters are now sent as long data

    Bugs Fixed

    • use of BULK batch is conditioned by capability, not checking server version

    • GSS Imports set in OSGI Bundle

    • Wrong exception message when rewriteBatchedStatements is enabled

    • ResultSetMetaData::getColumnTypeName() returns incorrect type name for LONGTEXT

    Minor

    • test suite now test MariaDB Cloud with replication setting

    • have a 'replica' alias for 'slave' connection option

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.1, with links to detailed information on each push, see the .

    Connector/J 2.7.2 Release Notes

    Download Release Notes Changelog

    Release date: 29 Jan 2021

    MariaDB Connector/J 2.7.2 is a Stable (GA) release.

    Bugs Fixed

    • NPE at UpdatableResultSet#close

    • driver now doesn't close connection caused java.io.NotSerializableException as a result of incorrect data bind to a prepared statement parameter

    • MariaDbResultSetMetaData#getPrecision(int) now returns correct length for character data

    • metadata getBestRowIdentifier incompatibility with MySQL 8 correction

    • ON DUPLICATE KEY detection failed when using new line

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.2, with links to detailed information on each push, see the .

    Connector/J 3.0.8 Release Notes

    Download | Release Notes | Changelog |

    Release date: 20 Sep 2022

    MariaDB Connector/J 3.0.8 is a Stable (GA) release.

    Notable Changes

    • improve client side prepared parameter substitution

    Bugs Fixed

    • regression in 3.x when using option galeraAllowedState resulting in an IndexOutOfBoundsException

    • 2nd failover reconnection ignores default database/schema setting when not set by connection string

    • replication configuration always use 1st replica on 3.0

    • BatchUpdateException doesn't inherited the SQLState & vendorCode from the cause SQL exception

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.8, with links to detailed information on each push, see the .

    Connector/J 2.7.13 Release Notes

    Download Release Notes Changelog

    Release date: 17 Dec 2025

    MariaDB Connector/J 2.7.13 is a Stable (GA) release.

    Bugs Fixed

    • Fixed intermittent NullPointerException when calling prepareStatement

    • Fixed possible ArrayIndexOutOfBoundsException when using CallableStatement

    • Fixed Android compatibility issue: Pattern CANON_EQ flag not supported

    • Fixed NullPointerException in MariaDbDataSource when setLoginTimeout(0) has been called

    • Fixed ResultSetMetaData precision for signed BIGINT (was reported as 20)

    • report 3.x correction: metadata table name addition for 12.1

    • report 3.x correction: Handle authentication plugin multi-exchange prefix (0x01) introduced in MDEV-37554

    • report 3.x correction: MariaDbClob fails to compile with JDK 26+

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.13, with links to detailed information on each push, see the .

    Connector/J 2.7.0 Release Notes

    Download Release Notes Changelog

    Release date: 25 Sep 2020

    MariaDB Connector/J 2.7.0 is a Stable (GA) release.

    NOTE: MariaDB Connector/J 2.7.0 is fully compatible with the latest release of version 2.6. Further maintenance releases will not be provided for version 2.6.

    Notable Changes

    • normalization of resultset getDate/getTime of timestamp field.

    • DatabaseMetadata.getBestRowIdentifier and getMaxProcedureNameLength correction

    • Table with primary key with DEFAULT function can be inserted for 10.5 servers

    • MySQLPreparedStatement.setObject can now handle java.lang.Character type

    Bugs Fixed

    • maxFieldSize string truncation occurs on bytes length, not character length

    • Correcting possible Get Access Denied error if using multiple classloader

    • setConfiguration not being called on classes that extend ConfigurableSocketFactory

    • Switched position of REMARKS and PROCEDURE_TYPE in the getProcedures result

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.0, with links to detailed information on each push, see the .

    Connector/J 3.0.11 Release Notes

    Download | Release Notes | Changelog |

    Release date: 25 Aug 2023

    MariaDB Connector/J 3.0.11 is a Stable (GA) release.

    This is the last release of the 3.0 release series as the release series 3.1 is compatible and is therefore replacing 3.0 as the maintenance releases.

    Bugs Fixed

    • correcting 3.0.10 incompatibility with java 8

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.11, with links to detailed information on each push, see the .

    Connector/J 2.0.2 Release Notes

    Download | Release Notes | Changelog |

    Release date: 7 Jun 2017

    MariaDB Connector/J 2.0.2 is a Stable (GA) release.

    Bug

    • - DataSource connectTimeout is in second, but was set on socket timeout that is in milliseconds

    • - option "useServerPrepStmts" : Possible Buffer overrun reading ResultSet

    • - option "rewriteBatchedStatements" : Error when executing SQL contains "values" that aren't inserts

    • - option "usePipelineAuth" : incompatibility with aurora. Now automatically disabled when aurora is detected

    • - compatibility : ArrayIndexOutOfBoundsException on connect to MySQL 5.1.73

    • - compatibility : Access denied error on connect to MySQL 5.1.73

    • - metadata : DatabaseMetadata.getPrimaryKeys() return a null value for PK_NAME, must always be 'PRIMARY'

    • - metadata : Wrong content of DEFERRABILITY column in MariaDbDatabaseMetaData

    • - No timeout exception on client PrepareStatement

    • - log: javax.transaction.xa.XAException message error truncated ( near '0x )

    Task

    • - Change CI tests to use maxscale 2.1 version

    • - Connection.setNetworkTimeout don't throw exception if no executor

    • - Use java.net.URL to read keyStore and trustStore again

    Connector/J 3.0.7 Release Notes

    Download | Release Notes | Changelog |

    Release date: 4 Aug 2022

    MariaDB Connector/J 3.0.7 is a Stable (GA) release.

    Bugs Fixed

    • SQLDataException reading DATA_TYPE on DatabaseMetaData.getTypeInfo() after 3.0.4

    • Permit specific Statement.setLocalInfileInputStream for compatibility

    • Version 3.0.0 returns String for VARBINARY instead of byte[] as 2.7.6 did

    • Binary column read as String

    • Setting timezone=UTC result in SQLSyntaxErrorException

    • Regression: binary(16) is returned as String by getObject()

    • Version 3.x rejects previously accepted boolean string parameter for BOOLEAN field

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.7, with links to detailed information on each push, see the .

    Connector/J 2.0.3 Release Notes

    Download | Release Notes | Changelog |

    Release date: 27 Jun 2017

    MariaDB Connector/J 2.0.3 is a Stable (GA) release.

    Bug

    • - when useServerPrepStmts is not set, the PREPARE statement must not be cached.

    • - Handle PrepareStatement.getParameterMetaData() if query cannot be PREPAREd

    • - escape string correction for big query

    Connector/J 2.4.1 Release Notes

    Download | Release Notes | Changelog |

    Release date: 18 Mar 2019

    MariaDB Connector/J 2.4.1 is a Stable (GA) release.

    Evolutions

    • [misc] enabled running of 'SHOW ENGINE INNODB STATUS' for error code 1213 (@mtykhenko)

    • [misc] reduce mutex using select @@innodb_read_only for aurora (@matsuzayaws)

    Bugs

    • [misc] updating checkstyle version dependency

    • [misc] permit using SSL on localsocket

    • [misc] java PID using java 9 ProcessHandle if existing, relying on JNA if present

    • : addition of option "useMysqlMetadata" to permit MySQL meta compatibility

    Connector/J 2.7.7 Release Notes

    Download Release Notes Changelog

    Release date: 8 Nov 2022

    MariaDB Connector/J 2.7.7 is a Stable (GA) release.

    Bugs Fixed

    • GSSAPI authentication might result in connection reset

    • DatabaseMetaData.getImportedKeys should return real value for PK_NAME column

    • avoid splitting BULK command into multiple commands in case of prepareStatement.setNull() use

    • correcting possible NPE when using statement.cancel() that coincide with statement.close() in another thread

    • Socket file descriptors are leaked after connecting with unix socket if DB is not up running

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.7, with links to detailed information on each push, see the .

    Connector/J 1.7.3 Release Notes

    Download | Release Notes | Changelog |

    Release date: 14 Mar 2018

    MariaDB Connector/J 1.7.3 is a Stable (GA) release.

    Bug Fixes

    • [] possible hang indefinitely using master/slave configuration and failover occur

    • [] erroneous transaction state when first command result as error

    • [] using allowMasterDownConnection option can lead to NPE when using setReadOnly()

    • [] using option 'allowMasterDownConnection' won't permit to connect if master is down

    • [] Connection.isValid() must be routed to Master and Slave connections to avoid any server timeout

    Connector/J 2.1.1 Release Notes

    Download | Release Notes | Changelog |

    Release date: 6 Sep 2017

    MariaDB Connector/J 2.1.1 is a Stable (GA) release.

    Bug

    • [] Updatable result-set possible NPE when same field is repeated.

    • [] ResultSet method wasNull() always return true after a call on a "null-date" field binary protocol handling

    • [] Permit using updatable result-set when fetching

    • [] Add legacy SSL certificate Hostname verification with CN even when SAN are set

    • [] Improve MariaDB driver stability in case JNA errors

    Misc

    • correct typo in error message when setting wrong parameter

    • add trace to HostnameVerifier implementation

    • handling connection error when no database is provided

    Connector/J 2.2.5 Release Notes

    Download | Release Notes | Changelog |

    Release date: 30 May 2018

    MariaDB Connector/J 2.2.5 is a Stable (GA) release.

    Minor change:

    • [] Add server hostname to connection packet for proxy

    • [] handle support for mysql 8.0 tx_isolation replacement by transaction_isolation

    • [] Create option to configure DONOR/DESYNCED Galera nodes to be unavailable for load-balancing : Usually, Connection.isValid just send an empty packet to the server, and server sends a small response to ensure connectivity. When a new option "useBulkStmts" option is set, the connector will ensure galera server state ("wsrep_local_state" correspond to allowed values (4 = sync mode). see to now more.

    Bug correction:

    • [] Connection using "replication" Parameters fail when no slave is available

    • [] Newlines where breaking calling stored procedures

    • [] Using getDate with function DATE_ADD() with parameter using string format where return wrong result using the binary protocol

    • [] Option "allowMasterDownConnection" improvement on connection validation and Exceptions on master down

    Connector/J 2.1.2 Release Notes

    Download | Release Notes | Changelog |

    Release date: 26 Sep 2017

    MariaDB Connector/J 2.1.2 is a Stable (GA) release.

    Bug

    • [] Batch result-set return array correction when DELETE statement when bulk option is used

    • [] better error message getting metadata information when SQL syntax is wrong

    • [] Resultset.last() return wrong value if resultset has only one result

    • [] Error executing LOAD DATA LOCAL INFILE when file is larger than max_allowed_packet

    Misc

    • ensuring Connection.isValid(timeout) always respect timeout value

    Connector/J 3.5.1 Release Notes

    | Release Notes | |

    Release date: 20 Nov 2024

    MariaDB Connector/J 3.5.1 is a (GA) release.

    The MariaDB Connector/J 3.5 release series is replacing the maintenance releases for the 3.4 release series, as the new release series is fully compatible with 3.4.

    Notable changes

    Connector/J 3.5.0 Release Notes

    | Release Notes | |

    Release date: 24 Oct 2024

    MariaDB Connector/J 3.5.0 is a (GA) release.

    The MariaDB Connector/J 3.5 release series is replacing the maintenance releases for the 3.4 release series, as the new release series is fully compatible with 3.4.

    Notable changes

    Connector/J 2.6.1 Release Notes

    | Release Notes | |

    Release date: 23 Jun 2020

    MariaDB Connector/J 2.6.1 is a (GA) release.

    Notable Updates

    Connector/J 3.1.0 Release Notes

    | Release Notes | |

    Release date: 15 Nov 2022

    MariaDB Connector/J 3.1.0 is a (GA) release.

    Performance

    Other than features, connector permit significant performance improvements, reaching the same level of performance than c connector

    Most significant change are :

    Connector/J 2.2.0 Release Notes

    | Release Notes | |

    Release date: 9 Nov 2017

    MariaDB Connector/J 2.2.0 is a (GA) release.

    Features

    Connector/J 2.7.3 Release Notes

    Release date: 12 May 2021

    MariaDB Connector/J 2.7.3 is a (GA) release.

    Notable Change

    Connector/J 1.7.4 Release Notes

    | Release Notes | |

    Release date: 30 May 2018

    MariaDB Connector/J 1.7.4 is a (GA) release.

    Minor change:

    Connector/J 2.4.2 Release Notes

    | Release Notes | |

    Release date: 17 Jun 2019

    MariaDB Connector/J 2.4.2 is a (GA) release.

    Notes

    Connector/J 1.7.2 Release Notes

    | Release Notes | |

    Release date: 20 Feb 2018

    MariaDB Connector/J 1.7.2 is a (GA) release.

    Bug Fixes

    Connector/J 2.4.3 Release Notes

    | Release Notes | |

    Release date: 5 Aug 2019

    MariaDB Connector/J 2.4.3 is a (GA) release.

    Notes

    New option blankTableNameMeta permit to have Resultset metadata getTableName methods always return blank in place of returning real table name as JDBC indicate. This is for ease migration from Oracle since Oracle driver always returns an empty string.

    server when using option
    useServerPrepStmts
    , skipping metadata (see
    )
    Level TRACE will log all exchanges with server

    org.mariadb.jdbc.plugin.tls.TlsSocketPlugin : Allows extended TLS implementation

    MariaDB 10.6
    CONJ-864
    CONJ-858
    changelog

    For an overview of MariaDB Connector/J see the page

    MDEV-19237

    The most recent release of is:

    Do not use non-stable (non-GA) releases in production!

    CONJ-837 prepared statement cache leak on ResultSet CONCUR_UPDATABLE concurrency

  • CONJ-843 ParameterMetaData::getParameterType for CallableStatement parameter return expected "BINARY" value for BINARY type

  • CONJ-842
    CONJ-834
    CONJ-835
    CONJ-839
    CONJ-841
    CONJ-845
    CONJ-838
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-1006 disabling cachePrepStmts with useServerPrepStmts might result in Exception

  • CONJ-1007 Socket file descriptors are leaked after connecting with unix socket if DB is not up running

  • CONJ-999 setting createDatabaseIfNotExist option use on read-only server will refuse connection on 3.0

  • CONJ-1010
    CONJ-997
    CONJ-1002
    CONJ-1003
    CONJ-996
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-828 new option ensureSocketState to ensure protocol state

  • CONJ-829 Option to cache callablestatement is now disabled by default

  • CONJ-814 Small possible improvement of getCrossReference, getExportedKeys and getImportedKey

  • CONJ-825 XAResource.isSameRM implementation

  • CONJ-830 connector now throw a better error if SSL is mandatory and server doesn't support SSL

    CONJ-810
    CONJ-812
    CONJ-816
    CONJ-820
    CONJ-805
    CONJ-807
    CONJ-813
    CONJ-817
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-682: internal pool correction: when receiving an RST during connection validation, the pool will end up throwing connection timeout exception in place of reusing another connection.

    CONJ-687

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    PARSEC Authentication - CONJ-1193

    Support of the PARSEC Authentication Plugin which is provided starting with MariaDB Server 11.6. See documentation for more details.

    This requires java 15+ (to use java native ed25519 Algorithm implementation). For previous versions of java, this will require adding BouncyCastle as dependency.

    While initially documented in 3.5.0, this feature was not in the released version.

    New High Availability Mode With Loadbalancing For Reads - CONJ-1207

    When running a multi-master cluster (i.e. MariaDB Cluster with Galera), writing to more than one node can lead to optimistic locking errors ("deadlocks") in some use cases. Writing concurrently to multiple nodes also doesn't result in performance improvements, due to having to synchronously replicate to all nodes. The new high availability mode “Load-balance-read” permits the use of masters in a failover manner (try first master, the next one if the first master fails) while distributing the load on replicas.

    Example of connection string:

    Equivalent of:

    In the example the hosts 127.0.0.5, 127.0.0.6 will be used for writes, in a failover manner. 127.0.0.6,127.0.0.7 are of type replica, read load balancing will be used.

    Permit bulk for INSERT ON DUPLICATE KEY UPDATE commands for 11.5.1+ servers - CONJ-1208

    Since MDEV-30366, the server can return appropriate detailed answers. This was implemented, but not for specific INSERT ON DUPLICATE KEY UPDATE commands.

    Bugs Fixed

    • CONJ-1053 waffle-jna dependency is not declared optional in the module description

    • CONJ-1196 setObject on java.util.Date is en/decode as java.sql.Date and truncates hour/minutes/seconds/ms while it must be en/decode like a java.sql.Timestamp

    • CONJ-1211 JDBC 4.3 enquoteIdentifier missing validation

      • An identifier containing only number must be quoted, even if alwaysQuote parameter is set to false

      • Length validation must be done (< 64 characters).

    • SQL commands ending with semicolon and trailing space are not using bulk

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.5.1, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    PARSEC Authentication - CONJ-1193

    Support of the PARSEC Authentication Plugin which is provided starting with MariaDB Server 11.6. See for more details.

    This requires java 15+ (to use java native ed25519 Algorithm implementation). For previous versions of java, this will require adding BouncyCastle as dependency.

    New options truststore, trustStorePassword and trustStoreType - CONJ-1183

    Those options permit the use of a specific truststore that differs from the Java default truststore. This has been added for MariaDB 2.x and MySQL connector compatibility. See

    New option connectionCollation - CONJ-1199

    The Connector is using the utf8mb4 charset per default when establishing a connection. ‘connectionCollation’ can be used to define which utf8mb4 collation should be used. If not set the server default collation for utf8mb4 will be used.

    Starting with MariaDB 11.4 we recommend to instead set

    Support for methods setObject/getObject and setArray/getArray - CONJ-1205

    This addition is a preparation for the Vector support of MariaDB Server

    Example of Array:

    Resultset:

    Bugs Fixed

    • CONJ-1202 A change of the collation via a session variable might be ignored

    • CONJ-1201 Incorrect default behavior for forceConnectionTimeZoneToSession

      • NOTE: If client and server use different time zones and no timezone options where used, MariaDB Connector/J 3.4 introduces a change which is forcing client timezone to the session. This behavior is an not intended incompatibility change compared to MariaDB Connector/J 3.3, which is corrected in MariaDB Connector/J 3.5 with this change

    • Batch import fails with exception "Unknown command"

    • Throw exception type SQLTimeoutException instead of SQLNonTransientConnectionException for connection timeouts

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.5.0, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-781 - DatabaseMetaData.supportsMultipleResultSets() now return correctly true.
  • CONJ-791 - Using CallableStatement.getTimestamp() can't get data correctly

  • CONJ-705 - ParameterMetadata now return parameterCount() even if no information

  • CONJ-775 - avoid a NPE for malformed "jdbc:mariadb:/" connection string.

  • CONJ-776 - Temporal Data Tables are not listed in metadata

  • CONJ-785 - corrected escape sequence for multiple backslash escape

  • CONJ-786 - Connection.setReadOnly(true ) with option assureReadOnly now force read only connection even for mono server*

  • CONJ-795 - permit resultset.getRow() for TYPE_FORWARD_ONLY when streaming

  • CONJ-797 - Connector set UTF8mb4 equivalent in case of server configured with UTF8mb3 collation

  • CONJ-800 - implement Statement setEscapeProcessing to avoid escape

  • CONJ-801 - possible race condition using resultset getter using label

  • CONJ-778 - Missing import org.osgi.service.jdbc in Import-Package clause of the OSGi manifest

  • CONJ-779 - Logic error in stop() method of OSGi bundle activator

  • CONJ-780 - Logic error in implementation of OSGi DataSourceFactory (MariaDbDataSourceFactory)

  • CONJ-788 - resultset metadata always indicate that column is writable even if not

  • CONJ-789 - ensure connection reference removal on (prepared) Statement close

  • CONJ-782 - MariaDB Cloud testing

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.6.1, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

  • CONJ-1009 improve performance reading big result-set

  • CONJ-1014 avoid creating array when receiving server packet

  • CONJ-1015 pipelining sent (PREPARE+EXECUTE) are now sent into a single buffer, permitting in some case to have only one TCP-IP packet for 2 mysql packet.

  • Benchmark using JMH one a single 4 core ubuntu 22.04 server (AWS c5.xlarge) shows :

    simple resultset command : "Select 1"

    select1

    Client side prepared statement parsing : "DO 1000 parameters"

    do1000params

    resultset with lots of columns : ""select 1 row from a 100 int columns"

    select100intcols

    UUID Object support

    Since MariaDB server 10.7, a new UUID data format is supported. getter and setter can now pass java.util.UUID parameter (i.e. PrepareStatement setObject(index, ) / Resultset getObject(index, UUID.class) )

    Resultset.getObject without class or type precision will now return UUID object for UUID fields by default

    UUID metadata

    Metadata for UUID fields will now return ResultSetMetaData.getColumnTypeName(index) => "uuid" ResultSetMetaData.getColumnClassName(index) => "java.util.UUID" ResultSetMetaData.getColumnType(index) => Types.OTHER

    replacing :

    ResultSetMetaData.getColumnTypeName(index) => "CHAR" ResultSetMetaData.getColumnClassName(index) => "java.lang.String" ResultSetMetaData.getColumnType(index) => Types.CHAR

    For compatibility, a new option uuidAsString permit to consider UUID as String like previously.

    Other changes

    • CONJ-992 load balance hosts are now chosen using ROUND ROBIN in place of RANDOM

    • CONJ-1008 default value for socket option useReadAheadInput change to false.

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.1.0, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    [CONJ-522] Pool datasource implementation : MariaDB has now 2 different Datasources implementation. More information on .
  • [CONJ-530] Permit Connection.abort() forcing killing the connection even if connection is stuck in another thread (like reading big resultset)

  • [CONJ-531] permit cancelling streaming result-set using Statement.cancel.

  • [CONJ-495] Improve reading result-set data

  • [CONJ-510] Permit connection creation to allow execution of read-only statements on slaves when master is down

  • Bug Fixes

    • [CONJ-532] correction Statement.getMoreResults() for multi-queries

    • [CONJ-533] PrepareStatement.setTime() may insert incorrect time according to current timezone, time and option "useLegacyDatetimeCode"

    • [CONJ-535] correction on numerical getter for big BIT data type fields

    • [CONJ-541] Fix behavior of ResultSet#relative when crossing result set boundaries

    Misc

    • [CONJ-469] Improve Blob/Clob implementation (avoiding array copy from result-set row)

    • [CONJ-539] better message when server close connection

    • [misc] resultset.findColumn method use column name if alias not found

    • [misc] default option "connectTimeout" value to 30 seconds (was 0 = no timeout)

    • [misc] ensure that enablePacketDebug option works when timer tick is big

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-883 using unix socket, hostname is not mandatory anymore

    Bugs Fixed

    • CONJ-619 Multiple batch update fails after LOAD DATA LOCAL INFILE

    • CONJ-854 LOAD XML INFILE breaks when using LOCAL

    • CONJ-855 throwing more specific exception for updatable result-set that can not be updated by ResultSet

    • CONJ-857 Avoid using mysql.proc table

    • includeThreadDumpInDeadlockExceptions always includes the thread dump, even when it is not a deadlock exception

    • long binary parsing improvement

    • OSGi: Missing Import-Package in Connector/J bundle (javax.sql.rowset.serial)

    • option serverSslCert file location

    • metadata query performance correction

    • Properties.put with object that differ from String supported even if use is not recommended

    • executeBatch must not clear last parameter value.

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.7.3, with links to detailed information on each push, see the changelog.

    Download
    Release Notes
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    [CONJ-602] Add server hostname to connection packet for proxy
  • [CONJ-604] handle support for mysql 8.0 tx_isolation replacement by transaction_isolation

  • [CONJ-595] Create option to configure DONOR/DESYNCED Galera nodes to be unavailable for load-balancing: Usually, Connection.isValid just send an empty packet to the server, and the server sends a small response to ensure connectivity. When a new option "useBulkStmts" option is set, the connector will ensure Galera server state ("wsrep_local_state" correspond to allowed values (4 = sync mode). see galera state to now more.

  • Bug correction:

    • [CONJ-613] Connection using "replication" Parameters fail when no slave is available

    • [CONJ-605] Newlines where breaking calling stored procedures

    • [CONJ-609] Using getDate with function DATE_ADD() with parameter using string format where return wrong result using the binary protocol

    • [CONJ-610] Option "allowMasterDownConnection" improvement on connection validation and Exceptions on master down

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    Evolutions

    New option defaultFetchSize to set default fetch size. When set, all statements will be initialized with the indicated fetch size.

    Bugs

    • CONJ-703: ClassNotFoundException when trying to connect using two-authentication in an OSGI environment.

    • CONJ-711: Xid format id is unsigned integer, currently sending as signed value.

    • CONJ-700: autoReconnect=true on Basic Failover doesn't reconnect

    • CONJ-707: failover might throw an unexpected exception with using "failover"/"sequential" configuration on socket error

    • : includeThreadDumpInDeadlockExceptions is thrown only if option includeInnodbStatusInDeadlockExceptions is set

    • : Throw complete stackTrace when having an exception on XA Commands

    • : Error on connection on galera server when in detached mode.

    • : typo in error message in SelectResultSet.java

    • : parse Query when receiving LOAD LOCAL INFILE

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.4.2, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    [CONJ-564] Never ever throw an instance of java.lang.Error
  • [CONJ-579] Keywords missing from DatabaseMetaData.getSQLKeywords()

  • [CONJ-567] UrlParser.initialUrl gets overwritten

  • [CONJ-571] Permit java 9 serialization filtering

  • [CONJ-574] forcing using toLowerCase/toUpperCase with Locale.ROOT

  • [CONJ-560] Automatic module name for java 9

  • [CONJ-578] windows testing using all mariadb server

  • [CONJ-570] Add tests for 10.3.3 INVISIBLE column

  • Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

  • CONJ-717: conversion function support for other data types than default MariaDB conversion type

  • CONJ-722: Permit suppression of result-set metadata getTableName for oracle compatibility

  • CONJ-719: Saving values using Java 8 LocalTime does not store fractional parts of seconds

  • CONJ-716: Correcting possible NPE on non-thread safe NumberFormat (logging)

  • Changelog

    For a complete list of changes made in MariaDB Connector/J 2.4.3, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-1251
    CONJ-1252
    CONJ-1254
    CONJ-1255
    CONJ-1259
    CONJ-1260
    CONJ-1256

    For an overview of MariaDB Connector/J see the page

    CONJ-1290
    CONJ-1295

    For an overview of MariaDB Connector/J see the page

    CONJ-980

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-1225
    CONJ-1221
    CONJ-1218
    CONJ-1217
    CONJ-660

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-954
    CONJ-958
    CONJ-959
    CONJ-962
    CONJ-965
    CONJ-967
    CONJ-969

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-891
    CONJ-894

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    Do not use non-stable (non-GA) releases in production!

    CONJ-764
    CONJ-765
    CONJ-766
    CONJ-767
    CONJ-771
    CONJ-772

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-558
    CONJ-550
    CONJ-553

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-921
    CONJ-922
    CONJ-924
    CONJ-926
    CONJ-923
    CONJ-933
    CONJ-935
    CONJ-937
    CONJ-934
    CONJ-932
    CONJ-945
    CONJ-940
    CONJ-925
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-847
    CONJ-849
    CONJ-850
    CONJ-851
    CONJ-852
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-661
    CONJ-1167
    CONJ-1185
    CONJ-1293
    CONJ-1174
    CONJ-1279
    CONJ-1287
    CONJ-1298
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-1089
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-490
    CONJ-481
    CONJ-470
    CONJ-477
    CONJ-479
    CONJ-480
    CONJ-471
    CONJ-483
    CONJ-487
    CONJ-489
    CONJ-478
    CONJ-482
    CONJ-488

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-993
    CONJ-986
    CONJ-987
    CONJ-989
    CONJ-990
    CONJ-991
    CONJ-994
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-473
    CONJ-494
    CONJ-497

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-1021
    CONJ-1019
    CONJ-1016
    CONJ-1011
    CONJ-1007
    changelog

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-583
    CONJ-586
    CONJ-587
    CONJ-588
    CONJ-534

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-519
    CONJ-514
    CONJ-516
    CONJ-511
    CONJ-515

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-602
    CONJ-604
    CONJ-595
    galera state
    CONJ-613
    CONJ-605
    CONJ-609
    CONJ-610

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    CONJ-525
    CONJ-526
    CONJ-527
    CONJ-528

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    Connector/J 3.2.0 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog |

    Release date: 25 Aug 2023

    MariaDB Connector/J 3.2.0 is a Stable (GA) release. It is replacing 3.1 as the maintenance releases.

    This is the last release of the 3.2 release series as the release series 3.3 is compatible and is therefore replacing 3.2 as the maintenance releases.

    For an overview of MariaDB Connector/J see the page

    Notable Changes

    Batch Bulk behavior

    Bulk batching enabled by default (option useBulkStmts) with permit super fast batching, but batch return array of update counts with Statement.SUCCESS_NO_INFO values. The problem is that application using optimistic locking fails, expecting exact return value.

    useBulkStmts is now defaulting to false, with the addition of a new option useBulkStmtsForInserts, enabled by default permit to enable bulk for insert command only. This permit to have return values in batching return value, for all cases, permitting optimistic behavior.

    This default values are more appropriate for all kind of application. If application doesn't use optimistic locking, enabling useBulkStmts is then more appropriate, because UPDATE and DELETE commands in batch will then use faster BULK implementation.

    Maxscale improvement

    When using maxscale 23.08.0+, when a maxscale node fails, connector will now priorize reconnection to the maxscales nodes having less connections, to ensure connections repartition after failover. This allows a faster return to normal

    other features

    • Implement databaseTerm option for mysql compatibility

    • adding option useLocalSessionState to permit avoiding queries when application only use JDBC methods.

    Bugs Fixed

    • LOAD DATA INFILE is broken on windows

    • getGeneratedKeys after batch will not return all generated id's if first batch command return no generated id.

    • maridb Java connector sslMode=verify-ca complaining unable to find trust certificate.

    • Multiple session system variables parsing fails

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.2.0, with links to detailed information on each push, see the .

    Connector/J 3.4.0 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog |

    Release date: 17 May 2024

    MariaDB Connector/J 3.4.0 is a Stable (GA) release, and replaces 3.3 as the maintenance releases.

    For an overview of MariaDB Connector/J see the page

    Notable Changes

    ZERO-CONFIGURATION SSL ENCRYPTION

    Using SSL (a more correct term would be TLS, but in reality SSL is more commonly used) has been simplified with . Before version 11.4, proper SSL configuration required multiple manual steps for the server and all the clients connecting to it.

    For MariaDB Connector/J before 3.4 to establish an SSL encrypted connection, or a MariaDB Server release series previous to 11.4, three options can be used:

    • Have server certificates generated with trusted Certificate Authorities (CA), using a configuration like: sslMode=verify-full

    • Configure the connector using a server certificate, like: sslMode=verify-full&serverSslCert=file:///server-cert.pem

    • Disable the verification of the SSL certificate, which is insecure and not recommended, using a configuration like: sslMode=trust

    For MariaDB Connector/J 3.4 to establish an SSL encrypted connection to MariaDB Server 11.4, enabling SSL does not require any special configuration apart from using sslMode=verify-full. The connector doesn't need to know the server certificate anymore, as long as the password is not empty.

    Changes to Timezone Configuration Options for TIMESTAMPS

    The MariaDB Connector/J versions before 3.4 provide a single "timezone" option for working with different time zones for clients and servers. While this functionality remains compatible, it's now separated into two distinct settings:

    • connectionTimeZone

    • forceConnectionTimeZoneToSession

    There are now 3 options that control timestamps behavior in the java connector:

    • connectionTimeZone: (LOCAL | SERVER | ) This option defines the connection's time zone. LOCAL retrieves the JVM's default time zone, SERVER fetches the server's global time zone upon connection creation, and allows specifying a server time zone without requesting it during connection establishment.

    • forceConnectionTimeZoneToSession: (true | false) This setting dictates whether the connector enforces the connection time zone for the session.

    • preserveInstants: (true | false) This option controls whether the connector converts Timestamp values to the connection's time zone.

    While remaining compatible with previous versions, this permits more flexibility when handling timezone difference scenarios. See for detailed information.

    Add support for connection redirection

    Since , the server has a new system variable redirect_url to provide a connection string using the forma mariadb/mysql://[<user>[:<password>]@]<host>[:<port>]/[<db>[?<opt1>=<value1>[&<opt2>=<value2>]]].

    When set, all existing connections will be redirected to the designated URL values when appropriate. A connection will only be redirected when no transaction is active.

    Example for enabling the redirection:set @@global.redirect_url="mariadb://somehost:3306/"

    The redirection feature is enabled by default. It can be disabled by setting the new option permitRedirect to FALSE, which will result in ignoring the redirection URL.

    Reduced overhead for issuing queries for retrieving and setting isolation level metadata

    When session tracking is supported by the MariaDB Server release series, Connection.getTransactionIsolation() won’t query the server as the current state is already known from the session tracking information. Connection.setTransactionIsolation will skip the query to set the transaction isolation level if the server is already using the requested transaction isolation level.

    Bugs Fixed

    • Connector/J Version 3 Does Not Respect "nullCatalogMeansCurrent" Property

    • Database connection failing on android

    • MariaDB Connector 3 no longer supports query timeout with MySQL

    • Inconsistency in Handling PreparedStatement.executeQuery() between MariaDB and MySQL Connectors

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.4.0, with links to detailed information on each push, see the .

    Connector/J 2.1.0 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog |

    Release date: 31 July 2017

    MariaDB Connector/J 2.1.0 is a Stable (GA) release.

    For an overview of MariaDB Connector/J see the page

    Notable Changes

    This version is a general availability (GA) release. (2.x version need java 8+)

    Notable changes and additions

    : verification of SSL Certificate Name Mismatch

    When using ssl, driver check hostname against the server's identity as presented in the server's Certificate (checking alternative names or certificate CN) to prevent man-in-the-middle attack. Verification is disabled when the option "trustServerCertificate" is set.

    A new option "disableSslHostnameVerification" permit to deactivate this validation.

    - Galera validation

    When configuration with multi-master, Connection.isValid() will not only validate connection, but host state (@@wsrep_cluster_status). A connection to a node that is not in primary mode will return false (meaning that in pool, connection will be discarded)

    - ResultSet.update* methods implementation

    ResultSet.update* methods aren't implemented statement using ResultSet.CONCUR_UPDATABLE are now able to update record. example:

    - faster batch insert

    Use dedicated protocol for batch insert when possible. (batch without Statement.RETURN_GENERATED_KEYS and streams) to have faster batch (significant only if server >= ).

    A new option "useBulkStmts" permit to deactivate this functionality.

    other evolution

    • [] Connection.getCatalog() optimisation for 10.2+ server using new session_track_schema capabilities

    • [] Failover handle automatic reconnection on KILL command

    Bug

    • [] isolation leak when using multiple pools on same VM on failover

    • [] regression on aurora Connection Connection.isReadOnly()

    • [] correcting issue that ended throwing "Unknown prepared statement handler given to mysqld_stmt_execute"

    • [] return rounded numeric when querying on a decimal field in place of throwing an exception for compatibility

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    For an overview of MariaDB Connector/J see the page

    The most recent release of is:

    Connector/J 3.4.1 Release Notes

    | Release Notes | |

    Release date: 17 Jul 2024

    MariaDB Connector/J 3.4.1 is a (GA) release.

    Notable Changes

    Connector/J 2.0.0 Release Notes

    | Release Notes | |

    Release date: 20 April 2017

    MariaDB Connector/J 2.0.0-RC is an (Release candidate) release.

    Notable Changes

    START TRANSACTION;
    SELECT next_val(hibernate_sequence);
    INSERT INTO myCar(id, name) VALUE (?, ?) //WITH PARAMETERS: 1, 'car1'
    INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?) //WITH PARAMETERS: 2, 1, 'detail1'
    INSERT INTO myCarDetail(id, carId, name) VALUE (?, ?, ?) //WITH PARAMETERS: 3, 2, 'detail2'
    COMMIT;
    jdbc:mariadb:load-balance-read://127.0.0.5,127.0.0.6,address=(host=127.0.0.7)(type=replica),address=(host=127.0.0.8)(type=replica)/DB
    jdbc:mariadb:load-balance-read://address=(host=127.0.0.5)(type=primary),address=(host=127.0.0.6)(type=primary),address=(host=127.0.0.7)(type=replica),address=(host=127.0.0.8)(type=replica)/DB
    Array valArray = connection.createArrayOf("float", new float[] {1, 2, 3}); 
    try (PreparedStatement prep = 
    connection.prepareStatement("INSERT INTO BinaryCodec(t0, t1) VALUES (?, ?, ?)")) { 
    prep.setInt(1, 1); 
    prep.setArray(2, valArray); 
    prep.setObject(3, new float[] {4, 5, 6}); 
    prep.execute(); 
    }
    Array resArray = rs.getArray(2); 
    float[] res = rs.getObject(2, float[].class);
    @Benchmark
      public int run(MyState state) throws Throwable {
        try (Statement st = state.connectionText.createStatement()) {
          ResultSet rs = st.executeQuery("select 1");
          rs.next();
          return rs.getInt(1);
        }
      }
    private static final String sql;
    
      static {
        StringBuilder sb = new StringBuilder("do ?");
        for (int i = 1; i < 1000; i++) {
          sb.append(",?");
        }
        sql = sb.toString();
      }
    
      @Benchmark
      public int text(MyState state) throws Throwable {
        try (PreparedStatement st = state.connectionText.prepareStatement(sql)) {
          for (int i = 1; i <= 1000; i++) {
            st.setInt(i, i);
          }
          return st.executeUpdate();
        }
      }
    @Benchmark
      public int[] text(MyState state) throws Throwable {
        try (PreparedStatement prep = state.connectionText.prepareStatement("select * FROM test100")) {
          ResultSet rs = prep.executeQuery();
          rs.next();
          int[] objs = new int[100];
          for (int i = 0; i < 100; i++) {
            objs[i] = rs.getInt(i + 1);
          }
          return objs;
        }
      }

    CONJ-1083 Using /client prepare/ prefix to force client side prepared statement

  • CONJ-1091 can't make a connection when the Read Replica DB is in a hang state when SocketTimeout=0 set

  • CONJ-1092 ensure respecting server collation

  • CONJ-1094 Missing mariadb/mysql collation

  • CONJ-920
    CONJ-1084
    CONJ-1088
    CONJ-1096
    CONJ-1075
    CONJ-1079
    CONJ-1080
    CONJ-1082
    changelog
    Connector/J 3.5.7
    Download Now

    CONJ-1156 getTables should be ordered as expected

  • CONJ-1163 jdbcCompliantTruncation Does Not Appear To Be Working

  • CONJ-1164 Variable initialization ahead of LOAD DATA INFILE not possible by validateLocalFileName pattern

  • CONJ-1168 useBulkStmts compatibility value with pre 3.2 version

  • CONJ-1169 improve Client prepared statement setMaxRows implementation

  • CONJ-1170 OFFSET missing from getSQLKeywords

  • CONJ-1158 DatabaseMetaData#getFunctions's result not property ordered

  • CONJ-1159 DatabaseMetaData#getClientInfoProperties not ordered correctly

  • CONJ-1166 Implement connection properties fallbackToSystemKeyStore and fallbackToSystemTrustStore

  • CONJ-1173 Bulk implementation returning individual results

  • CONJ-1174 ConnectorJ gives precision of 20 for signed bigint

  • CONJ-1100 Be able to filter system tables and views

  • CONJ-1105
    MariaDB Server 11.4
    CONJ-1171
    CONJ-981
    MariaDB 10.3.1
    CONJ-1154
    CONJ-1103
    CONJ-1161
    CONJ-1107
    CONJ-1125
    changelog
    Connector/J 3.5.7
    Download Now
    Implementation of pinGlobalTxToPhysicalConnection for XA Connection

    For CONJ-1189

    The new boolean option pinGlobalTxToPhysicalConnection, when enabled, ensures that an operation for a specific XID is routed to the same connection, to permit supporting XA START <xid> when XA END has been called. This prevent errors like

    Enhanced host description

    For CONJ-685/CONJ-686

    The host description for connecting to the server has been changed from either <host>[:<portnumber>] or address=(host=<host>)[(port=<portnumber>)][(type=(master|slave))] to a more detaild host description, permitting to set localsocket or pipe, and to define a specific ssl mode depending on the host. New format:

    Example:

    This connection string now permits to use a local unix socket if available, and host 10.0.0.1 with ssl if the unix socket is not available. A detailed host description option supersedes a global option description. The previous example can also be written in the following way, defining different ssl modes for both host options:

    Adding databaseTerm alias

    For CONJ-1190

    Option useCatalogTerm has an alias databaseTerm for MySQL connector compatibility.

    Bugs Fixed

    • CONJ-1181 The validation of a statement of the cache for prepared statements is not taking the use of different schemas into account, which can result in unexpected behavior when the same statement is executed on different schemas.

    • CONJ-1178 DatabaseMetaData.getImportedKeys returns a different PK_NAME value than DatabaseMetaData.getExportedKeys when using a NON UNIQUE constraint.

    • CONJ-1180 Slow performance of function DatabaseMeta.getExportedKeys()

    • CONJ-1185 Android app incompatibility, regex CANON_EQ flag is not supported on Android OS

    • Database meta getSQLKeywords is listing all reserved keywords, not only the restricted keywords

    • The Function metadata getImportedKeys is slow when a database has not been set

    • The Function ResultSetMetaData.getColumnTypeName() returns type VARCHAR instead of type TINYTEXT for columns of type TINYTEXT

    • Missing error mapping for errors XA_RBTIMEOUT, XA_RBTIMEOUT and XA_RBDEADLOCK

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.4.1, with links to detailed information on each push, see the changelog.

    Download
    Changelog
    Stable

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    For an overview of MariaDB Connector/J see the page

    Java 8 is now minimum required version.

    Handle CLIENT_DEPRECATE_EOF flag

    CONJ-318 Implement some protocol changes that permit to save some bytes. (part of MDEV-8931).

    handle SERVER_SESSION_STATE_CHANGE status flag

    CONJ-341 With server with version MariaDB 10.2, MySQL 5.7, ensure driver state :

    • driver does now always get current database, even when database is changed by query.

    • when using rewriteBatchedStatements does return correct autoincrement ids even when session variable @auto_increment_increment has change during session.

    improve setQueryTimeout to use SET STATEMENT max_statement_time

    CONJ-393 Previous implementation of query timeout handling (using Statement.setQueryTimeout) will create an additional thread with a scheduler. When timeout is reached, a temporary connection will be created to permit executing "KILL QUERY ", then closing the temporary connection. When query ended before timeout, the scheduled task will be canceled.

    If server is > 10.1.2, query timeout will be handle server side using "SET MAX_STATEMENT_TIME FOR" command.

    Real cancelling Streaming result sets

    CONJ-315 When closing a Statement that was fetching a result-set (using Statement.setFetchSize) and all rows where not read at the time of closing, a kill query command will be executed on close, to avoid having to parse all remaining results.

    Memory optimization : streaming query

    CONJ-442 Very big command now doesn't use any intermediate buffer. Commands are send directly to socket avoiding using memory, This permit to send very large object (1G) without using any additional memory.

    Faster connection

    CONJ-366 Faster connection : bundle first commands in authentication packet Driver execute different command on connection. Those queries are now send using pipeline (all queries are send, then only all results are reads).

    New Options :

    Performance improvement storing data in resultset

    CONJ-368 Parsing row result optimisation to avoid creating byte array to the maximum for faster results and less memory use.

    Remaining JDBC 4.2 missing implementation :

    • CONJ-414 - support for large update count [CONJ-414]

    • CONJ-409 - PrepareStatement.setObject(...) support for with java 8 temporal object.

    • CONJ-411 - support for Statement maxFieldSize

    Misc

    • CONJ-443 - NullpointerException when making concurrent procedure calls

    • CONJ-391 - Improve connection using SELECT in place of SHOW to avoid creating a mutex server side.

    • CONJ-402 - tcpKeepAlive option now default to true.

    • CONJ-448 - QueryException: Incorrect arguments to mysqld_stmt_execute on inserting an "emptyString"-Lob with JPA

    • - Respect type parameter of ResultSet.getObject with type

    • - MetaData : tinyInt1isBit doesn't work properly in TINYINT(1) column that is marked as UNSIGNED

    • - NPE on setClientInfo if value is an empty string

    • - trustStore : Retain leading slash when trust store beings with 'file:/'

    • - ConnectionPool test using hikariCP

    • - valid connector java 9 early access

    • - make tcpKeepAlive option default to true

    • - Implement Statement maxFieldSize

    • - Permit CallableStatement streaming

    Download
    Changelog
    RC

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    For an overview of MariaDB Connector/J see the page

    CONJ-422
    CONJ-400
    CONJ-322
    CONJ-389
    MariaDB 10.2.7
    CONJ-508
    CONJ-492
    CONJ-502
    CONJ-503
    CONJ-505
    CONJ-496
    Connector/J 3.5.7
    Download Now
    CONJ-1213
    Connector/J 3.5.7
    Download Now
    CONJ-1200
    CONJ-1187
    Connector/J 3.5.7
    Download Now
    CONJ-864
    CONJ-866
    CONJ-871
    CONJ-878
    CONJ-880
    CONJ-858
    CONJ-861
    Connector/J 3.5.7
    Download Now
    CONJ-709
    CONJ-710
    CONJ-714
    CONJ-701
    CONJ-679
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now
    Connector/J 3.5.7
    Download Now

    Connector/J 2.5.0 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog |

    Release date: 3 Oct 2019

    MariaDB Connector/J 2.5.0 is a Release Candidate (RC) release.

    NOTE: MariaDB Connector/J 2.5.0 is fully compatible with the latest release of version 2.4. Further maintenance releases will not be provided for version 2.4.

    For an overview of MariaDB Connector/J see the page

    Evolutions

    Authentication service

    are now defined as services. This permits to easily add new client authentication plugins. The driver has 2 new plugins caching_sha2_password and sha256_password plugin for MySQL compatibility

    List of authentication plugins in java connector :

    • mysql_clear_password

    • auth_gssapi_client

    • client_ed25519

    • mysql_native_password

    New authentication plugins can be created implementing interface org.mariadb.jdbc.authentication.AuthenticationPlugin, and listing new plugin in a META-INF/services/org.mariadb.jdbc.authentication.AuthenticationPlugin file.

    Credential service

    Credentials are usually set using user/password in the connection string or by using DriverManager.getConnection(String url, String user, String password).

    Credential plugins permit to provide credential information from other means. Those plugins have to be activated setting option credentialType to designated plugin.

    The driver has 3 default plugins :

    AWS IAM

    This permits AWS database IAM authentication. The plugin generate a token using IAM credential and region. Token is valid for 15 minutes and cached for 10 minutes.

    To use this credential authentication, com.amazonaws:aws-java-sdk-rds dependency must be registred in classpath. Implementation use SDK DefaultAWSCredentialsProviderChain and DefaultAwsRegionProviderChain to get IAM credential and region. see and to check how those information can be retrieved (environment variable / system properties, files, ...)

    Example: jdbc:mariadb://host/db?credentialType=AWS-IAM&useSsl&serverSslCert=/somepath/rds-combined-ca-bundle.pem

    with AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_REGION environment variable set.

    Environment

    User and Password are retrieved from environment variables. default environment variables are MARIADB_USER and MARIADB_PWD, but can be changed by setting additional option userKey and pwdKey

    Example : using connection string jdbc:mariadb://host/db?credentialType=ENV user and password will be retrieved from environment variable MARIADB_USER and MARIADB_PWD.

    Property

    User and Password are retrieved from java properties. default property name are mariadb.user and mariadb.pwd, but property names can be changed by setting additional option userKey and pwdKey

    Example : using connection string jdbc:mariadb://host/db?credentialType=PROPERTY&userKey=mariadbUser&pwdKey=mariadbPwd user and password will be retrieved from java properties mariadbUser and mariadbPwd

    SSL factory service

    A connection to a server initially creates a socket. When set, SSL socket is layered over this existing socket. Implementing org.mariadb.jdbc.tls.TlsSocketPlugin permit to provide custom SSL implementation for example create a new implementation.

    Custom implementation need to implement org.mariadb.jdbc.tls.TlsSocketPlugin and register service META-INF/services/org.mariadb.jdbc.tls.TlsSocketPlugin

    Custom implementation are activated using option tlsSocketType

    Other

    • : JDBC 4.3 partial implementation java.sql.Statement methods isSimpleIdentifier, enquoteIdentifier, enquoteLiteral and enquoteNCharLiteral

    • : ConnectionPoolDataSource interface addition to MariaDbPoolDataSource

    • : closing possible option batch thread on driver deregistration.

    Bug fixes

    • : Driver getPropertyInfo returns no options information when url is empty

    • : DatabaseMetaData.getSchemaTerm now return "schema", not empty string

    New options

    credentialType
    tlsSocketType
    serverRsaPublicKeyFile
    allowPublicKeyRetrieval

    Changelog

    For a complete list of changes made in MariaDB Connector/J 2.5.0, with links to detailed information on each push, see the .

    Connector/J 2.4.0 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog |

    Release date: 29 Jan 2019

    MariaDB Connector/J 2.4.0 is a Stable (GA) release.

    NOTE: MariaDB Connector/J 2.4.0 is fully compatible with the latest release of version 2.3. Further maintenance releases will not be provided for version 2.3.

    [CONJ-654] change metadata behaviour: DatabaseMetaData.getDatabaseProductName() nows return "MariaDB"/"MySQL" according to server. This can cause some incompatibilities with some libraries and products that do not yet know Database Type "MariaDB"

    For an overview of MariaDB Connector/J see the page

    Evolutions

    • : permit multiple alternative authentication methods for the same user ()

    • : permit indication of truststore/keystore type (JKS/PKCS12), then not relying on java default type

    • : GSSAPI: client can provide SPN

    • : Support MYSQL_TYPE_JSON datatype

    New options

    useReadAheadInput
    keyStoreType
    trustStoreType
    servicePrincipalName

    Bug fixes

    • : possible NullPointerException when connection lost to database using aurora configuration with one node

    • : batch using multi-send can hang when using query timeout

    • : disable SSL session resumption when using SSL

    • : correcting Clob.length() for utf8mb4

    Minor

    • : small optimization when validating galera connection

    • : add coverage test

    • : DatabaseMetaData.getDriverName() returns connector/J with a lowercase c, DatabaseMetaData.getDatabaseProductName() "MariaDB"/"MySQL" according to server

    Connector/J 3.5.5 Release Notes

    The most recent release of is:

    Download Release Notes Changelog

    Release date: 8 Aug 2025

    MariaDB Connector/J 3.5.5 is a Stable (GA) release.

    For an overview of MariaDB Connector/J see the page

    Bugs Fixed

    • ensure rollback and release savepoint operation to be sent to server, even when there is no transaction in progress ()

    • forceConnectionTimeZoneToSession doesn't always set the timezone to server ()

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.5.5, with links to detailed information on each push, see the .

    Connector/J 2.0.1 Release Notes

    | Release Notes | |

    Release date: 11 May 2017

    MariaDB Connector/J 2.0.1 is a (GA) release.

    Notable Changes

    Connector/J 3.5.3 Release Notes

    Release date: 27 Mar 2025

    MariaDB Connector/J 3.5.3 is a (GA) release.

    Notable Changes

    XA resource 'xaDataSource': resume for XID 'XID: <some id>' raised -5: invalid arguments were given for the XA operation
    address=(host=<host>|localSocket=<socket>|pipe=<namedpipe>)[(port=<portnumber>)][(type=(master|slave))][(sslMode=disable|trust|verify-ca|verify-full)]
    jdbc:mariadb:sequential://address=(localSocket=/socket),address=(host=10.0.0.1)(port=3306)(sslMode=verify-full)/DB
    jdbc:mariadb:sequential://address=(localSocket=/socket)(sslMode=disable),10.0.0.1:3306/DB?sslMode=verify-full
    Statement stmt = con.createStatement(
                                      ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = stmt.executeQuery("SELECT age FROM TABLE2");
        // rs will be scrollable, will not show changes made by others,
        // and will be updatable
        while(rs.next()){
            //Retrieve by column name
            int newAge = rs.getInt(1) + 5;
            rs.updateDouble( 1 , newAge );
            rs.updateRow();
        }
    mysql_old_password
  • dialog (PAM)

  • sha256_password

  • caching_sha2_password

  • allowPublicKeyRetrieval

    Authorize client to ask MySQL server public RSA key file if not set using serverRsaPublicKeyFileDefault: false

    credentialType

    Indicate the credential plugin type to use. Plugin must be present in classpath

    tlsSocketType

    Indicate TLS socket type implementation

    serverRsaPublicKeyFile

    Indicate path to MySQL server public RSA key file

    DefaultAWSCredentialsProviderChain
    DefaultAwsRegionProviderChain
    HostnameVerifier
    CONJ-561
    CONJ-692
    CONJ-563
    CONJ-732
    CONJ-734
    changelog
    Connector/J 3.5.7
    Download Now

    CONJ-652: buffering available socket buffer for faster results (specifically for huge resultset)

  • CONJ-659: improve text performance parsing date/time/timestamp resultset

  • CONJ-670: ability to always refresh SSL certificate

  • servicePrincipalName

    when using GSSAPI authentication, SPN (Service Principal Name) use the server SPN information. When set, connector will use this value, ignoring server information

    CONJ-649: datasource connectTimeout URL parameter is not honoured

  • CONJ-650: Correction on resultset.getObject(columnName, byte[].class) when value is NULL

  • CONJ-665: old MySQL (<5.5.3) doesn't support utf8mb4, using utf8 on 3 bytes as connection charset by default

  • CONJ-671: MariaDb bulk threads occupy full cpu(99%) while db connections broken

  • CONJ-673: abording a connection while fetching a query still does read whole resultset

  • CONJ-669: SQLSyntaxErrorException when querying on empty column name

  • CONJ-674: make dumpQueriesOnException = false by default as per documentation

  • useReadAheadInput

    use a buffered inputSteam that read socket available data. Default: true

    keyStoreType

    indicate key store type (JKS/PKCS12). default is null, then using java default type.

    trustStoreType

    indicate trust store type (JKS/PKCS12). default is null, then using java default type

    CONJ-675
    future MariaDB 10.4 feature
    CONJ-678
    CONJ-378
    CONJ-667
    CONJ-646
    CONJ-672
    CONJ-544
    CONJ-589
    CONJ-644
    CONJ-625
    CONJ-654
    Connector/J 3.5.7
    Download Now

    Java 8 is the minimum required version The last release with Java 7 compatibility is MariaDB Connector/J 1.6.0

    Change from 2.0.1

    The "useServerPrepStmts" option now defaults to false.

    Benchmarks show that if the query has already been used (then prepared), there is a significant performance increase. On the other hand, when the command is not already prepared, the additional exchange for preparing this command will slightly slow down the overall execution of the command

    prepare_bench

    The applications that repeatedly use the same queries have the ability to activate this option, but the general case is to use the direct command (text protocol).

    Binary protocol is permissive and did permit using character for LIMIT that accept only integer :

    With the "useServerPrepStmts" set to false, LIMIT parameter must be set to numeric field:

    • CONJ-467 - changing database metadata compability to 4.2

    • CONJ-460 - Query that contain multiqueries with fetch and EOF deprecation failed

    • CONJ-464 - Using of "slowQueryThresholdNanos" option with value > Integer.MAX_VALUE results in class cast exception

    • CONJ-452 - correcting inline ssl server certificate parsing

    • - LAST_INSERT_ID() validation check correction for rewrite statement

    • - autoIncrementIncrement value loaded during connection, avoiding a query for first statement for rewrite

    New Option :CONJ-465 - new option "enablePacketDebug"

    Change version 2.0.0 release candidate

    Handle CLIENT_DEPRECATE_EOF flag

    CONJ-318 Implement some protocol changes that permit saving some bytes. (part of MDEV-8931).

    Handle SERVER_SESSION_STATE_CHANGE status flag

    CONJ-341 With a MariaDB 10.2 or MySQL 5.7 server, ensure driver state:

    • driver now always gets the current database, even when the database is changed by a query.

    • when using rewriteBatchedStatements, return the correct autoincrement ids even when the session variable @auto_increment_increment has changed during the session.

    Improve setQueryTimeout to use SET STATEMENT max_statement_time

    CONJ-393 The previous implementation of query timeout handling (using Statement.setQueryTimeout) will create an additional thread with a scheduler. When timeout is reached, a temporary connection will be created to permit executing "KILL QUERY ", then closing the temporary connection. When the query ends before timeout, the scheduled task will be canceled.

    For servers > MariaDB 10.1.2, the query timeout will be handled server side using the "SET MAX_STATEMENT_TIME FOR" command.

    Real cancelling streaming result sets

    CONJ-315 When closing a statement that was fetching a result-set (using Statement.setFetchSize) and all rows were not read at the time of closing, a kill query command will be executed on close, to avoid having to parse all remaining results.

    Memory optimization: streaming query

    CONJ-442 Very large commands now don't use an intermediate buffer. Commands are sent directly to socket avoiding using memory. This permits sending very large objects (1G) without using any additional memory.

    Faster connection

    CONJ-366 Faster connection: bundle first commands in authentication packet The driver executes different commands on connection. Those queries are now sent using pipeline (all queries are sent, only then are all results read).

    New Options:

    Performance improvement storing data in resultset

    CONJ-368 Parsing row result optimisation to avoid creating byte array to the maximum for faster results and less memory use.

    Remaining JDBC 4.2 missing implementation :

    • CONJ-414 - support for large update count [CONJ-414]

    • CONJ-409 - PrepareStatement.setObject(...) support for with java 8 temporal object.

    • CONJ-411 - support for Statement maxFieldSize

    Misc

    • CONJ-443 - NullpointerException when making concurrent procedure calls

    • CONJ-391 - Improve connection using SELECT in place of SHOW to avoid creating a mutex server side.

    • CONJ-402 - tcpKeepAlive option now default to true.

    • CONJ-448 - QueryException: Incorrect arguments to mysqld_stmt_execute on inserting an "emptyString"-Lob with JPA

    • - Respect type parameter of ResultSet.getObject with type

    • - MetaData : tinyInt1isBit doesn't work properly in TINYINT(1) column that is marked as UNSIGNED

    • - NPE on setClientInfo if value is an empty string

    • - trustStore : Retain leading slash when trust store beings with 'file:/'

    • - ConnectionPool test using hikariCP

    • - valid connector java 9 early access

    • - make tcpKeepAlive option default to true

    • - Implement Statement maxFieldSize

    • - Permit CallableStatement streaming

    Download
    Changelog
    Stable

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    For an overview of MariaDB Connector/J see the page

    Resolved timestamp string representation incompatibility between versions 2.7 and 3.x (CONJ-1232) Added new option

  • Modified redirection option to enable by default only when SSL is enabled (CONJ-1235)

  • Bugs Fixed

    Date and Time Handling

    • Fixed issue where dates containing zero day or month resulted in a DateTimeException (CONJ-1226)

    Result Set and Metadata

    • Fixed incorrect values returned by ResultSet.getColumnType() for unsigned values (CONJ-1222)

    • Corrected regression in 3.x affecting column metadata for unsigned types (CONJ-1241)

    • Fixed CallableStatement.getParameterMetadata() returning wrong java.sql.Type for boolean values (CONJ-1243)

    Connection Management

    • Prevented NPE (Null Pointer Exception) after reconnection failure in high availability configurations (CONJ-1236)

    • Fixed issue with incorrect statements.isClosed value after closing connection (CONJ-1237)

    Protocol and Performance

    • Disabled BULK operations when no parameters are present (CONJ-1239)

    • Fixed connectivity issues with databases that only accept TLSv1.3 (CONJ-1240)

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.5.3, with links to detailed information on each push, see the changelog.

    Download
    Release Notes
    Changelog
    Stable

    The most recent release of is:

    Connector/J 3.5.7 Download Now

    For an overview of MariaDB Connector/J see the page

    CONJ-1188
    CONJ-1191
    CONJ-1068
    CONJ-1182
    CONJ-451
    CONJ-455
    CONJ-450
    CONJ-457
    CONJ-160
    CONJ-307
    CONJ-402
    CONJ-411
    CONJ-449
    CONJ-1265
    CONJ-1270
    changelog
    Connector/J 3.5.7
    Download Now

    Connector/J 3.0.2 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog |

    Release date: 16 Sep 2021

    MariaDB Connector/J 3.0.2 is a Release Candidate (RC) release.

    Do not use non-stable (non-GA) releases in production!

    NOTE: MariaDB Connector/J 3.0.2 is fully compatible with the latest release of version 2.7. Further maintenance releases will not be provided for version 2.7 after MariaDB Connector/J 3.0 becomes stable (GA).

    For an overview of MariaDB Connector/J see the page

    Notable Changes

    See and for 3.0 release. with the following changes:

    Feature

    • Java 9 module full support ( Aws IAM credential now use sdk v2 authentication to permit use of modules)

    • Ensure having connection's thread id in Exception / debug logs

    Bugs Fixed

    • Ensure pool connections validation when a socket fail

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.2, with links to detailed information on each push, see the .

    try (PreparedStatement p = connection.prepareStatement("SELECT * from mysql.user LIMIT ?")) {
        p.setString(1, "10");
        p.executeQuery();
    }
    try (PreparedStatement p = connection.prepareStatement("SELECT * from mysql.user LIMIT ?")) {
        p.setInt(1, 10);
        p.executeQuery();
    }
    CONJ-461
    CONJ-468
    CONJ-451
    CONJ-455
    CONJ-450
    CONJ-457
    CONJ-160
    CONJ-307
    CONJ-402
    CONJ-411
    CONJ-449
    mariadb-connector-j-300-release-notes
    mariadb-connector-j-301-release-notes
    CONJ-879
    CONJ-897
    CONJ-896
    changelog
    Connector/J 3.5.7
    Download Now

    Connector/J 1.8.0 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog |

    Release date: 11 Feb 2019

    MariaDB Connector/J 1.8.0 is a Stable (GA) release.

    NOTE: MariaDB Connector/J 1.8.x version is the maintenance version for Java 7. Support for java 6 is dropped

    For an overview of MariaDB Connector/J see the page

    Evolutions

    Report issue from 2.3.x 2.4.x to 1.8.0:

    • [] permit multiple alternative authentication methods for the same user (future feature)

    • {] permit indication of truststore/keystore type (JKS/PKCS12), then not relying on java default type

    • [] GSSAPI: client can provide SPN

    • [] Support MYSQL_TYPE_JSON datatype

    Minor changes

    • [] optimization to read metadata faster

    • [] java.sql.Driver class implement DriverPropertyInfo[] getPropertyInfo, permitting listing options on querying tools

    • [] update maven test dependencies for java 10 compatibility

    • [] PreparedStatement::getParameterMetaData always returns VARSTRING as type, resulting in downstream libraries interpreting values wrongly

    h3. Bugfixes

    • [] possible NullPointerException when the connection is lost to the database using aurora configuration with one node

    • [] batch using multi-send can hang when using query timeout

    • [] disable SSL session resumption when using SSL

    • [] correcting Clob.length() for utf8mb4

    [CONJ-652] faster results buffering socket available

  • [CONJ-659] improve text performance reading date/time/timestamp resultset

  • [CONJ-670] ability to Refresh the SSL certificate

  • [CONJ-642] disable the option "useBulkStmts" by default

  • [CONJ-623] Increase connection logging when the Primary node connection fails

  • [CONJ-384] Add option permit having "affected" or "found" rows

  • [CONJ-649] datasource connectTimeout URL parameter is not honoured

  • [CONJ-650] Correction on resultset.getObject(columnName, byte[].class) when value is NULL

  • [CONJ-665] old MySQL (<5.5.3) doesn't support utf8mb4, using utf8 on 3 bytes as connection charset by default

  • [CONJ-671] MariaDb bulk threads occupy full cpu(99%) while db connections broken

  • [CONJ-673] aborting a connection while fetching a query still reads the whole resultset

  • [CONJ-669] SQLSyntaxErrorException when querying on an empty column name

  • [CONJ-674] make dumpQueriesOnException = false by default as per documentation

  • [CONJ-616] correction on possible NPE on getConnection when using failover configuration and the master is down, not throwing a proper exception

  • [CONJ-636] Error in batch might throw a NPE and not the proper Exception

  • [CONJ-624] MariaDbPoolDataSource possible NPE on configuration getter

  • [CONJ-622] The option "connectTimeout" must take into account DriverManager.getLoginTimeout() when set

  • [CONJ-621] wrong escaping when having curly brackets in table/field name

  • [CONJ-618] Client preparestatement parsing error on escaped ' / " in query

  • [CONJ-644] small optimization when validating Galera connection

  • [CONJ-625] add coverage test

  • [CONJ-654] DatabaseMetaData.getDriverName() returns connector/J with a lowercase c

  • CONJ-675
    MariaDB 10.4
    CONJ-678
    CONJ-378
    CONJ-667
    CONJ-628
    CONJ-637
    CONJ-641
    CONJ-643
    CONJ-646
    CONJ-672
    CONJ-544
    CONJ-589
    Connector/J 3.5.7
    Download Now

    Connector/J All Releases

    A list of all MariaDB Connector/J releases

    3.5

    Release
    Release Date
    Status
    Min. Java Compat.

    17 Dec 2025

    3.4

    Release
    Release Date
    Status
    Min. Java Compat.

    3.3

    Release
    Release Date
    Status
    Min. Java Compat.

    3.2

    Release
    Release Date
    Status
    Min. Java Compat.

    3.1

    Release
    Release Date
    Status
    Min. Java Compat.

    3.0

    Release
    Release Date
    Status
    Min. Java Compat.

    2.7

    Release
    Release Date
    Status
    Min. Java Compat.

    2.6

    Release
    Release Date
    Status
    Min. Java Compat.

    2.5

    Release
    Release Date
    Status
    Min. Java Compat.

    2.4

    Release
    Release Date
    Status
    Min. Java Compat.

    2.3

    Release
    Release Date
    Status
    Min. Java Compat.

    2.2

    Release
    Release Date
    Status
    Min. Java Compat.

    2.1

    Release
    Release Date
    Status
    Min. Java Compat.

    2.0

    Release
    Release Date
    Status
    Min. Java Compat.

    1.8

    Release
    Release Date
    Status
    Min. Java Compat.

    1.7

    Release
    Release Date
    Status
    Min. Java Compat.

    1.6

    Release
    Release Date
    Status
    Min. Java Compat.

    1.5

    Release
    Release Date
    Status
    Min. Java Compat.

    1.4

    Release
    Release Date
    Status
    Min. Java Compat.

    1.3

    Release
    Release Date
    Status
    Min. Java Compat.

    1.2

    Release
    Release Date
    Status
    Min. Java Compat.

    1.1

    Release
    Release Date
    Status
    Min. Java Compat.

    1.0

    Release
    Release Date
    Status
    Min. Java Compat.

    29 Nov 2023

    Stable (GA)

    Java 8

    08 Nov 2023

    Stable (GA)

    Java 8

    11 Jan 2023

    Stable (GA)

    Java 8

    15 Nov 2022

    Stable (GA)

    Java 8

    20 Sep 2022

    Stable (GA)

    Java 8

    4 Aug 2022

    Stable (GA)

    Java 8

    29 Jun 2022

    Stable (GA)

    Java 8

    25 May 2022

    Stable (GA)

    Java 8

    25 Mar 2022

    Stable (GA)

    Java 8

    25 Jan 2022

    Stable (GA)

    Java 8

    16 Sep 2021

    RC

    Java 8

    11 Aug 2021

    Beta

    Java 8

    4 May 2021

    Alpha

    Java 8

    25 Aug 2023

    Stable (GA)

    Java 8

    22 Mar 2023

    Stable (GA)

    Java 8

    24 Jan 2023

    Stable (GA)

    Java 8

    08 Nov 2022

    Stable (GA)

    Java 8

    29 Jun 2022

    Stable (GA)

    Java 8

    19 Jan 2022

    Stable (GA)

    Java 8

    11 Aug 2021

    Stable (GA)

    Java 8

    12 May 2021

    Stable (GA)

    Java 8

    29 Jan 2021

    Stable (GA)

    Java 8

    23 Nov 2020

    Stable (GA)

    Java 8

    25 Sep 2020

    Stable (GA)

    Java 8

    16 Oct 2019

    RC

    Java 8

    3 Oct 2019

    RC

    Java 8

    18 Mar 2019

    Stable (GA)

    Java 8

    29 Jan 2019

    Stable (GA)

    Java 8

    9 Mar 2018

    Stable (GA)

    Java 8

    20 Feb 2018

    Stable (GA)

    Java 8

    22 Dec 2017

    Stable (GA)

    Java 8

    9 Nov 2017

    Stable (GA)

    Java 8

    20 Apr 2017

    RC

    Java 8

    20 Feb 2018

    Stable (GA)

    Java 6

    22 Dec 2017

    Stable (GA)

    Java 6

    9 Nov 2017

    Stable (GA)

    Java 6

    28 Jun 2017

    Stable (GA)

    Java 6

    07 Jun 2017

    Stable (GA)

    Java 7

    11 May 2017

    Stable (GA)

    Java 7

    22 Dec 2016

    Stable (GA)

    Java 7

    9 Nov 2016

    Stable (GA)

    Java 7

    13 Oct 2016

    Stable (GA)

    Java 7

    4 Oct 2016

    Stable (GA)

    Java 7

    1 Sep 2016

    Stable (GA)

    Java 7

    16 Aug 2016

    RC

    Java 7

    1 Aug 2016

    RC

    Java 7

    26 Apr 2016

    Stable (GA)

    Java 7

    11 Apr 2016

    Stable (GA)

    Java 7

    11 Apr 2016

    Stable (GA)

    Java 7

    1 Apr 2016

    Stable (GA)

    Java 7

    12 Jan 2016

    Stable (GA)

    Java 7

    8 Dec 2015

    Stable (GA)

    Java 7

    23 Nov 2015

    Stable (GA)

    Java 7

    18 Nov 2015

    Stable (GA)

    Java 7

    16 Nov 2015

    Stable (GA)

    Java 7

    2 Apr 2014

    Stable (GA)

    Java 6

    18 Feb 2014

    Stable (GA)

    Java 6

    18 Sep 2013

    Stable (GA)

    Java 6

    10 Sep 2013

    Stable (GA)

    Java 6

    1 Jul 2013

    Stable (GA)

    Java 6

    2 May 2013

    Stable (GA)

    Java 6

    1 Mar 2013

    Stable (GA)

    Java 6

    15 Jan 2013

    Stable (GA)

    Java 6

    Stable (GA)

    Java 8

    3.5.6

    12 Aug 2025

    Stable (GA)

    Java 8

    3.5.5

    08 Aug 2025

    Stable (GA)

    Java 8

    3.5.4

    01 Jul 2025

    Stable (GA)

    Java 8

    3.5.3

    27 Mar 2025

    Stable (GA)

    Java 8

    3.5.2

    11 Feb 2025

    Stable (GA)

    Java 8

    3.5.1

    20 Nov 2024

    Stable (GA)

    Java 8

    3.5.0

    24 Oct 2024

    Stable (GA)

    Java 8

    3.4.2

    27 Mar 2025

    Stable (GA)

    Java 8

    3.4.1

    17 Jul 2024

    Stable (GA)

    Java 8

    3.4.0

    17 May 2024

    Stable (GA)

    3.3.4

    27 Mar 2025

    Stable (GA)

    Java 8

    3.3.3

    20 Feb 2024

    Stable (GA)

    Java 8

    3.3.2

    19 Dec 2023

    Stable (GA)

    3.2.0

    25 Aug 2023

    Stable (GA)

    Java 8

    3.1.4

    1 May 2023

    Stable (GA)

    Java 8

    3.1.3

    22 Mar 2023

    Stable (GA)

    Java 8

    3.1.2

    24 Jan 2023

    Stable (GA)

    3.0.11

    25 Aug 2023

    Stable (GA)

    Java 8

    3.0.10

    11 Jan 2023

    Stable (GA)

    Java 8

    3.0.9

    08 Nov 2022

    Stable (GA)

    2.7.13

    17 Dec 2025

    Stable (GA)

    Java 8

    2.7.12

    20 Feb 2024

    Stable (GA)

    Java 8

    2.7.11

    08 Nov 2023

    Stable (GA)

    2.6.2

    23 Jul 2020

    Stable (GA)

    Java 8

    2.6.1

    23 Jun 2020

    Stable (GA)

    Java 8

    2.6.0

    20 Mar 2020

    Stable (GA)

    2.5.4

    27 Jan 2020

    Stable (GA)

    Java 8

    2.5.3

    8 Jan 2020

    Stable (GA)

    Java 8

    2.5.2

    22 Nov 2019

    Stable (GA)

    2.4.4

    18 Sep 2019

    Stable (GA)

    Java 8

    2.4.3

    5 Aug 2019

    Stable (GA)

    Java 8

    2.4.2

    17 Jun 2019

    Stable (GA)

    2.3.0

    7 Sep 2018

    Stable (GA)

    Java 8

    2.2.6

    19 Jul 2018

    Stable (GA)

    Java 8

    2.2.5

    30 May 2018

    Stable (GA)

    Java 8

    2.2.4

    14 May 2018

    Stable (GA)

    2.1.2

    26 Sep 2017

    Stable (GA)

    Java 8

    2.1.1

    6 Sep 2017

    Stable (GA)

    Java 8

    2.1.0

    31 Jul 2017

    Stable (GA)

    2.0.3

    28 Jun 2017

    Stable (GA)

    Java 8

    2.0.2

    07 Jun 2017

    Stable (GA)

    Java 8

    2.0.1

    11 May 2017

    Stable (GA)

    1.8.0

    11 Feb 2019

    Stable (GA)

    Java 7

    1.7.6

    10 Dec 2020

    Stable (GA)

    Java 6

    1.7.4

    30 May 2018

    Stable (GA)

    Java 6

    1.7.3

    9 Mar 2018

    Stable (GA)

    1.6.5

    26 Sep 2017

    Stable (GA)

    Java 6

    1.6.4

    6 Sep 2017

    Stable (GA)

    Java 6

    1.6.3

    31 Jul 2017

    Stable (GA)

    1.5.9

    20 Mar 2017

    Stable (GA)

    Java 7

    1.5.8

    15 Feb 2017

    Stable (GA)

    Java 7

    1.5.7

    13 Jan 2017

    Stable (GA)

    1.4.6

    15 Jun 2016

    Stable (GA)

    Java 7

    1.4.5

    24 May 2016

    Stable (GA)

    Java 7

    1.4.4

    6 May 2016

    Stable (GA)

    1.3.7

    23 Mar 2016

    Stable (GA)

    Java 7

    1.3.6

    29 Feb 2016

    Stable (GA)

    Java 7

    1.3.5

    9 Feb 2016

    Stable (GA)

    1.2.3

    6 Oct 2015

    Stable (GA)

    Java 7

    1.2.2

    10 Sep 2015

    Stable (GA)

    Java 7

    1.2.0

    17 Jul 2015

    Stable (GA)

    1.1.10

    9 Nov 2016

    Stable (GA)

    Java 6

    1.1.9

    18 Jun 2015

    Stable (GA)

    Java 6

    1.1.8

    16 Jan 2015

    Stable (GA)

    1.0.0

    29 Nov 2012

    Stable (GA)

    Java 6

    3.5.7

    Java 8

    Java 8

    Java 8

    Java 8

    Java 8

    Java 8

    Java 8

    Java 8

    Java 8

    Java 8

    Java 8

    Java 6

    Java 6

    Java 7

    Java 7

    Java 7

    Java 7

    Java 6

    3.3.1
    3.3.0
    3.1.1
    3.1.0
    3.0.8
    3.0.7
    3.0.6
    3.0.5
    3.0.4
    3.0.3
    3.0.2
    3.0.1
    3.0.0
    2.7.10
    2.7.9
    2.7.8
    2.7.7
    2.7.6
    2.7.5
    2.7.4
    2.7.3
    2.7.2
    2.7.1
    2.7.0
    2.5.1
    2.5.0
    2.4.1
    2.4.0
    2.2.3
    2.2.2
    2.2.1
    2.2.0
    2.0.0
    1.7.2
    1.7.1
    1.7.0
    1.6.2
    1.6.1
    1.6.0
    1.5.6
    1.5.5
    1.5.4
    1.5.3
    1.5.2
    1.5.1
    1.5.0
    1.4.3
    1.4.2
    1.4.1
    1.4.0
    1.3.4
    1.3.3
    1.3.2
    1.3.1
    1.3.0
    1.1.7
    1.1.6
    1.1.5
    1.1.4
    1.1.3
    1.1.2
    1.1.1
    1.1.0
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    cachedCodecs
    metaExportedKeys
    About MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    documentation
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    pool datasource implementation
    About MariaDB Connector/J
    MariaDB Connector/J
    Connector/J Overview
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    timezone documentation
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    Connector/J Overview
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    Connector/J Overview
    oldModeNoPrecisionTimestamp
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J
    About MariaDB Connector/J
    MariaDB Connector/J
    About MariaDB Connector/J

    Connector/J 3.0.3 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog | About MariaDB Connector/J

    Release date: 25 Jan 2022

    MariaDB Connector/J 3.0.3 is a Stable (GA) release.

    NOTE: MariaDB Connector/J 3.0.3 is NOT fully compatible with the latest release of version 2.7.

    For an overview of MariaDB Connector/J see the page

    New version 3.0 is a complete rewrite of the connector, with code simplification, reduced size (15%), more than 90% coverage tested, with performance gain.

    Licence is still LGPL-2.1 or later with copyright to MariaDB Corporation AB only (2.x was a fork from Drizzle-JDBC - BSD licensed)

    What’s new :

    • Binary prepare statement improvement

    • faster connection creation

    • Support of new 10.6 metadata skip

    • Pipelining PREPARE

    Performance

    Other than features, connector permit significant performance improvements : Here are real world TPCC benchmarks results, comparing connector version 2.7.4 and 3.0.3

    Binary prepare statement improvement

    When using option useServerPrepStmts, the connector uses BINARY protocol, meaning executing PREPARE + EXECUTE commands.

    Pipelining

    Queries issued from the application are sent one by one to the server, waiting on the results of the first query before sending the next. Communication with the server follows this synchronous request-response messaging pattern.

    When using binary protocol, a PREPARE command is issued (if not in cache) before executing an EXECUTE command.

    For MariaDB server 10.2+, the connector will send an optimistic PREPARE + EXECUTE, sending queries one after another. EXECUTE command will be executed only if the PREPARE command succeeds. This avoids some network latency reading PREPARE result before sending EXECUTE command.

    Support of new 10.6 metadata skip

    10.6 Server with permit to avoid resending metadata when they haven’t changed. This concerns SQL commands that return a resultset, when using option useServerPrepStmts.

    Now, the server will send metadata only if they have changed (DDL change for example). This avoids useless information transiting on the network and parsing those metadata.

    Connector internal JMH Benchmark results, selecting one row of a 100 int column table :

    Avoiding additional command on connection creation

    Connection creation by default won't execute additional command to set session environement. Depending on options, there might be a few commands, but driver avoid them to the maximum.

    REDO failover transaction

    After a failover occurs, reconnection will be automatically done according to high-availability configuration. Even if implementation is now smaller and clearer, the result will be the same.

    After reconnection, the connector might still throw an exception if the state is unsure. Failover on replica are transparent. This is different when the failover occurs during the execution of a query on a master server.

    A new option transactionReplay permit to replay transactions : Most of the time, queries occur in transactions so redo transaction implementation will solve most of the failover cases transparently. Option is disabled by default. When enabled, all queries in a transaction are cached until transaction resolution. If a failover occurs, the driver will recreate a new connection and replay cache. There is a few limitations: When the last command was a "commit" sent to the server, an exception will be thrown, the driver cannot know the current state. application must have idempotent queries only (queries can be "replayable") If the transaction is too big (cache size limit set with new option transactionReplaySize), the driver won’t cache the transaction anymore, so a failover during that specific transaction will result in throwing an exception.

    Better java version support

    Driver uses Multi-Release JARs (MRJAR), to simultaneously contain implementations for different versions of java. This permit still supports Java 8, but provides solutions for higher versions of java.

    Connector now provides a java 9 full module-info JPMS descriptor

    Java 11 socket extended option TCP_KEEPIDLE, TCP_KEEPCOUNT and TCP_KEEPINTERVAL are now configurable with tcpKeepIdle, tcpKeepCount, tcpKeepInterval options respectively. (These options don't have any effect if using a java version lower than 11).

    Authentication plugin restriction

    A new option restrictedAuth permits to restrict authentication plugins. Example connection string jdbc:mariadb:*localhost/db?restrictedAuth=mysql_native_password,client_ed25519 will restrict plugin use of standard mysql_native_password and client_ed25519 only.*

    Metadata queries performance improvement

    Metadata queries use of information_schema improvement for partial or exact matching, permitting faster results.

    Easy logging

    Logging can now be easily enabled at runtime, using slf4j if present, or fallback to JDK logger / console if not.

    • INFO level log connection error

    • DEBUG/FINE level log commands

    • TRACE/FINEST level log network exchanges

    jdbc:mariadb scheme

    It occurs that mysql AND mariadb driver are sometimes available in the same classpath, so, now, driver only accept jdbc:mariadb: by default.

    If for some reason, connection string is required to be jdbc:mysql: Driver will be used only if connection string contain 'permitMysqlScheme'. example :jdbc:mysql:*localhost/test?permitMysqlScheme.*

    Option changed

    Ssl configuration use now a new option sslMode to simplify configuration Possible value are :

    disable
    trust
    verify-ca
    verify-full

    This can still be done by 2.x options (useSsl, disableSslHostnameVerification, trustServerCertificate) for compatibility, but this is the preferred way.

    A new option timezone permits to force session timezone in case of client having a different timezone compare to server. if set timezone must to either offset or IANA tz (like '+5:00' or 'America/New_York')': connector will set connection timezone. This replace options useLegacyDatetimeCode and serverTimezone that did cause some problems when using .

    Option removal

    Even if connectors aim to be compatible with the 2.x version, there has been very few option removal since connection exists. This is now the time :

    allowMasterDownConnection
    assureReadOnly
    autoReconnect
    cachePrepStmts
    callableStmtCacheSize
    continueBatchOnError
    enablePacketDebug
    ensureSocketState
    failOnReadOnly
    failoverLoopRetries
    jdbcCompliantTruncation
    keyPassword
    loadBalanceBlacklistTimeout
    log
    maximizeMysqlCompatibility

    Specific support for aurora has been removed, since Issues were piling up without the community proposing any PR for them and without access for us to test those modifications.

    Changelog

    For a complete list of changes made in MariaDB Connector/J 3.0.3, with links to detailed information on each push, see the .

    REDO failover transaction
  • Better java version support

  • New option tcpKeepIdle, tcpKeepCount, tcpKeepInterval for java 11+

  • Provide a full JPMS module descriptor

  • new option restrictedAuth to permit authentication plugin restriction

  • metadata queries performance improvement

  • Easy logging

  • Deprecated option removal

  • Support codec registry implementation

  • verify-full

    Standard SSL use: Encryption, certificate validation and hostname validation

    nullCatalogMeansCurrent
    passwordCharacterEncoding
    pinGlobalTxToPhysicalConnection
    prepStmtCacheSqlLimit
    profileSql
    retriesAllDown
    rewriteBatchedStatements
    serverTimezone
    sharedMemory
    slowQueryThresholdNanos
    staticGlobal
    tcpNoDelay
    tcpRcvBuf
    tcpSndBuf
    trackSchema
    trustStore
    trustStorePassword
    trustStoreType
    useBatchMultiSend
    useBatchMultiSendNumber
    useFractionalSeconds
    useLegacyDatetimeCode
    useOldAliasMetadataBehavior
    validConnectionTimeout

    allowMasterDownConnection

    In master/replica setup, master must be up

    disable

    No ssl (default)

    trust

    Encryption only (no certificate and hostname validation) (DEVELOPMENT ONLY)

    verify-ca

    Encryption, certificates validation, BUT no hostname verification

    MDEV-19237
    changelog
    Connector/J 3.5.7
    Download Now
    2
    multicol
    MariaDB Connector/J
    About MariaDB Connector/J

    assureReadOnly

    connectors now configure replica connection being read-only

    autoReconnect

    doesn’t have any sense now, better use high availability mode

    cachePrepStmts

    always cache when using binary protocol

    callableStmtCacheSize

    always cache when using binary protocol

    continueBatchOnError

    enablePacketDebug

    log are now set using standard logger

    ensureSocketState

    removed, this was a debugging option

    failOnReadOnly

    one master must always be present when using master/replica setup

    failoverLoopRetries

    failover number of attempts rely now only on retriesAllDown option

    jdbcCompliantTruncation

    The connector ensures STRICT_TRANS_TABLES is always set to follow JDBC expected truncation.

    keyPassword

    loadBalanceBlacklistTimeout

    denied lists are handled automatically, and if all servers are denied, the connector will reconnect using the denied servers. No need for these options anymore.

    log

    log are now set using standard logger

    maximizeMysqlCompatibility

    very old option for old mysql connector compatibility

    nullCatalogMeansCurrent

    was to permit non JDBC behavior for compatibility with old version correction

    passwordCharacterEncoding

    pinGlobalTxToPhysicalConnection

    prepStmtCacheSqlLimit

    forced to 8K value

    profileSql

    log are now set using standard logger

    retriesAllDown

    not compatible with new failover implementation

    rewriteBatchedStatements

    replaced by use of faster batching implementation ( COM_STMT_BULK)

    serverTimezone

    sharedMemory

    plugin removed

    slowQueryThresholdNanos

    staticGlobal

    tcpNoDelay

    Who would want to disable NAGLE to have a slow connector

    tcpRcvBuf

    tcpSndBuf

    trackSchema

    Automatically set

    trustStore

    Use java standard truststore or option serverSslCert to provide certificates.

    trustStorePassword

    Same than trustStore

    trustStoreType

    Same than trustStore

    useBatchMultiSend

    replaced by use of faster batching implementation ( COM_STMT_BULK)

    useBatchMultiSendNumber

    See useBatchMultiSend

    useFractionalSeconds

    server are expected to support fractional seconds (all mariadb server support it, mysql since 5.6)

    useLegacyDatetimeCode

    useOldAliasMetadataBehavior

    was to permit non JDBC behavior for compatibility with old version correction

    validConnectionTimeout

    No automatic validation done by connector, pool must validate connection, not connector having a thread for that

    Connector/J 2.3.0 Release Notes

    The most recent release of is:

    Download | Release Notes | Changelog | About MariaDB Connector/J

    Release date: 7 Sep 2018

    MariaDB Connector/J 2.3.0 is a Stable (GA) release.

    For an overview of MariaDB Connector/J see the page

    CONJ-398 Improve deadlock debugging capabilities

    MariaDB has now 2 new options to permit identifying deadlock : New options:

    includeInnodbStatusInDeadlockExceptions
    includeThreadDumpInDeadlockExceptions

    the option "enabledSslProtocolSuites" now include TLSv1.2 by default

    previous default value was "TLSv1, TLSv1.1", disabling TLSv1.2 by default, due to a corrected issue () with servers using YaSSL - not openSSL. Server error was . Now, the default value is "TLSv1, TLSv1.1, TLSv1.2". So TLSv1.2 can be use directly. Connecting MySQL community server use YaSSL without correction, and connection might result in SSLException: "Unsupported record version Unknown-0.0".

    disable the option "useBulkStmts" by default

    Using useBulkStmts permit faster batch, but cause one major issue : Batch return -1 = SUCCESS_NO_INFO

    Different option use this information for optimistic update, and cannot confirm if update succeed or not. This option still makes sense, since for big batch is way more faster, but will not be activated by default.

    Minor changes

    • [] optimization to read metadata faster

    • [] java.sql.Driver class implement DriverPropertyInfo[] getPropertyInfo, permitting listing options on querying tools

    • [] enabledSslProtocolSuites does not include TLSv1.2 by default

    • [] update maven test dependencies for java 10 compatibility

    Bugfixes

    • [] correction on possible NPE on getConnection when using failover configuration and master is down, not throwing a proper exception

    • [] Error in batch might throw a NPE and not the proper Exception

    [CONJ-643] PreparedStatement::getParameterMetaData always returns VARSTRING as type resulting in downstream libraries interpreting values wrongly

    includeInnodbStatusInDeadlockExceptions

    add "SHOW ENGINE INNODB STATUS" result to exception trace when having a deadlock exception.Default: false

    includeThreadDumpInDeadlockExceptions

    add thread dump to exception trace when having a deadlock exception.Default: false

    CONJ-639
    MDEV-12190
    CONJ-642
    CONJ-628
    CONJ-637
    CONJ-639
    CONJ-641
    CONJ-616
    CONJ-636
    Connector/J 3.5.7
    Download Now
    MariaDB Connector/J
    About MariaDB Connector/J
    parsec
    parsec documentation
    character_set_collations
    COM_STMT_BULK_EXECUTE
    Client authentication plugins
    some functions that are affected by the time zone setting

    This page is licensed: CC BY-SA / Gnu FDL

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.

    This page is: Copyright © 2025 MariaDB. All rights reserved.