MySQL Connector ODBC
MySQL Connector ODBC
Abstract
This document contains release notes for the changes in recent releases of MySQL Connector/ODBC.
Updates to these notes occur as new product features are added, so that everybody can follow the development
process. If a recent version is listed here that you cannot find on the download page (https://dev.mysql.com/
downloads/), the version has not yet been released.
The documentation included in source and binary distributions may not be fully up to date with respect to release
note entries because integration of the documentation occurs at release build time. For the most up-to-date
release notes, please refer to the online documentation instead.
For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other
MySQL users.
Table of Contents
Preface and Legal Notices ............................................................................................................ 2
Changes in MySQL Connector/ODBC Version 9 ............................................................................ 3
Changes in MySQL Connector/ODBC 9.1.0 (2024-10-15, General Availability) ......................... 3
Changes in MySQL Connector/ODBC 9.0.0 (2024-07-01, General Availability) ......................... 4
Changes in MySQL Connector/ODBC Version 8.x .......................................................................... 5
Changes in MySQL Connector/ODBC 8.4.0 (2024-04-30, General Availability) ......................... 5
Changes in MySQL Connector/ODBC 8.3.0 (2024-01-16, General Availability) ......................... 6
Changes in MySQL Connector/ODBC 8.2.0 (2023-10-25, General Availability) ......................... 6
Changes in MySQL Connector/ODBC 8.1.0 (2023-07-18, General Availability) ......................... 7
Changes in MySQL Connector/ODBC 8.0.40 (2024-10-15, General Availability) ....................... 7
Changes in MySQL Connector/ODBC 8.0.39 (Not released, General Availability) ..................... 7
Changes in MySQL Connector/ODBC 8.0.38 (Not released, General Availability) ..................... 7
Changes in MySQL Connector/ODBC 8.0.37 (2024-04-30, General Availability) ....................... 7
Changes in MySQL Connector/ODBC 8.0.36 (2024-01-16, General Availability) ....................... 8
Changes in MySQL Connector/ODBC 8.0.35 (2023-10-25, General Availability) ....................... 8
Changes in MySQL Connector/ODBC 8.0.34 (Not released, General Availability) ..................... 8
Changes in MySQL Connector/ODBC 8.0.33 (2023-04-18, General Availability) ....................... 8
Changes in MySQL Connector/ODBC 8.0.32 (2023-01-17, General Availability) ..................... 10
Changes in MySQL Connector/ODBC 8.0.31 (2022-10-11, General Availability) ..................... 10
Changes in MySQL Connector/ODBC 8.0.30 (2022-07-26, General Availability) ..................... 11
Changes in MySQL Connector/ODBC 8.0.29 (2022-04-26, General Availability) ..................... 12
Changes in MySQL Connector/ODBC 8.0.28 (2022-01-18, General Availability) ..................... 13
Changes in MySQL Connector/ODBC 8.0.27 (2021-10-19, General Availability) ..................... 14
Changes in MySQL Connector/ODBC 8.0.26 (2021-07-20, General Availability) ..................... 15
Changes in MySQL Connector/ODBC 8.0.25 (2021-05-11, General Availability) ..................... 16
Changes in MySQL Connector/ODBC 8.0.24 (2021-04-20, General Availability) ..................... 16
Changes in MySQL Connector/ODBC 8.0.23 (2021-01-18, General Availability) ..................... 17
Changes in MySQL Connector/ODBC 8.0.22 (2020-10-19, General Availability) ..................... 18
Changes in MySQL Connector/ODBC 8.0.21 (2020-07-13, General Availability) ..................... 19
Changes in MySQL Connector/ODBC 8.0.20 (2020-04-27, General Availability) ..................... 19
Changes in MySQL Connector/ODBC 8.0.19 (2020-01-13, General Availability) ..................... 20
1
MySQL Connector/ODBC Release Notes
Legal Notices
Copyright © 1997, 2024, Oracle and/or its affiliates.
License Restrictions
This software and related documentation are provided under a license agreement containing
restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly
permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate,
broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any
form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless
required by law for interoperability, is prohibited.
Warranty Disclaimer
The information contained herein is subject to change without notice and is not warranted to be error-
free. If you find any errors, please report them to us in writing.
If this is software, software documentation, data (as defined in the Federal Acquisition Regulation), or
related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the
U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated
software, any programs embedded, installed, or activated on delivered hardware, and modifications
of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed
by U.S. Government end users are "commercial computer software," "commercial computer software
documentation," or "limited rights data" pursuant to the applicable Federal Acquisition Regulation and
agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display,
disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs
(including any operating system, integrated software, any programs embedded, installed, or activated
on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/
or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in
the applicable contract. The terms governing the U.S. Government's use of Oracle cloud services
are defined by the applicable contract for such services. No other rights are granted to the U.S.
Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and
2
MySQL Connector/ODBC Release Notes
other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any
damages caused by use of this software or hardware in dangerous applications.
Trademark Notice
Oracle, Java, MySQL, and NetSuite are registered trademarks of Oracle and/or its affiliates. Other
names may be trademarks of their respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC
trademarks are used under license and are trademarks or registered trademarks of SPARC
International, Inc. AMD, Epyc, and the AMD logo are trademarks or registered trademarks of Advanced
Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content,
products, and services from third parties. Oracle Corporation and its affiliates are not responsible
for and expressly disclaim all warranties of any kind with respect to third-party content, products,
and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to
your access to or use of third-party content, products, or services, except as set forth in an applicable
agreement between you and Oracle.
This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the
following terms:
You may create a printed copy of this documentation solely for your own personal use. Conversion
to other formats is allowed as long as the actual content is not altered or edited in any way. You shall
not publish or distribute this documentation in any form or on any media, except if you distribute the
documentation in a manner similar to how Oracle disseminates it (that is, electronically for download
on a Web site with the software) or on a CD-ROM or similar medium, provided however that the
documentation is disseminated together with the software on the same medium. Any other use, such
as any dissemination of printed copies or use of this documentation, in whole or in part, in another
publication, requires the prior written consent from an authorized representative of Oracle. Oracle and/
or its affiliates reserve any and all rights to this documentation not expressly granted above.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program
website at
http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
• Bugs Fixed
3
MySQL Connector/ODBC Release Notes
The new openid-token-file connection option defines a path to a file containing the JWT
formatted identity token. (WL #16436)
• The RPM and DEB packages now install a copy of the MySQL client library plugins for the
connector. The version of these plugins match the version of the statically linked MySQL client
library.
The connector installed from RPM and DEB packages use the bundled plugins as needed without
requiring the PLUGIN_DIR connection option, although the PLUGIN_DIR connection option is still
available to change the plugin location. Runtime dependencies required by the plugins, such as
Kerberos and LDAP libraries, are expected on the system and installed from their own packages.
(WL #16457)
Bugs Fixed
• The Generic Linux TGZ package did not bundle all client-side authentication plugins. (Bug
#36972449)
• Fixed a potential Out of Bounds (OOB) issue related to escaping large queries. (Bug #36955942)
• Fixed a memory leak that occurred when emitting SQL_DATE errors. (Bug #18531881)
• The internal mysql_init() function used for making connections is now thread safe. (Bug
#115710, Bug #36894687)
• Having a number of bound parameters greater than the number of placeholders in the corresponding
SQL query could emit an error, as the statement had to be prepared and executed more than once.
(Bug #115584, Bug #36841317)
• When connected to a MySQL 5.7 server, queries using bound parameters would not succeed
and emitted a "No data supplied for parameters in prepared statement" error. (Bug #115531, Bug
#36828312)
• With the prefetch connection option set to a non-zero value, large queries could cause the
connector to unexpectedly halt. (Bug #113554, Bug #36945554)
• Fixed the SQLBulkOperations() function's generated WHERE clause, which could potentially
cause an application to unexpectedly halt. (Bug #69194, Bug #18641963, Bug #26474373)
• Bugs Fixed
4
MySQL Connector/ODBC Release Notes
• Added support for the VECTOR data type that was introduced in MySQL Enterprise Server 9.0.0. (WL
#16171)
• The charset connection option is now deprecated for the Unicode driver, and setting it to a non-
empty value via SQLConnect() or SQLDriverConnect() emits a warning. The connection is still
successful. (WL #16311)
• As of this release, the base name of the driver modules is changed to myodbc9. (WL #16382)
Bugs Fixed
• On Windows, the MSI installation location now defaults to "C:\Program Files\MySQL\MySQL
Connector ODBC X.Y" instead of "C:\Program Files\MySQL\Connector ODBC X.Y" where X.Y is
the series number, such as 9.0. This change aligns MySQL Connector/ODBC with other MySQL
products. (Bug #36681453)
• Since 8.2.0, the SQLConnect() function's parameter values did not override values defined in the
DSN. Now the SQLConnect() values are prioritized except for SQLConnect() values defined as
NULL. (Bug #36605973)
• Bugs Fixed
Security Notes
• For platforms on which Connector/ODBC utilizes MySQL Server's bundled OpenSSL library
(MacOS, Windows, and GenLinux), MySQL Server's linked OpenSSL library was updated to version
3.0.13. Issues fixed in OpenSSL version 3.0.13 are described at https://openssl-library.org/news/
openssl-3.0-notes/. (Bug #36278301)
• Removed support for the deprecated authentication_fido authentication plugin. Instead, use
authentication_webauthn. (WL #16155)
• Setting query attributes for executed queries now supports prepared statements in SSPS mode. (WL
#15967)
Bugs Fixed
• Unchecking the "Disable schema support" (NO_SCHEMA) option in the ODBC connection
editor would remove (unset) the value rather than set it to 0, which meant that reloading the
ODBC connector editor would revert it to the default value of 1. Now both NO_SCHEMA and
NO_CATALOG are always set to either 0 or 1. (Bug #36238361)
• Fixed build errors to adhere to the C99 standard, which GCC 14 now enforces.
Our thanks to Christopher Fore for this contribution. (Bug #113766, Bug #36228848)
5
MySQL Connector/ODBC Release Notes
• Not all packaged files contained digital signatures. (Bug #113538, Bug #36150212)
• Could not execute parameterized stored procedures using syntax that contained curly brackets. (Bug
#112285, Bug #35790175)
• Changing position in the row set with SQLSetPos() would not update the lengths, which could cause
SQLGetData() to retrieve less data than expected. (Bug #61991, Bug #26474471)
• Bugs Fixed
MySQL Server 8.3.0 removed auto-reconnect support after deprecating it in versions 8.0.34 and
8.1.0. (WL #15978)
• Improved OpenTelemetry support to propagate context when executing prepared statements. (WL
#15960)
Bugs Fixed
• ADODB.Recordset.Open() reported a transaction error when a string type was used with prepared
statements. The fix was changing the SQL_MAX_CONCURRENT_ACTIVITIES value from 1 to 0
(unlimited). (Bug #36031548)
• Bugs Fixed
• Improved OpenTelemetry support. This includes adding spans for preparing and executing prepared
statements, and adding connection span attributes such as db.user. (WL #15807)
Bugs Fixed
• Setting SQL mode to ANSI_QUOTES on the MySQL server caused the SQLColumns() method to not
function. (Bug #35660375)
• Using the SJIS character set with the ANSI Driver could cause the connection to hang. (Bug
#35520983)
6
MySQL Connector/ODBC Release Notes
• The SQLStatistics() function returned the wrong type for a PRIMARY KEY index. It now returns
SQL_INDEX_OTHER instead of 0. (Bug #35504650)
• Selecting the Character Set dropdown under Details while creating a new Data Source
Configuration in the GUI would unexpectedly halt the application if the credential fields were empty or
invalid. (Bug #110900, Bug #35356536)
• Bugs Fixed
Update: Connector/ODBC offers a 32-bit 8.0.x version that also contains bug fixes.
Bugs Fixed
• Fixed a memory leak generated by reading data. (Bug #111036, Bug #35491247)
• The internal mysql_init() function used for making connections is now thread safe. (Bug
#115710, Bug #36894687)
• With the prefetch connection option set to a non-zero value, large queries could cause the
connector to unexpectedly halt. (Bug #113554, Bug #36945554)
• Fixed the SQLBulkOperations() function's generated WHERE clause, which could potentially
cause an application to unexpectedly halt. (Bug #69194, Bug #18641963, Bug #26474373)
7
MySQL Connector/ODBC Release Notes
Security Notes
• For platforms on which Connector/ODBC utilizes MySQL Server's bundled OpenSSL library
(MacOS, Windows, and GenLinux), MySQL Server's linked OpenSSL library was updated to version
3.0.13. Issues fixed in OpenSSL version 3.0.13 are described at https://openssl-library.org/news/
openssl-3.0-notes/. (Bug #36278301)
• Using the SJIS character set with the ANSI Driver could cause the connection to hang. (Bug
#35520983)
• The SQLStatistics() function returned the wrong type for a PRIMARY KEY index. It now returns
SQL_INDEX_OTHER instead of 0. (Bug #35504650)
• Fixed a memory leak generated by reading data. (Bug #111036, Bug #35491247)
• Selecting the Character Set dropdown under Details while creating a new Data Source
Configuration in the GUI would unexpectedly halt the application if the credential fields were empty or
invalid. (Bug #110900, Bug #35356536)
• Bugs Fixed
8
MySQL Connector/ODBC Release Notes
Also moved "OCI Config File" from the "Connection" tab to the "Authentication" tab in the GUI next to
the new "OCI Config Profile" option. (WL #15482)
• Improved JSON data character support by presenting JSON columns as utf8mb4 strings instead of
binary data. This change also affected the following ODBC functions:
• DATA_TYPE (column #5) and SQL_DATA_TYPE (column #14) are now SQL_LONGVARCHAR
or SQL_WLONGVARCHAR depending on the driver type (ANSI or UNICODE); previously it was
always SQL_LONGVARCHAR.
• COLUMN_SIZE (column #7) and BUFFER_LENGTH (column #8) are now 4294967295;
previously they were NULL.
• The SQL_DESC_DISPLAY_SIZE field identifier returns 1073741823; previously it was -2. It's
calculated as 4G/(UTF8MB4_SIZE).
• The SQL_DESC_TYPE_NAME field identifier returns the type name as a character string "JSON";
previously it was a garbled string.
(WL #15423)
Bugs Fixed
• Packaging: Improved the MSI installer compatibilities so that driver versions for different
architectures are no longer interdependent. All dependency libraries and executables are installed
with the driver, a driver can be installed in a non-default directory, and driver architecture and
licensing information is now visible in the list of installed applications. (Bug #35084016)
• When using client-side prepared statements (NO_SSPS=1), a _utf8mb4 prefix was added to string
data sent from the client side even if utf8mb4 was already defined as the character set. Unnecessary
prefixes were removed. (Bug #35075941)
• On macOS, Connector/ODBC now locates iODBC libraries installed via Homebrew. (Bug
#34529199)
• JSON column data was not properly translated; the data is now interpreted as UTF8MB4 instead of
BINARY. A workaround was to cast the JSON column as CHAR. (Bug #33353465)
9
MySQL Connector/ODBC Release Notes
• With using ADO/VB6, updating a record set containing a field of type BIT with cursor location
adUseServer could emit an error. The connector now marks BIG(N>1) columns as not searchable to
exclude them from WHERE clauses produced by ADO/VB6. As before, type BIT is still reported as
ODBC type SQL_BINARY to preserve backwards compatibility. (Bug #16590994)
• Improved prepared statement performance by decreasing the frequency of setlocale() calls used to
enforce the '.' character as a decimal separator. (Bug #107745, Bug #34350417)
• Renamed compare() to parser_compare() in the parser module to avoid a symbol collision with the
XSB ODBC interface. (Bug #70493, Bug #26474343)
• Bugs Fixed
Compilation Notes
• Connector/ODBC now provides generic Linux packages for ARM architecture (64 bit), in addition to
the generic Linux packages for Intel architecture (both 32 and 64 bits). All generic Linux packages
are built using the GNU C Library version 2.28. (WL #15478)
Bugs Fixed
• Adding a 64-bit MySQL ODBC ANSI System Data Source via the ODBC Data Source Administrator
would yield this error while testing the connection via the GUI: "Connection failed with the following
error: [MySQL]ODBC 8.0(a) Driver]String data, right truncated.[010040]." (Bug #34786939)
• Upgraded Cyrus SASL to version 2.1.28, which has been publicly reported as not vulnerable to
CVE-2022-24407. (Bug #34680978)
• SQLColumns() would use prepared statements with NO_SSPS=1. (Bug #108126, Bug #34643065)
• The MySQL ODBC driver would report the incorrect DATA_TYPE value for DATETIME when calling
SQLColumns(). The correct concise type for DATETIME is SQL_TYPE_TIMESTAMP, and this is
now used instead of the verbose type SQL_DATETIME. (Bug #107235, Bug #34291904)
10
MySQL Connector/ODBC Release Notes
• Security Notes
• Bugs Fixed
Security Notes
• For platforms on which Connector/ODBC utilizes MySQL Server's bundled OpenSSL library (MacOS,
Windows, and GenLinux), MySQL Server's linked OpenSSL library was updated to version 1.1.1q.
Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt
and https://www.openssl.org/news/vulnerabilities.html. (Bug #34414691)
• Removed the deprecated NO_I_S connection option; usage is ignored and does not trigger an error
or warning. (WL #15150)
• Added the ssl-crl and ssl-crlpath connection options to configure the Certificate Revocation
List (CRL) list. (WL #14880)
Bugs Fixed
• Converting binary data to binhex with SQLGetData() would unexpectedly halt on the 2nd call to
SQLGetData() when the buffer size was smaller than the data size. (Bug #34486645)
• Now the connection collation can now be specified via INITSTMT; when before setting it was
overridden by the ODBC driver. (Bug #34020457)
• With the ANSI ODBC driver, a call to SQLColumns returned the Unicode DATA_TYPE equivalent;
SQL_WVARCHAR instead of SQL_VARCHAR, SQL_WCHAR instead of SQL_CHAR, and
SQL_WLONGVARCHAR instead of SQL_LONGVARCHAR. (Bug #107766, Bug #34355094)
• Improved query parameter support and performance with prepared statements. (Bug #107745, Bug
#34350417)
• Added a test case for a Server bug that was fixed in MySQL Server 8.0.31; its release note is as
follows:
A prepared statement with parameters could fail to update a row, but the same statement with the
same data did update the row when issued as a query. The fix for the problem is to assign a default
data type to the parameters, although this can be inefficient because there is no context available for
data type propagation and a character string type is given implicitly. In this case, the best practice
is to wrap such parameter declarations in CAST clauses that supply the desired data types. (Bug
#105013, Bug #33401384)
• Compilation Notes
11
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Authentication Notes
• Password parameters escaped with curly braces did not escape right curly braces in the password
value. (Bug #106631, Bug #33986051)
• The driver's default character set changed to utf8mb4. Previously it defaulted to utf8, which is an
alias to the deprecated utf8mb3. Using utf8mb3 could cause problems, like incorrectly inserting and
selecting emojis. (Bug #107698, Bug #34031488, Bug #34350980)
Compilation Notes
• Improved the RPM/DEB/MSI packages. For RPM/DEB: now either GTK2 or GTK3 are prerequisites
(previously it required both), and the -setup package is now set to recommended. For Windows:
stopped importing libraries (such as myodbc8a.lib) and only include DLLs, and stopped including
PDB debug files. Also improved BUNDLE_DEPENDENCIES and MAINTAINER_MODE CMake
options to check if the required bundled plugins and 3rd party libraries are present. (WL #14945)
tls-versions accepts TLSv1.2 and/or TLSv1.3. Other values generate an error. Example usage:
tls-versions=TLSv1.2,TLSv1.3. The value is set by libmysqlclient if not set, and has no effect with
ssl-mode=DISABLED. The option overrides (disables) the related NO_TLS_X_Y Connector/ODBC
connection options, such as NO_TLS_1_2.
Related, TLSv1 and TLSv1.1 support was removed from MySQL Server 8.0.28. (WL #14876)
Bugs Fixed
• The SQL_C_DOUBLE type could return as an inaccurate result with NO_CACHE enabled. (Bug
#107307, Bug #34180568)
• Fixed memory leak caused by ODBC data source reconnects; now mysql_library_end() is called
upon the DLL_PROCESS_DETCH event.
The workaround is to reuse ENV for each new connection. (Bug #106886, Bug #34030930)
• SQLCancel() was not thread safe; it and other ODBC API functions are now thread safe. (Bug
#91951, Bug #105606, Bug #33884811)
12
MySQL Connector/ODBC Release Notes
• Bugs Fixed
Security Notes
• For platforms on which Connector/ODBC utilizes MySQL Server's bundled OpenSSL library (MacOS,
Windows, and GenLinux), MySQL Server's linked OpenSSL library was updated to version 1.1.1n.
Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt
and https://www.openssl.org/news/vulnerabilities.html. (Bug #33987635)
Bugs Fixed
• Extended SQLGetTypeInfo() to return results for Unicode wide character type IDs, such as
SQL_WCHAR, when before only their corresponding ANSI character type IDs such as SQL_CHAR
returned results. (Bug #33772516)
• On Windows, installing the driver to a custom location made setting PLUGIN_DIR required to
find bundled plugins. Now the directory location is used to determine the plugin directory unless
PLUGIN_DIR is specified. (Bug #33720924)
• The ODBC driver would unexpectedly halt when connecting to accounts that required client-side
authentication plugins if those plugins depended on 3rd-party libraries (such as authentication_fido
and libfido2.dll) that could not be found or loaded. Now it reports an error instead. (Bug #33702043)
• The SQLColumns() function result included the length qualifier for some types, such as char(16)
instead of char. (Bug #33599093)
• With prepared statements and NO_CACHE=1, having a NULL value in a row column would nullify
a value in the same column of the next row. This produced an incorrect value giving NULL where a
non-value was expected. (Bug #106683, Bug #33951069)
• When a Catalog or Schema is not specified, and if a table with the same name and set of columns
existed in another database, SQLColumns() would return data from multiple databases instead of
only the current database. In this case, MS Access would yield an error as the database name was
not checked for. Now only data from the current database is returned, unless specifically specified.
(Bug #106204, Bug #33788407)
• On Windows, the ODBC GUI dialog did not display all available inputs; so the dialog window size
was increased accordingly. (Bug #106013, Bug #33624658)
• Bugs Fixed
13
MySQL Connector/ODBC Release Notes
The associated NO_TLS_1_0 and NO_TLS_1_1 connection parameters were removed. (WL
#14817)
Bugs Fixed
• Microsoft Access could unexpectedly halt when browsing MySQL linked tables when columns in
the tables had gaps; and for roughly 100+ record tables as the ODBC driver was incorrectly using
memory allocating functions from libmysqlclient. (Bug #33557670, Bug #105503)
• For platforms on which Connector/ODBC utilizes MySQL Server's bundled OpenSSL library (MacOS,
Windows, and GenLinux), MySQL Server's linked OpenSSL library was updated to version 1.1.1L.
Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt
and https://www.openssl.org/news/vulnerabilities.html. (Bug #33309900)
• Bugs Fixed
To ensure correct account mapping, the client-side Oracle Cloud Infrastructure configuration must
contain a fingerprint of the API key to use for authentication (fingerprint entry) and the location
of a PEM file with the private part of the API key (key_file entry). Both entries should be specified
in the [DEFAULT] profile of the configuration file.
Unless an alternative path to the configuration file is specified with the new OCI_CONFIG_FILE
connection option, the following default locations are used:
If the MySQL user name is not provided as a connection option, then the operating system
user name is substituted. Specifically, if the private key and correct Oracle Cloud Infrastructure
configuration are present on the client side, then a connection can be made without giving any
options. (WL #14709)
14
MySQL Connector/ODBC Release Notes
• In Connector/ODBC 8.0.26, the capability was introduced for applications that use the classic
MySQL connections for accounts that use the authentication_kerberos server-side
authentication plugin, provided that the correct Kerberos tickets are available or can be obtained
from Kerberos. That capability was available on client hosts running Linux only. It is now available on
client hosts running Windows.
For more information about Kerberos authentication, see Kerberos Pluggable Authentication. (WL
#14681)
Bugs Fixed
• Changed the NO_SCHEMA default value from 0 to 1. It's enabled to behave like in the older versions
the ODBC driver to not accept schema parameters and not declare support for schema functions.
(Bug #33300344, Bug #32925338, WL #14490)
• The MSI installation package did not install plugin libraries present in the Zip package, such as
fido_client, kerberos_client, and ldap_sasl_client. (Bug #33269861)
• Fixed the internal character set conversions of string data inside the driver; some UTF8MB4
characters were not properly converted. (Bug #33241697, Bug #104346)
• The ODBC driver can now load plugins from their default location without need to specify the plugins
directory using the PLUGIN_DIR connection option. (Bug #33134373)
• Added logic to correctly detect OUT/INOUT parameters from a stored procedure, as a workaround to
a libmysqlclient issue. (Bug #30578291)
• The second call to a stored procedure failed if the statement was closed after the results of the first
call had been received. (Bug #29042032, Bug #93378)
• Bugs Fixed
• Deprecated the NO_I_S connection option, an option to get metadata without the
information_schema by using SHOW statements. Setting NO_I_S=1 with SQLConnect() or
SQLDriverConnect() now return SQL_SUCCESS_WITH_INFO instead of SQL_SUCCESS, and they
a deprecation warning retrievable by SQLGetDiagRec(). (WL #14586)
• Added the ability to connect to MySQL server accounts that use the authentication_kerberos
plugin, including support for user-less and password-less Kerberos authentications. Connector/
ODBC utilizes the MySQL client library for this functionality. (WL #14441)
15
MySQL Connector/ODBC Release Notes
Bugs Fixed
• Fixed help (documentation) links in the ODBC Driver GUI. (Bug #32880421)
• Attempting to update a row with an existing unique key would not emit a diagnostic error that
reported the problem, such as "Duplicate Entry". (Bug #32763378, Bug #103287)
• Systems with both GTK versions 2 and 3 could cause the UnixGUI to unexpectedly halt when using
the MySQL GUI module. Now, separate GTK modules exist for each version as the two can't co-exist
in the same process. (Bug #32623180)
A workaround was to either use the NO_I_S=1 connection option or enable "Don't use
INFORMATION_SCHEMA for metadata" from the ODBC Data Source Administrator. (Bug
#32612467, Bug #102891)
• Fixed insert_params() code to use the __LOCALE_SET and __LOCALE_RESTORE macros rather
than setlocale directly. (Bug #32610685, Bug #102871)
• Setting NO_CACHE=1 in the ODBC connection string would cause function errors to go undetected.
(Bug #27499789, Bug #89542)
• Bugs Fixed
Security Notes
• For platforms on which Connector/ODBC utilizes MySQL Server's bundled OpenSSL library (MacOS,
Windows, and GenLinux), MySQL Server's linked OpenSSL library was updated to version 1.1.1k.
Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt
and https://www.openssl.org/news/vulnerabilities.html. (Bug #32719727)
In such cases, the server now writes the reason to the connection before closing it, and the
client receives a more informative error message: The client was disconnected by the server
because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
(ER_CLIENT_INTERACTION_TIMEOUT).
16
MySQL Connector/ODBC Release Notes
The previous behavior still applies for client connections to older servers and connections to the
server by older clients. (WL #14426)
• If a classic MySQL protocol connection experiences a server timeout, Connector/ODBC now reports
more precise disconnection information from the server. (WL #14426)
Bugs Fixed
• Setting PAD_SPACE=1 did not cause CHAR columns to be padded with spaces to their full length,
which prevented the MSSQL linked server from working with ENUM and CHAR columns in the
MySQL Database. (Bug #32537000)
• The ODBC SQLProcedureColumns function returns incomplete results, fetches after usage would
only return the first 40 parameters.
The workaround was to increase the group_concat_max_len size, for example 'group-concat-
max-len = 1000000' under [mysqld]. (Bug #32504915, Bug #102589)
• Passing a query without parameters to SQLPrepare() would not prepare anything. In some scenarios
it would immediately execute such a query, which would be the same as calling the SQLExecDirect()
function. In other scenerios it executed without preparing by the using the SQLExecute() function.
This could lead towards abnormally long query times. Now, the driver enforces preparation of the
statement by the SQLPrepare() function even if the query has no parameters. (Bug #32079486)
• Connector/ODBC report ENUM columns as SQL_CHAR as the ODBC standard does not support
ENUM, and MS SQL Server expects CHAR data to always be the same fixed length as specified in
the column definition. This fixes errors related to new line and tab symbols present in the UNICODE
version of the driver. The workaround is to enable SSPS (default) by not setting NO_SSPS=1. (Bug
#28783266, Bug #92748)
• Bugs Fixed
The SASL module required for LDAP/SCRAM-SHA256 is provided by the cyrus-sasl-scram RPM
package and libsasl2-modules-gssapi-mit DEB package (the same package that provides modules
for LDAP/GSSAPI/Kerberos). (WL #14250)
Bugs Fixed
• Using the commercial glib package (authentication_ldap_sasl) with auth using GSSAPI
(authentication_ldap_sasl_auth_method_name='GSSAPI') did not function. Added the missing sasl2
modules package. (Bug #32175842)
17
MySQL Connector/ODBC Release Notes
• On Debian based systems, the post-installation script uses dpkg-architecture ODBC drivers
path, so the associated dpkg-dev package was added as a runtime dependency. (Bug #32157740)
• Double and Float values could differ depending if the query was standard or utilized server side
prepared statements. Standard used MSYSQL_ROW for non-binary data to represent them as
character strings, whereas server side prepared statements used the MYSQL_BIND structure and
the specific MySQL type which could lead towards inconsistent results. Now this is performed in a
uniform way to yield the same results. (Bug #32135124, Bug #98946)
• Microsoft Access halted when opening a linked table with only a JSON column. The JSON column
type is now supported, and JSON data is only editable if another column is used as a primary key.
Because JSON is a long data type with the maximum length of 4GB, it can't be used as a primary
key by Microsoft Access and therefore tables having only JSON columns are only available in read-
only mode. (Bug #32114901)
• On macOS, Connector/ODBC would not report an error if SQL_ATTR_PARAMSET_SIZE was set but
not supported; instead the setting was ignored. (Bug #29862441, Bug #95608)
• Bugs Fixed
(WL #13883)
• Connections made using the MySQL Enterprise Edition SASL LDAP authentication plugin now are
supported on Windows and Linux, but not on macOS. Connector/ODBC implements the SCRAM-
SHA-1 authentication method of the SASL authentication protocol. (WL #14114)
Bugs Fixed
• Fixed an issue where a parameterized query could cause memory corruption. (Bug #31678876, Bug
#100329)
18
MySQL Connector/ODBC Release Notes
• Under some circumstances when using server-side prepared statements, the first row of a multi-
row match was not returned with the result; while it was returned when using client-side prepared
statements instead. (Bug #31373948, Bug #95423)
• Inserting binary data (BLOBs) using SQLPutData() would report a syntax error. (Bug #31349038)
• Bugs Fixed
Security Notes
• For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for Connector/
ODBC has been updated to version 1.1.1g. Issues fixed in the new OpenSSL version are described
at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html.
(Bug #31296688)
Bugs Fixed
• The MSI installer now checks for the Visual 2019 C++ runtime, and aborts if this required runtime is
not installed.
This is also the first version that requires Visual 2019 C++ runtime, when before the 2017 version
was also supported. (Bug #31102234, WL #13564)
• Only a single value was being inserted instead of the array, with SQLParamOptions. (Bug
#30591722)
• The SUM aggregate function did not function with ADO. (Bug #30277891, Bug #96642)
• Bugs Fixed
Bugs Fixed
• When using SQL_C_WCHAR with SQLGetData, binary data was not returned correctly as its
hexacecimal representation. Related, using SQL_C_CHAR with SQLGetData did return binary data
as hex. (Bug #28864788, Bug #92429)
• When binding an SQL_BIT type column to the SQL_C_CHAR type, SQLFetchScroll would return the
values as an integer instead of a char. (Bug #28484784, Bug #91904)
19
MySQL Connector/ODBC Release Notes
• Bugs Fixed
To automatically resolve any SRV record available in a target DNS server or service discovery
endpoint, specify ENABLE_DNS_SRV=1 in the DSN; the host is passed for SRV lookup
without a port and with a full lookup name. For example: DRIVER={MySQL ODBC 8.0
Driver};SERVER=_mysql._tcp.foo.abc.com;ENABLE_DNS_SRV=1;USER=user;PWD=passwd; (WL
#13403)
• Confirmed support for compiling with VS2019, and for supporting the Visual C++ 2019
redistributable. (WL #13564)
• When creating a new connection using the classic MySQL protocol, multiple hosts can be tried until
a successful connection is established. A list of hosts can be given in a connection string, along
with passing MULTI_HOST=1 to to enable this functionality. The connection string looks similar to
SERVER=address1[:port1],address2[:port2]....;MULTI_HOST=1;.
Other notes: the default port is used if port is not specified, the connector randomly picks hosts, and
if a host fails then a new host is chosen. An error is returned if SERVER contains multiple hosts
when MULTI_HOST is not enabled. (WL #13323)
Bugs Fixed
• With prepared SELECT statements the fixed-length numeric types such as INT were set to 0 instead
of their stored value, if a textual field was also part of the SELECT statement. (Bug #30428851, Bug
#97191)
• Connector/ODBC failed to compile when dynamically linking to the MySQL client library
(MYSQLCLIENT_STATIC_LINKING=0); due to a mismatch between an internal copy of the library
headers and the version of code implementing the library internals. (Bug #30292290, Bug #96835)
For example, if a stored procedure had one or more parameters then an incomplete result set could
be returned. (Bug #29467224, Bug #94623)
• On Linux, memory was leaked on each server connection attempt due to how mysql_server_end
was implemented and executed. (Bug #26194929)
20
MySQL Connector/ODBC Release Notes
Thanks to Jacques Germishuys for the patch. (Bug #24814467, Bug #83297)
• Bugs Fixed
Bugs Fixed
• The myodbc-installer command line utility did not display all DSN options. (Bug #29753227)
• On Windows, building and installing from source could yield a binary that would not execute due to a
case-sensitivity issue in the CMake logic. (Bug #29210040)
• An exception was emitted when fetching contents of a BLOB/TEXT records after executing a
statement as a server-side prepared statement with a bound parameter.
The workaround is not using parameters or specifying NO_SSPS=1 in the connection string; this
allows the driver to fetch the data. (Bug #29282638, Bug #29512548, Bug #28790708, Bug #93895,
Bug #94545, Bug #92078)
The connection string overrides the DSN value if both are set. (WL #12394, WL #12477)
• MySQL Connector/ODBC is now compatible with MSVC 2017, while retaining compatibility with
MSVC 2015:
• Previously, Connector/ODBC binary distributions were compatible with projects built using MSVC
2015. Binary distributions now are compatible with projects built using MSVC 2017 or 2015.
21
MySQL Connector/ODBC Release Notes
• Previously, Connector/ODBC source distributions could be built using MSVC 2015. Source
distributions now can be built using MSVC 2017 or 2015.
• Previously, the MSI installer accepted the Visual C++ Redistributable for Visual Studio 2015. The
MSI installer now accepts the Visual C++ Redistributable for Visual Studio 2017 or 2015.
(WL #12640)
• Two informative text files were added: INFO_BIN contains information about the build environment
used to produce the distribution, and INFO_SRC provides information about the product version and
the source repository from which the distribution was produced. Source distributions include the
INFO_SRC file only. (WL #12373)
• Bugs Fixed
Bugs Fixed
• Fixed column metadata handling with Microsoft Access. (Bug #28670725, Bug #91856)
• The following obsolete options were removed: NO_SCHEMA (use NO_CATALOG instead),
DISABLE_SSL_DEFAULT (use SSLMODE instead), and SSL_ENFORCE (use SSLMODE instead).
(Bug #28407520)
• The ODBC Driver returned 0 for the SQL_MAX_SCHEMA_NAME_LEN attribute, and now returns 64
as the maximum length for a MySQL schema name. (Bug #28385722)
• Because the MySQL ODBC driver ignored the SQL_RD_OFF value for the
SQL_ATTR_RETRIEVE_DATA attribute, it incorrectly kept writing into the data buffers. This led to
write access violation errors when data was written into the buffer when the user application explicitly
requested not to write there. (Bug #28098219, Bug #91060)
• Bugs Fixed
• Refactored codebase to remove legacy code and implement general performance improvements.
For example, unused ANSI data conversion code and legacy functions were removed. Example
improvements affect bookmark handling for bulk operations, handling of memory buffers for prepared
statements, and handling of session variables. (WL #11994)
• On Windows, 32-bit support was added and 32-bit binaries are now available. (WL #12139)
22
MySQL Connector/ODBC Release Notes
• An RPM package for installing ARM 64-bit (aarch64) binaries of Connector/ODBC on Oracle Linux 7
is now available in the MySQL Yum Repository and for direct download.
Known Limitation for this ARM release: You must enable the Oracle Linux 7 Software Collections
Repository (ol7_software_collections) to install this package, and must also adjust the libstdc++7
path. See Yum's Platform Specific Notes for additional details.
Bugs Fixed
• Added checks for unsupported functionality that return SQL_ERROR instead of SQL_SUCCESS,
where the error message refers to the unsupported functionality. (Bug #28217387)
• The data source dependent type's name was not always returned. For example, the ODBC driver
reported TEXT as the database type for TINYTEXT, MEDIUMTEXT, and LONGTEXT, and reported
BLOB for TINYBLOB, MEDIUMBLOB, and LONGBLOB. (Bug #11761407, Bug #53900)
Connector/ODBC 8.0.11 is the first release to use the new numbering. It was branched from
Connector/ODBC 5.3.10.
The Connector/ODBC 8.0 series also adds full MySQL Server 8.0 support.
• A new OpenSSL runtime dependency was added that must be present on the target system where
the connector is used. For some platforms it is assumed that a system-wide OpenSSL is available,
for others, such as Windows and macOS, these required OpenSSL libraries are bundled in the
binary packages. (WL #11099)
• Packaging was modified for the new MySQL Connector/ODBC 8 series. For example, the Connector/
ODBC 5.x ODBC driver has a file named myodbc5w.dll, whereas this same ODBC driver is named
myodbc8w.dll for the Connector/ODBC 8.x series. The sample .ini file also references these new
file names. (WL #11661)
Index
A
authentication, 11
authentication plugins, 10
C
cmake, 11
collations, 11
compiling, 10, 11
23
MySQL Connector/ODBC Release Notes
D
deprecation, 13, 15
E
encryption, 5, 8, 10, 11, 12, 13, 16, 19
F
FIDO pluggable authentication, 11
I
Important Change, 7
M
mysql_native_password, 5
O
OpenSSL, 5, 8, 10, 12, 13, 16, 19
P
Packaging, 6, 8, 10
packaging, 6, 7, 8, 10, 10
S
SSL, 5, 8, 10, 11, 12, 13, 16, 19
T
TLS, 10, 11
W
windows, 6, 8, 10
24