MySQL Connector/C++ 1.1.12 has been released

Dear MySQL Users,

A new GA (general availability) version of MySQL Connector/C++ has
been made available: MySQL Connector/C++ 1.1.12 GA. The MySQL
Connector/C++ provides a C++ API for connecting client applications to
the MySQL Server 5.5 or newer.

You can download the production release at:

http://dev.mysql.com/downloads/connector/cpp/1.1.html

MySQL Connector C++ (Commercial) will be available for download on the
My Oracle Support (MOS) website. This release will be available on
eDelivery (OSDC) in next month’s upload cycle.

The MySQL driver for C++ offers an easy to use API derived from JDBC
4.0. MySQL Workbench has used it successfully for years.

We have improved the driver since the last GA release. Please see the
documentation and the CHANGES file in the source distribution for a
detailed description of bugs that have been fixed. Bug descriptions are
also listed below.

Enjoy!

Changes in MySQL Connector/C++ 1.1.12 (2019-01-28, General
Availability)


Compilation Notes

     * Connector/C++ now compiles against MySQL 5.5 and 5.6.
       Thanks to Marco Busemann for the patch. (Bug #28280066,
       Bug #91529)

Security Notes

     * Connector/C++ now supports the improvements to named-pipe
       access control implemented for MySQL Server and controlled by the
       named_pipe_full_access_group system variable.

Bugs Fixed

     * Compiling Connector/C++ from source using dynamic linking
       resulted in link errors for the mysql_sys and mysql_strings
       libraries. (Bug #27961505, Bug #90727)

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL Connector/ODBC 5.3.12 has been released

Dear MySQL users,

MySQL Connector/ODBC 5.3.12, a new version of the ODBC driver for the
MySQL database management system, has been released.

The available downloads include both a Unicode driver and an ANSI
driver based on the same modern codebase. Please select the driver
type you need based on the type of your application – Unicode or ANSI.
Server-side prepared statements are enabled by default. It is suitable
for use with any MySQL version from 5.5.

This is the sixth release of the MySQL ODBC driver conforming to the
ODBC 3.8 specification. It contains implementations of key 3.8
features, including self-identification as a ODBC 3.8 driver,
streaming of output parameters (supported for binary types only), and
support of the SQL_ATTR_RESET_CONNECTION connection attribute (for the
Unicode driver only).

The release is now available in source and binary form for a number of
platforms from our download pages at

http://dev.mysql.com/downloads/connector/odbc/5.3.html

For information on installing, please see the documentation at

http://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation.html



Changes in MySQL Connector/ODBC 5.3.12 (2019-01-28, General Availability)

Functionality Added or Changed


     * A new ENABLE_LOCAL_INFILE connection option was added to
       the connection string, DSN, and GUI. Disabled by default,
       set ENABLE_LOCAL_INFILE=1 to enable LOAD DATA operations.
       This toggles the MYSQL_OPT_LOCAL_INFILE mysql_options()
       option.
       The connection string overrides the DSN value if both are
       set.

Bugs Fixed


     * Dynamic linking (-DCLIENT_STATIC_LINKING:BOOL=false) was
       not functioning, and updating to the most recent MySQL
       Server 5.7 headers restored this functionality. 
       (Bug #28609434, Bug #92319, Bug #91841)

     * Calling SQLBulkOperations with no_ssps set to 0 and
       cursortype set to SQL_CURSOR_DYNAMIC would cause an
       unexpected halt when using the generic Linux binaries.
       (Bug #28289320)


On Behalf of Oracle/MySQL Release Engineering Team,
Balasubramanian Kandasamy

MySQL Connector/NET 8.0.14 has been released

Dear MySQL users,
 
MySQL Connector/NET 8.0.14 is the second version to support
Entity Framework Core 2.1 and the fourth general availability release
of MySQL Connector/NET to add support for the new XDevAPI, which
enables application developers to write code that combines the
strengths of the relational and document models using a modern,
NoSQL-like syntax that does not assume previous experience writing traditional SQL.
 
To learn more about how to write applications using the XDevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/index.html. For more
information about how the XDevAPI is implemented in Connector/NET, see
http://dev.mysql.com/doc/dev/connector-net. NuGet packages provide functionality at a project level. To get the full set of features available in Connector/NET such as availability in the GAC, integration with Visual Studio's Entity Framework Designer
and integration with MySQL for Visual Studio, installation through
the MySQL Installer or the stand-alone MSI is required.
 
Please note that the XDevAPI requires at least MySQL Server version
8.0 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/8.0/en/document-store.html.
 
To download MySQL Connector/NET 8.0.14, see
http://dev.mysql.com/downloads/connector/net/
 
Installation instructions can be found at
https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html

Changes in MySQL Connector/NET 8.0.14 (2019-01-21)


On Behalf of MySQL Release Engineering Team,
Surabhi Bhat

MySQL Connector/C++ 8.0.14 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.14 is a new release version of the MySQL Connector/C++ 8.0 series.

Connector/C++ 8.0 can be used to access MySQL implementing Document Store or in a traditional way, using SQL queries. It allows writing both C++ and plain C applications using X DevAPI and X DevAPI for C. It also supports the legacy API of Connector/C++ 1.1 based on JDBC4.

To learn more about how to write applications using X DevAPI, see “X DevAPI User Guide” at

https://dev.mysql.com/doc/x-devapi-userguide/en/

See also “X DevAPI Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/devapi_ref.html

and “X DevAPI for C Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/xapi_ref.html

For generic information on using Connector/C++ 8.0, see

https://dev.mysql.com/doc/dev/connector-cpp/

For general documentation about how to get started using MySQL as a document store, see

http://dev.mysql.com/doc/refman/8.0/en/document-store.html

To download MySQL Connector/C++ 8.0.14, see the “Generally Available (GA) Releases” tab at

https://dev.mysql.com/downloads/connector/cpp/

Enjoy and thanks for the support!

On Behalf of Oracle/MySQL Release Engineering Team,
Kent Boortz

MySQL Shell 8.0.14 for MySQL Server 8.0 and 5.7 has been released

Dear MySQL users,

MySQL Shell 8.0.14 is a maintenance release of MySQL Shell 8.0 Series
(a component of the MySQL Server). The MySQL Shell is provided under Oracle’s dual-license.

MySQL Shell 8.0 is highly recommended for use with MySQL Server 8.0 and 5.7. Please upgrade to MySQL Shell 8.0.14.

MySQL Shell is an interactive JavaScript, Python and SQL console interface, supporting development and administration for the MySQL Server. It provides APIs implemented in JavaScript and Python that enable you to work with MySQL InnoDB cluster and use MySQL as a document store.

The AdminAPI enables you to work with MySQL InnoDB cluster, providing an integrated solution for high availability and scalability using InnoDB based MySQL databases, without requiring advanced MySQL expertise. For more information about how to configure and work with MySQL InnoDB cluster see

https://dev.mysql.com/doc/refman/en/mysql-innodb-cluster-userguide.html

The X DevAPI enables you to create “schema-less” JSON document collections and perform Create, Update, Read, Delete (CRUD) operations on those collections from your favorite scripting language.
For more information about how to use MySQL Shell and the MySQL Document Store support see

https://dev.mysql.com/doc/refman/en/document-store.html

For more information about the X DevAPI see

https://dev.mysql.com/doc/x-devapi-userguide/en/

If you want to write applications that use the the CRUD based X DevAPI you can also use the latest MySQL Connectors for your language of choice. For more information about Connectors see

https://dev.mysql.com/doc/index-connectors.html

For more information on the APIs provided with MySQL Shell see

https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/8.0/

and

https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/

Using MySQL Shell’s SQL mode you can communicate with servers using the legacy MySQL protocol. Additionally, MySQL Shell provides partial compatibility with the mysql client by supporting many of the same command line options.

For full documentation on MySQL Server, MySQL Shell and related topics,
see

https://dev.mysql.com/doc/mysql-shell/8.0/en/

For more information about how to download MySQL Shell 8.0.14, see the “Generally Available (GA) Releases” tab at

http://dev.mysql.com/downloads/shell/

We welcome and appreciate your feedback and bug reports, see

http://bugs.mysql.com/

Enjoy and thanks for the support!

==================================================

On Behalf of Oracle/MySQL Release Engineering Team,
Kent Boortz

MySQL Connector/J 8.0.14 has been released

Dear MySQL users,

MySQL Connector/J Version 8.0.14 is the GA release of the 8.0
branch of MySQL Connector/J. It is suitable for use with MySQL Server
versions 8.0, 5.7, 5.6, and 5.5. It supports the Java Database
Connectivity (JDBC) 4.2 API, and implements the X DevAPI.

This release includes the following new features and changes, also
described in more detail on

https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-14.html

As always, we recommend that you check the “CHANGES” file in the
download archive to be aware of changes in behavior that might affect
your application.

To download MySQL Connector/J 8.0.14 GA, see the “Generally Available
(GA) Releases” tab at http://dev.mysql.com/downloads/connector/j/
Enjoy!

Changes in MySQL Connector/J 8.0.14 (2019-01-21, General
Availability)

Functionality Added or Changed

  • Important Change: For MySQL Server 8.0.14 and later,
    5.7.25 and later, 5.6.43 and later, and 5.5.63 and later,
    minimal permissions on named pipes are granted to clients
    that use them to connect to the server. Connector/J,
    however, can only use named pipes when granted full
    access on them. As a workaround, the MySQL Server that
    Connector/J wants to connect to must be started with the
    system variable named_pipe_full_access_group; see the
    description for the system variable for more details.
    (Bug #28971500)
  • X DevAPI: getDefaultSchema() now returns null when no
    default schema has been set for the Session.
  • Connector/J now has a new property for building from
    source, com.mysql.cj.build.verbose, which controls the
    verbosity of the build process’ output. Its default value
    is false, which makes the output considerably shorter
    comparing with earlier versions of Connector/J.
    (Bug #28970166)
  • The method ResultSet.getBoolean() now returns FALSE when
    the designated column is of data type CHAR or VARCHAR and
    contains an “N” or “n”. This makes Connector/J 8.0
    behaves like Connector/J 5.1 when it comes to converting
    strings to booleans. (Bug #28706219, Bug #92574)
  • Connector/J is now capable of reading and, if needed,
    ignoring any initial notice packets sent by X Plugin
    before an X Protocol connection is established.

Bugs Fixed

  • X DevAPI: Connector/J returned a NullPointerException
    when an application tried to establish an XProtocol
    connection using a Windows named pipe, which is not
    supported. With this fix, an XProtoclException is
    returned instead.
    This fix also makes sure that instead of a
    NullPointerException, a proper exception is thrown when
    an application tries to establish a Classic MySQL
    Protocol connection with a named pipe, but the named pipe
    is not specified at connection or it cannot be found on
    the specified path. (Bug #28606708)
  • X DevAPI: Adding an empty document with executeAsync()
    resulted in an ERROR 5013 (Missing row data for Insert).
    With this fix, no error or warning is returned in the
    case. (Bug #23045642)
  • Collection.count() returned a wrong error message when
    the collection did not exist. (Bug #28924137)
  • The source code of Connector/J contains non-ASCII
    characters, which might cause encoding issues during
    compilation if the system did not also use a UTF-8
    locale. With this fix, the build script now handles
    non-ASCII characters well regardless of the system
    locale. (Bug #28894344)
  • A memory leak occurred if Connector/J was loaded via the
    bootstrap class path instead of the main application
    classpath. It was because
    AbandonedConnectionCleanupThread failed to initialize its
    internal thread in that case, so that references for
    closed connections were not cleaned up, and their number
    kept growing. This fix repairs the clean up process for
    closed connections and also makes the process thread
    safe. (Bug #28747636, Bug #92508)
  • * clearInputStream() returned a NullPointerException when
    the mysqlSocket, mysqlInput, or mysqlOutput object it
    tried to retrieve was null. With this fix, an IOExcpetion
    is thrown instead in the situation. Thanks to Henning
    Schmiedehausen for contributing to the fix.
    (Bug #28731795, Bug #92625)
  • Updating a result set returned by a server-side prepared
    statement with SELECT … FOR UPDATE
    (http://dev.mysql.com/doc/refman/8.0/en/select.html)
    resulted in an SQLException. (Bug #28692243, Bug #92536)
  • When the connection property zeroDateTimeBehavior was set
    to CONVERT_TO_NULL, Connector/J converted a TIME
    (http://dev.mysql.com/doc/refman/8.0/en/time.html) type
    value of 00:00:00 to null. With this fix, it returns a
    java.sql.Time instance of zero hours, minutes, and
    seconds, as expected. (Bug #28101003, Bug #91065)
  • When using server-side prepared statements and working
    with a table with multicolumn primary key, an updateRow()
    call failed with a NullPointerException or a
    SQLException. (Bug #25650514)
  • When using server-side prepared statements, a
    refreshRow() call after an updateRow() call failed with a
    SQLException. (Bug #25650482)
  • changeUser() failed to change or reauthenticate a user
    when all of the following were true: (a) connection to
    the server was by SSL; (b) the caching_sha2 or
    sha256_password authentication plugin was used for the
    user; and (c) the user password contained Unicode
    characters. (Bug #25642226)

On Behalf of Oracle/MySQL Release Engineering Team,
Daniel Horecki

MySQL Connector/ODBC 8.0.14 has been released

Dear MySQL users,

MySQL Connector/ODBC 8.0.14 is a new version in the MySQL Connector/ODBC 8.0 series,
the ODBC driver for the MySQL Server.

The available downloads include both a Unicode driver and an ANSI driver based on the
same modern codebase. Please select the driver type you need based on the type of your
application – Unicode or ANSI. Server-side prepared statements are enabled by default.
It is suitable for use with any MySQL server version from 5.5.

This release of the MySQL ODBC driver is conforming to the ODBC 3.8 specification.
It contains implementations of key 3.8 features, including self-identification
as a ODBC 3.8 driver, streaming of output parameters (supported for binary types
only), and support of the SQL_ATTR_RESET_CONNECTION connection attribute (for the
Unicode driver only).

The release is now available in source and binary form for a number of platforms
from our download pages at

https://dev.mysql.com/downloads/connector/odbc/

For information on installing, please see the documentation at

https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation.html

Changes in MySQL Connector/ODBC 8.0.14 (2019-01-21, General Availability)

Functionality Added or Changed

* A new ENABLE_LOCAL_INFILE connection option was added to
the connection string, DSN, and GUI. Disabled by default,
set ENABLE_LOCAL_INFILE=1 to enable LOAD DATA operations.
This toggles the MYSQL_OPT_LOCAL_INFILE mysql_options()
option.
The connection string overrides the DSN value if both are
set.

* 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.

+ 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.

* 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.

On Behalf of Oracle/MySQL Release Engineering Team,
Hery Ramilison

MySQL Connector/Python 8.0.14 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.14 is the latest GA release version of the
MySQL Connector Python 8.0 series. The X DevAPI enables application
developers to write code that combines the strengths of the relational
and document models using a modern, NoSQL-like syntax that does not
assume previous experience writing traditional SQL.

To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/. For more information
about how the X DevAPI is implemented in MySQL Connector/Python, and its
usage, see http://dev.mysql.com/doc/dev/connector-python.

Please note that the X DevAPI requires at least MySQL Server version 8.0
or higher with the X Plugin enabled. For general documentation about how
to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/8.0/en/document-store.html.

To download MySQL Connector/Python 8.0.14, see the “General Available
(GA) releases” tab at http://dev.mysql.com/downloads/connector/python/

Enjoy!


Changes in MySQL Connector/Python 8.0.14 (2019-01-21, General
Availability)

Functionality Added or Changed


     * A default schema name can now be defined from the
       connection string. Statements executed using the session are
       executed against this default schema if no other schema is
       specified. An example connection string:
       mysqlx://username:password@localhost:33160/myschema?ssl-mode=enabled
       where myschema becomes the default schema name. An error is
       emitted if the schema does not exist.  In addition, a new
       get_default_schema() method was added to retrieve this default
       schema's name. It returns the string "NONE" if a default schema
       name was not provided.

     * The count() method's error message was unclear when the
       table or collection was missing.

Bugs Fixed

     * On Windows, Python 2.7 binaries only contain the pure
       Python (and not the C extension) implementation yet the MSI
       installer still had the VC 2015 pre-requisite. (Bug #28992304)

     * Improved error handling for classic protocol connections
       using the X protocol port. (Bug #28962337)

     * Attempting to connect to a default schema with
       insufficient privileges would yield a "does not exist" error
       instead of "access denied." (Bug #28942938)

     * Improved error handling for connection strings that
       contain invalid schema names, such as an empty string.
       (Bug #28933922)

     * On Mac OS X, the requirements section was missing from
       the bundled README files. (Bug #28744076)

     * The Debian package descriptions were improved.
       (Bug #28737774)

     * The connector assumed that all values were expressions,
       which could lead to errors. The expr() method is now required to
       designate values as expressions. (Bug #28646344, Bug #92416)

     * With Python 2.7 and use_pure=False, unicode characters in
       table object operations would cause an unexpected halt.
       (Bug #28280321)

     * With "pure_python=False" set, mysql.connector would still
       use the Python implementation if the C extension was not
       available. (Bug #27794178)

     * A new ssl_verify_identity connection option was added to
       verify the server name against the server certificate's common
       name (CN) and subject alternative names (SANs).  Previously, only
       the C extension implementation performed this verification by
       default. This functionality exists to help prevent
       man-in-the-middle type attacks. (Bug #27434751)

     * An unexpected notice from the server could result in an
       error.

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL Connector/Node.js 8.0.14 has been released

Dear MySQL users,

MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, v8.0.14, is a maintenance release of the
MySQL Connector/Node.js 8.0 series.

The X DevAPI enables application developers to write code that combines
the strengths of the relational and document models using a modern,
NoSQL-like syntax that does not assume previous experience writing
traditional SQL.

MySQL Connector/Node.js can be downloaded through npm (see
https://www.npmjs.com/package/@mysql/xdevapi for details) or from
https://dev.mysql.com/downloads/connector/nodejs/.

To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/. For more information
about how the X DevAPI is implemented in MySQL Connector/Node.js, and
its usage, see http://dev.mysql.com/doc/dev/connector-nodejs/.

Please note that the X DevAPI requires at least MySQL Server version
8.0 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/8.0/en/document-store.html.

Changes in MySQL Connector/Node.js 8.0.14 (2019-01-21, General Availability)

Functionality Added or Changed

* Removed deprecation notices from the count() methods.

* Setting the default schema via the connection now sets
the default schema on the server; meaning, subsequent
queries executed using session.sql() do not need to
specify the schema.

Bugs Fixed

* Setting the default schema with the connection URI using
a schema name that contained special characters (that
would need to be percent-encoded) would result in the
percent-encoded name being used instead of the original
one (e.g. “%25%26%5E*%5E_” instead of “%&^*^_”). (Bug
#28990682)

* An error is once again thrown if sslOption’s ‘ca’ is
different than the certificate authority used to sign the
server certificate, or if the server certificate has been
revoked. (Bug #28977649)

* Attempting to use false-like values such as 0, false,
null, and undefined would emit errors when updating or
inserting documents in a collection or rows in a table.
Additionally, now boolean values become numeric values
(true=1, false=0) while null and undefined are converted
to MySQL’s NULL type. (Bug #28970727, Bug #93315)

* Collection.existsInDatabase() always returned true if any
other collection existed in the database. (Bug #28745240)

* Configuring a default schema from the connection string
would create the schema if it did not exist. Now, an
“Unknown database” error is thrown instead.

* An unexpected notice could result in an unexpected halt
of the client.

On Behalf of Oracle/MySQL Release Engineering Team,
Hery Ramilison

Working with result sets in Connector/Node.js

MySQL 8.0 and the Document Store highlight brand new client tools such as the Shell and Connector/Node.js, both providing a JavaScript implementation of the X DevAPI. Although, for most cases, the public interface tends to be similar on both (barring some small details), there is one notable exception.

The way you handle result sets in a Node.js app using Connector/Node.js is a bit different from the way you do it using an interactive session or a non-interactive JS script in the Shell.

Executing an operation in the MySQL server using the Shell is a purely synchronous task from the user standpoint since the underlying code is C++ (multi-threaded) whereas, due to the way Node.js works (single-threaded with event loop), an application that uses Connector/Node.js has to do the same by resorting to some asynchronous construct.

Continue reading