Quantcast
Channel: MySQL Forums - Announcements
Viewing all 1041 articles
Browse latest View live

MySQL Connector/Node.js 8.0.14 has been released (no replies)

$
0
0
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

MySQL Community Server 8.0.14 has been released (part 1/2) (no replies)

$
0
0
[Due to size limitation, this announcement is split in two. This is part 1]

Dear MySQL users,

MySQL Server 8.0.14, a new version of the popular Open Source
Database Management System, has been released. MySQL 8.0.14 is
recommended for use on production systems.

For an overview of what's new in MySQL 8.0, please see

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

For information on installing MySQL 8.0.14 on new servers, please see
the MySQL installation documentation at

http://dev.mysql.com/doc/refman/8.0/en/installing.html

MySQL Server 8.0.14 is available in source and binary form for a number of
platforms from our download pages at

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

MySQL Server 8.0.14 is also available from our repository for Linux
platforms, go here for details:

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

Windows packages are available via the Installer for Windows:

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

along with .ZIP (no-install) packages for more advanced needs.

8.0.14 also comes with a web installer as an alternative to the full
installer.

The web installer doesn't come bundled with any actual products
and instead relies on download-on-demand to fetch only the
products you choose to install. This makes the initial download
much smaller but increases install time as the individual products
will need to be downloaded.

We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:

http://bugs.mysql.com/report.php

The following link lists the changes in the MySQL 8.0 since
the release of MySQL 8.0.13. It may also be viewed
online at

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

Enjoy!

==============================================================================
Changes in MySQL 8.0.14 (2019-01-21, General Availability)


     * Account Management Notes

     * Audit Log Notes

     * Compilation Notes

     * Component Notes

     * Configuration Notes

     * Deprecation and Removal Notes

     * Function Notes

     * Logging Notes

     * Optimizer Notes

     * Packaging Notes

     * Performance Schema Notes

     * Pluggable Authentication

     * Security Notes

     * Spatial Data Support

     * SQL Syntax Notes

     * Thread Pool Notes

     * X Plugin Notes

     * Functionality Added or Changed

     * Bugs Fixed

Account Management Notes


     * Previously, each MySQL user account was permitted to have
       a single password. MySQL now permits an account to have
       dual passwords, designated as primary and secondary
       passwords. This capability enables phased password
       changes to be performed seamlessly in complex
       multiple-server systems, without downtime. To support
       dual-password capability, the ALTER USER and SET PASSWORD
       statements now have a RETAIN CURRENT PASSWORD clause that
       saves the current password as the secondary password when
       you assign an account a new primary password. ALTER USER
       also has a DISCARD OLD PASSWORD clause to discard a
       secondary password that is no longer needed. See Password
       Management
       (http://dev.mysql.com/doc/refman/8.0/en/password-management.html).
       Important
       The implementation of dual-password capability involves a
       change to the structure of the mysql.user system table.
       If you upgrade to this MySQL release from an earlier
       version, you must run mysql_upgrade (and restart the
       server) to incorporate this system database change. Until
       this is done, password changes are not possible.

Audit Log Notes


     * The audit API now enables applications to add their own
       message events to the audit log using the new
       audit_api_message_emit component, which includes an
       audit_api_message_emit_udf() user-defined function. See
       The Audit Message Component
       (http://dev.mysql.com/doc/refman/8.0/en/audit-api-message-emit.html).

Compilation Notes


     * The minimum version of the Boost library for server
       builds is now 1.68.0. (Bug #28478497)

Component Notes


     * A new host_application_signal component service is
       available to enable server components to deliver signals
       to the host application. For example, the service enables
       replication components to send a shutdown signal to the
       server.

Configuration Notes


     * The content of the .gitignore file has been cleaned up.
       Much of this file was inherited from its .bzrignore
       predecessor and was not relevant. One implication of this
       cleanup is that in-source builds are disallowed. (Bug
       #28341794, Bug #91626)

     * MySQL Server now permits a TCP/IP port to be configured
       specifically for administrative connections. This
       provides an alternative to the single administrative
       connection that is permitted on the network interfaces
       used for ordinary connections even when max_connections
       connections are already established. The administrative
       network interface has these characteristics:

          + The interface is available only if the admin_address
            system variable is set at startup to indicate the IP
            address for the administrative interface.

          + The admin_port system variable specifies the
            interface TCP/IP port number (default 33062).

          + There is no limit on the number of administrative
            connections.

          + Connections are permitted only by users who have the
            SERVICE_CONNECTION_ADMIN privilege.
       The create_admin_listener_thread enables DBAs to choose
       whether the administrative interface is implemented using
       the listener thread used for ordinary connections (this
       is the default), or has its own separate thread.

       Thanks to Facebook for suggesting the idea (and for
       contributing code, although it was not used). (Bug #27847672,
       Bug #90395)

Deprecation and Removal Notes


     * The deprecated resolveip and resolve_stack_dump utilities
       have been removed and are no longer included in MySQL
       distributions. nslookup, host, or dig can be used instead
       of resolveip. Stack traces from official MySQL builds are
       always symbolized, so there is no need to use
       resolve_stack_dump.

Function Notes


     * The JSON_ARRAYAGG() and JSON_OBJECTAGG() aggregate
       functions now can be used as window functions, if an OVER
       clause is present. See Aggregate (GROUP BY) Function
       Descriptions
       (http://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html).

Logging Notes


     * A new system variable, log_slow_extra, if enabled, causes
       the server to write additional fields to slow query log
       lines that provide information about slow statements. In
       addition, SET lines written to the log to indicate
       statement timestamps now use the time from the beginning
       of statement execution, rather than the time at the end
       of execution. See The Slow Query Log
       (http://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html).
       Thanks to Facebook for the contribution on which
       this feature is based. (Bug #27535580, Bug #89637)

     * Server logging behavior has changed with respect to error
       log messages generated prior to processing startup
       options that specify logging configuration. Previously,
       the server generated messages with the default timestamp,
       format, and verbosity level; buffered them; and then
       flushed them after the error log configuration became
       known. Because these early messages used the default
       logging configuration, they could differ from what is
       specified by the startup options.
       Now, the server buffers log events rather than formatted
       log messages. This enables it to retroactively apply
       configuration settings to those events after the settings
       are known, with the result that flushed messages use the
       configured settings, not the defaults. For more
       information, see Error Log Message Format
       (http://dev.mysql.com/doc/refman/8.0/en/error-log-format.html).

Optimizer Notes


     * Previously, derived tables and common table expressions
       could not contain outer references. Outer references are
       now permitted.

Packaging Notes


     * Ubuntu 18.10 and Fedora 29 install OpenSSL 1.1.1 by
       default, but OpenSSL 1.1.1 is not fully supported by
       MySQL. To install MySQL, the OpenSSL 1.0.2 compatibility
       package must be installed. (Bug #28981868)

Performance Schema Notes


     * The Performance Schema statement event tables
       (events_statements_current, events_statements_history,
       and events_statements_history_long) now have a
       STATEMENT_ID column that indicates the query ID
       maintained by the server at the SQL level. Column values
       are unique for the server instance because they are
       generated using a global counter that is incremented
       atomically.

Pluggable Authentication


     * If the LDAP port number is configured as 636 or 3269, the
       plugin now uses LDAPS (LDAP over SSL) instead of LDAP.
       The port number is settable using the
       authentication_ldap_sasl_server_port or
       authentication_ldap_simple_server_port system variable.
       (LDAPS differs from startTLS.) (Bug #28743563)

     * Previously, for LDAP authentication with proxying, LDAP
       authentication plugins used the first group name returned
       by the LDAP server as the MySQL proxy user account name.
       The authentication string for a MySQL account now can
       specify a list of groups to match, in preference order,
       and can optionally map the matching group name to a
       specified MySQL proxy user name. See LDAP Pluggable
       Authentication
(http://dev.mysql.com/doc/refman/8.0/en/ldap-pluggable-authentication.html).

Security Notes


     * The OpenSSL libraries bundled with MySQL on some
       platforms (Windows, macOS, and Generic Linux) have been
       upgraded to version 1.0.2q. On all other platforms, MySQL
       uses the system installed OpenSSL. Issues fixed in the
       new OpenSSL version are described at
       http://www.openssl.org/news/vulnerabilities.html. (Bug
       #28988091)

     * To affect subsequent server restarts, the SET PERSIST and
       SET PERSIST_ONLY statements enable system variables to be
       persisted to the mysqld-auto.cnf option file in the data
       directory. However, some system variables cannot be
       persisted (for example, because they involve sensitive
       data). Consequently, they cannot be set at runtime from
       within a session conducted by a remote administrator, and
       thus require the administrator to log into the server
       host and directly modify a my.cnf option file.
       MySQL now permits users to perform runtime administration
       of many previously nonpersistible system variables, so
       that they can be persisted under certain restrictive
       conditions. To enable this capability, designate an SSL
       certificate X.509 Subject value that signifies the
       ability to persist these restricted system variables, and
       set the new persist_only_admin_x509_subject system
       variable to that Subject value. Users who connect to the
       server using an encrypted connection and supply an SSL
       certificate with the designated Subject value then can
       use SET PERSIST_ONLY to persist persist-restricted system
       variables. For more information, see Nonpersistible and
       Persist-Restricted System Variables
(http://dev.mysql.com/doc/refman/8.0/en/nonpersistible-system-variables.html).

     * For most system variables, setting the session value
       requires no special privileges and can be done by any
       user to affect the current session. For some system
       variables, setting the session value can have effects
       outside the current session and thus is a restricted
       operation that can be done only by users who have a
       special privilege. Previously, either
       SYSTEM_VARIABLES_ADMIN or SUPER qualified as such a
       privilege, but both privileges also permit operations
       other than setting session variables. The new
       SESSION_VARIABLES_ADMIN privilege makes it possible to
       grant users only the ability to set restricted session
       variables without also enabling other operations.
       Any operation permitted by SESSION_VARIABLES_ADMIN is
       also permitted by SYSTEM_VARIABLES_ADMIN or SUPER, so any
       user who already has one of the latter privileges
       effectively has SESSION_VARIABLES_ADMIN by implication
       and need not be granted SESSION_VARIABLES_ADMIN
       explicitly. However, if a user has been granted
       SYSTEM_VARIABLES_ADMIN or SUPER only for the purpose of
       enabling that user to modify restricted session system
       variables, an administrator can reduce the user's
       privilege footprint by revoking SYSTEM_VARIABLES_ADMIN
       and SUPER, and granting SESSION_VARIABLES_ADMIN instead.
       For instructions, see System Variable Privileges
       (http://dev.mysql.com/doc/refman/8.0/en/system-variable-privileges.html).
       These previously restricted session variables required
       SYSTEM_VARIABLES_ADMIN or SUPER but now can also be set
       with SESSION_VARIABLES_ADMIN:
binlog_format
binlog_row_image
binlog_row_value_options
binlog_rows_query_log_events
debug
debug_sync
default_collation_for_utf8mb4
explicit_defaults_for_timestamp
gtid_next
histogram_generation_max_mem_size
original_commit_timestamp
sql_log_bin
sql_log_off
sql_require_primary_key

       These previously unrestricted session variables now are
       restricted and setting them requires at least
       SESSION_VARIABLES_ADMIN (they can also be set by users
       who have SYSTEM_VARIABLES_ADMIN or SUPER):
auto_increment_increment
auto_increment_offset
binlog_direct_non_transactional_updates
bulk_insert_buffer_size
character_set_filesystem
character_set_database
collation_database
pseudo_slave_mode
pseudo_thread_id
rbr_exec_mode
transaction_write_set_extraction

Spatial Data Support


     * The ST_Distance() function now takes an optional third
       argument enabling the unit for the return value to be
       specified. Permitted units are those listed in the new
       INFORMATION_SCHEMA ST_UNITS_OF_MEASURE table. See Spatial
       Relation Functions That Use Object Shapes
(http://dev.mysql.com/doc/refman/8.0/en/spatial-relation-functions-object-shapes.html),
       and The INFORMATION_SCHEMA ST_UNITS_OF_MEASURE Table
       (http://dev.mysql.com/doc/refman/8.0/en/st-units-of-measure-table.html).

SQL Syntax Notes


     * A derived table now may be preceded by the LATERAL
       keyword to specify that it is permitted to refer to
       (depend on) columns of preceding tables in the same FROM
       clause. A derived table specified with LATERAL can occur
       only in a FROM clause, either in a list of tables
       separated with commas or in a join specification (JOIN,
       INNER JOIN, CROSS JOIN, LEFT [OUTER] JOIN, or RIGHT
       [OUTER] JOIN). Lateral derived tables make possible
       certain SQL operations that cannot be done with
       nonlateral derived tables or that require less-efficient
       workarounds. See Lateral Derived Tables
       (http://dev.mysql.com/doc/refman/8.0/en/lateral-derived-tables.html).
       Note
       LATERAL now is a reserved word and cannot be used as an
       identifier without identifier quoting.

Thread Pool Notes


     * The INFORMATION_SCHEMA tables that accompany the thread
       pool plugin have been migrated to be available as
       Performance Schema tables. The INFORMATION_SCHEMA tables
       now are deprecated and will be removed in a future MySQL
       version. Applications should transition away from the old
       tables to the new tables. For example, if an application
       uses this query:
SELECT * FROM INFORMATION_SCHEMA.TP_THREAD_STATE;

       The application should use this query instead:
SELECT * FROM performance_schema.tp_thread_state;

       For more information, see Performance Schema Thread Pool
       Tables
(http://dev.mysql.com/doc/refman/8.0/en/performance-schema-thread-pool-tables.html).

X Plugin Notes


     * X Plugin now includes the 5-digit SQLSTATE error code in
       its error handling class. Previously, the SQLSTATE error
       code was returned to clients for SQL errors, but only the
       MySQL-specific error number was exposed. (Bug #28735058)

     * When querying collections of documents, if boolean values
       were used as arguments for a placeholder in an SQL query,
       unexpected results were returned. A new translation
       specialization has now been added for boolean values so
       that they are handled correctly in this situation. (Bug
       #28227037)

     * X Protocol now always converts retrieved data to the
       utf8mb4 character set (using the utf8mb4_general_ci
       collation) before returning it. (Bug #28180155)

     * X Protocol now supports SQL prepare functionality.

Functionality Added or Changed


     * InnoDB: To reduce the size of core files, the
       innodb_buffer_pool_in_core_file variable can be disabled
       to prevent InnoDB buffer pool pages from being written to
       core files.
       Thanks to Facebook for the contribution. (Bug #27724476,
       Bug #90144)

     * InnoDB: By default, undo logs reside in two undo
       tablespaces that are created when the MySQL instance is
       initialized.
       Additional undo tablespaces can be created in a chosen
       location at runtime using CREATE UNDO TABLESPACE syntax.
CREATE UNDO TABLESPACE tablespace_name ADD DATAFILE 'file_name.ibu';

       Undo tablespaces created using CREATE UNDO TABLESPACE
       syntax can be dropped at runtime using DROP UNDO
       TABLESPACE syntax.
DROP UNDO TABLESPACE tablespace_name;

       ALTER UNDO TABLESPACE syntax can be used to mark an undo
       tablespace as active or inactive.
ALTER UNDO TABLESPACE tablespace_name SET {ACTIVE|INACTIVE};

       A STATE column that shows the state of a tablespace was
       added to the INFORMATION_SCHEMA.INNODB_TABLESPACES table.
       An undo tablespace must be in an empty state before it
       can be dropped.
       The previously deprecated innodb_undo_tablespaces
       variable is no longer configurable and will be removed in
       a future release.
       For more information, see Undo Tablespaces
       (http://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html).

     * InnoDB: InnoDB now supports parallel clustered index reads,
       which can improve CHECK TABLE performance. This feature does
       not apply to secondary index scans.  The
       innodb_parallel_read_threads session variable must be set to a
       value greater than 1 for parallel clustered index reads to
       occur. The default value is 4. The actual number of threads
       used to perform a parallel clustered index read is determined
       by the innodb_parallel_read_threads setting or the number of
       index subtrees to scan, whichever is smaller.

     * InnoDB: The ADD DATAFILE clause of the CREATE TABLESPACE
       statement is now optional, which permits users without
       the FILE privilege to create tablespaces. A CREATE
       TABLESPACE statement executed without an ADD DATAFILE
       clause implicitly creates a tablespace data file with a
       unique file name.

     * InnoDB: When the innodb_dedicated_server variable is
       enabled, the size and number of log files are now
       configured according to the automatically configured
       buffer pool size. Previously, log file size was
       configured according to the amount of memory detected on
       the server, and the number of log files was not
       configured automatically.

     * Replication: When running a group in single-primary mode,
       in the event of a new primary being elected while there
       were transactions held in the backlog to be applied,
       there was a chance that a read operation against the new
       primary could return a stale value. Now, you can use the
       group_replication_consistency variable to control how a
       group behaves in this situation. When
       group_replication_consistency is set to EVENTUAL, a new
       primary responds to read requests even when there is a
       backlog which has not yet been applied, which matches the
       previous behavior and comes with the risk that a client
       could read old values while any backlog is being applied.
       Writes to the new primary fail during this period because
       it is has super_read_only mode enabled. When
       group_replication_consistency is set to
       BEFORE_ON_PRIMARY_FAILOVER, any new read or write queries
       against a newly elected primary that is applying backlog
       from the old primary are held until the backlog is
       applied. This ensures that clients always read the newest
       value which they have written, but also means that
       clients might have to wait until the backlog has been
       applied before they can read from the new primary.
       References: See also: Bug #26004894.

     * Microsoft Windows: The access control granted to clients
       on the named pipe created by the MySQL server now is set
       to the minimum necessary for successful communication on
       Windows. Newer MySQL client software can open named pipe
       connections without any additional configuration. If
       older client software cannot be upgraded immediately, the
       new named_pipe_full_access_group server system variable
       can be used to give a Windows group the necessary
       permissions to open a named pipe connection. Membership
       in the full-access group should be restricted and
       temporary.

     * The minimal server RPM is mostly used for Docker images.
       For better Docker compatibility, the log-error line has
       been removed from the rpm-docker configuration file. This
       way, logging goes to stdout/stderr, enabling use of
       Docker's own interface. (Bug #28692675)

     * Error messages relating to creating and dropping foreign
       keys were improved to be more specific and informative.
       (Bug #28526309, Bug #92087)

     * The error message for ALTER TABLE statements that
       attempted character set conversion but failed was
       improved to indicate which column produced the error.
       (Bug #27546306, Bug #88738)

     * Previously, for command options that take a numeric
       value, the value could be given with a suffix of K, M, or
       G to indicate a multiplier of 1024, 1024^2 or 1024^3. Now
       a suffix can also be T, P, and E to indicate a multiplier
       of 1024^4, 1024^5 or 1024^6. Thanks to Daniel Black for
       the patch. (Bug #27306931, Bug #89017)

     * Resource group locking was revised to improve scalability
       and performance. (Bug #27148580)

     * The Group Communication System (GCS) and group
       communication engine (XCom, a Paxos variant) for Group
       Replication now provide full support for IPv6, so
       replication group members can use IPv6 addresses as an
       alternative to IPv4 addresses for internal group
       communications. The localhost address for IPv6, and the
       private subnetwork addresses for IPv6 (unique-local
       addresses and link-local unicast addresses), are added to
       the automatic whitelist for Group Replication for use if
       no manual whitelist is specified.
       If all members of a replication group are at a MySQL
       server version that supports the use of IPv6 addresses
       for Group Replication, the group can contain a mix of
       members using IPv6 addresses and members using IPv4
       addresses. Joining members must provide whitelisted IP
       addresses or host names that match the protocols offered
       by the seed members for connection, but the joining
       member's main identifying address or host name
       (group_replication_local_address) can use either
       protocol. If a member uses a host name that resolves to
       both an IPv4 and an IPv6 address, the IPv4 address is
       always used for Group Replication connections.
       If any or all existing members of a replication group are
       using an older MySQL Server version without support for
       the use of IPv6 addresses for Group Replication, joining
       members must present an IPv4 address for group
       communications in the group_replication_local_address
       option. When every group member has been upgraded, the
       group can be migrated to IPv6 addresses. (Bug #26088469,
       Bug #27757729, Bug #90217)

     * MySQL Group Replication can now communicate using a
       dedicated input channel as an alternative to using a TCP
       socket. The new input channel uses shared memory for
       communication between the Group Replication logic and the
       local instance of the underlying group communication
       engine (XCom, a Paxos variant).
       Previously, communication with the local XCom instance
       always took place using a TCP socket, namely the network
       address that is specified by the
       group_replication_local_address system variable for each
       group member. This incurred overheads that were
       unnecessary for local communication, such as memory
       copying through the network protocol stack and data
       serialization. A TCP socket
       (group_replication_local_address) is still required for
       each group member to communicate with remote XCom
       instances. The Group Communication System (GCS) component
       of Group Replication now selects the most appropriate
       communication method for each Group Replication task,
       either the input channel or TCP. For example, the process
       of joining a group requires communication with a remote
       XCom instance, so TCP must be used. However, the process
       of removing a member from a group only requires
       communication with the local XCom instance, so the input
       channel is used. The input channel is selected wherever
       possible to minimize the overheads associated with
       communication using networking mechanisms.

     * Two new session system variables have been added for
       internal use by replication. original_server_version and
       immediate_server_version support cross-version
       replication by transmitting the MySQL server release
       numbers associated with a transaction through the
       replication topology. original_server_version holds the
       MySQL Server release number of the server where a
       transaction was originally committed (for example, 80014
       for a MySQL 8.0.14 server instance).
       immediate_server_version holds the MySQL Server release
       number of the server that is the immediate master in a
       replication topology. If either of those servers, or
       another intervening server in the replication topology,
       is at an older release that does not support these
       session system variables, their values are set to 0.
       With this information the slave can correctly process
       data originating from a master at an older release, by
       recognizing where syntax changes or semantic changes have
       occurred between the releases involved and handling these
       appropriately. The information can also be used in a
       Group Replication environment where one or more members
       of the replication group is at a newer release than the
       others. The value of the variable can be viewed in the
       binary log for each transaction (as part of the
       Gtid_log_event, or Anonymous_gtid_log_event if GTIDs are
       not in use on the server), and could be helpful in
       debugging cross-version replication issues.

     * The startup option --binlog-row-event-max-size now has a
       corresponding system variable binlog_row_event_max_size.
       The startup option and system variable set a soft limit
       on the maximum size of a row-based binary log event, with
       a default setting of 8192 bytes. Where possible, rows
       stored in the binary log are grouped into events with a
       size not exceeding the value of this setting. If an event
       cannot be split, the maximum size can be exceeded.
       The binlog_row_event_max_size global system variable is
       read-only and can be set only at server startup. Its
       value can therefore only be modified by using the
       PERSIST_ONLY keyword or the @@persist_only qualifier with
       the SET statement. The addition of a system variable
       means that this setting can be viewed using the
       Performance Schema tables or a SHOW VARIABLES or SELECT
       statement.

     * Binary log files and relay log files can now be
       encrypted, helping to protect these files and the
       potentially sensitive data contained in them from being
       misused by outside attackers, and also from unauthorized
       viewing by users of the operating system where they are
       stored.
       You enable encryption on a MySQL server by setting the
       new binlog_encryption system variable to ON. OFF is the
       default. The system variable sets encryption on for
       binary log files and relay log files. When you first
       start the server with encryption enabled, a new binary
       log encryption key is generated before the binary log and
       relay logs are initialized. This key is used to encrypt a
       file password for each binary log file (if the server has
       binary logging enabled) and relay log file (if the server
       has replication channels), and further keys generated
       from the file passwords are used to encrypt the data in
       the files.
       If you activate encryption while the server is running, a
       new binary log encryption key is generated at that time,
       and the binary log files and relay log files are rotated
       so that the new and subsequent files are encrypted. If
       you deactivate encryption by changing the
       binlog_encryption system variable to OFF, the binary log
       file and relay log files are rotated immediately and all
       subsequent logging is unencrypted. Previously encrypted
       files are not automatically decrypted, but the server is
       still able to read them. (The SHOW BINARY LOGS statement
       now shows whether each binary log file is encrypted or
       unencrypted.) SUPER privileges or the new
       BINLOG_ENCRYPTION_ADMIN privilege are required to
       activate or deactivate encryption while the server is
       running.
       The encryption algorithm used for the files, the AES
       (Advanced Encryption Standard) cipher algorithm, is built
       in to MySQL Server and cannot be configured. The binary
       log encryption keys used to encrypt the file passwords
       for the log files are 256-bit keys that are generated
       specifically for each MySQL server instance using MySQL
       Server's built-in keyring service. The binary log
       encryption key that is currently in use on the server is
       called the binary log master key.
       The new binlog_rotate_encryption_master_key_at_startup
       system variable controls whether the binary log master
       key is automatically rotated when the server is
       restarted. If this system variable is set to ON, a new
       binary log encryption key is generated and used as the
       new binary log master key whenever the server is
       restarted. If it is set to OFF, which is the default, the
       existing binary log master key is used again after the
       restart.
       Note that when encryption is active for a MySQL server
       instance, only the data at rest that is written to the
       binary log files and relay log files is encrypted. The
       data in motion in the replication event stream, which is
       sent to MySQL clients including mysqlbinlog, is always in
       unencrypted format, so it must be protected in transit by
       the use of connection encryption. The data in use that is
       held in the binary log transaction and statement caches
       during a transaction, and any data that exceeds the space
       available in those caches and is therefore stored in a
       temporary file on disk, is also in unencrypted format.
       The temporary files and caches are deleted when the
       thread that handles the transaction ends.

     * ALTER TABLE now can be used to change a column character
       set in place (without a table rebuild), when these
       conditions apply:

          + The column data type is CHAR, VARCHAR, a TEXT type,
            or ENUM.

          + The character set change is from utf8mb3 to utf8mb4,
            or any character set to binary.

          + There is no index on the column.

     * The new -DFORCE_INSOURCE_BUILD CMake option defines
       whether to force an in-source build. Out-of-source builds
       are recommended, as they permit multiple builds from the
       same source, and cleanup can be performed quickly by
       removing the build directory. To force an in-source
       build, invoke CMake with -DFORCE_INSOURCE_BUILD=ON.

MySQL Community Server 8.0.14 has been released (part 2/2) (no replies)

$
0
0
[This is part 2 of the announcement]

Bugs Fixed


     * Important Change: Importing a dump from a MySQL 5.7
       server to a server running MySQL 8.0 often failed with
       ER_WRONG_VALUE_FOR_VAR when an SQL mode not supported by
       the 8.0 server was used. This could happen frequently due
       to the fact that NO_AUTO_CREATE_USER is enabled by
       default in MySQL 5.7 but not supported in MySQL 8.0.
       The behavior of the server in such circumstances now
       depends on the setting of the pseudo_slave_mode system
       variable. If this is false, the server rejects the mode
       setting with ER_UNSUPPORTED_SQL_MODE. If
       pseudo_slave_mode is true, the server ignores the
       unsupported mode and gives a warning. Note that
       mysqlbinlog sets pseudo_slave_mode to true prior to
       executing any SQL. (Bug #90337, Bug #27828236)

     * InnoDB: MySQL would not start on Solaris X86. The static
       thread-local 'tables' variable in the TempTable storage
       engine was not properly initialized. (Bug #28987365)

     * InnoDB: Latching logic used during deadlock detection was
       simplified. (Bug #28904966)

     * InnoDB: An invalid record offset for an old version of a
       clustered index record raised a debug assertion. (Bug
       #28825617)
       References: This issue is a regression of: Bug #25540277.

     * InnoDB: The minimum DML delay imposed when the length of
       the history list exceeds innodb_max_purge_lag was
       decreased from 5000 microseconds to 5 microseconds. (Bug
       #28813453)

     * InnoDB: An incorrect lock order caused a deadlock when
       one thread attempted to drop a table while another
       created an encrypted tablespace. (Bug #28774259)

     * InnoDB: ALTER TABLESPACE failed to ignore unsupported
       tablespace attributes. (Bug #28656611)

     * InnoDB: Implicit to explicit lock conversion logic was
       simplified and optimized. (Bug #28637472)

     * InnoDB: A fragment page allocation failure raised an
       assertion. (Bug #28615893)

     * InnoDB: Incorrectly placed debug points caused flushed
       LOB pages to be considered corrupt. (Bug #28607368)

     * InnoDB: The TempTable storage engine incorrectly created
       temporary files in the system temporary directory instead
       of the directory defined by the tmpdir variable. (Bug
       #28598943)

     * InnoDB: Attempting to drop a table with a name similar to
       that of a full-text search auxiliary table caused an
       assertion failure. (Bug #28577083)

     * InnoDB: A function called by an UPDATE query did not
       account for virtual columns. (Bug #28560650)

     * InnoDB: An incorrect key was defined for the buffer pool
       zip hash mutex. (Bug #28556539)

     * InnoDB: Deadlock handling for background transactions
       that involve the mysql.innodb_table_stats and
       mysql.innodb_index_stats tables was modified. The tables
       were incorrectly included in an assertion that is
       triggered when internal tables are included in a deadlock
       cycle. (Bug #28523042, Bug #92069)

     * InnoDB: Setting innodb_spin_wait_delay to a high value
       caused an assertion failure when attempting to shut down
       the server. To prevent this failure from occurring, the
       innodb_spin_wait_delay maximum value was reduced to 1000.
       (Bug #28489407, Bug #91973)

     * InnoDB: An ON DELETE CASCADE operation on table with a
       foreign key constraint and an indexed virtual column
       caused the server to exit. (Bug #28470805)

     * InnoDB: An incorrectly written DML log involving a
       virtual column value raised an assertion. (Bug #28448853)

     * InnoDB: A RENAME TABLE operation failed when run on a
       table created outside of the MySQL data directory using
       the DATA DIRECTORY clause. (Bug #28341514)

     * InnoDB: ALTER TABLE ... EXCHANGE PARTITION permitted
       partitions with different virtual column definitions to
       be exchanged, which resulted in an assertion when InnoDB
       later attempted to read from a nonexistent virtual
       column. (Bug #28235668)

     * InnoDB: A counter was added for redo log write and flush
       requests that occur during transaction commit. The
       counter is used by the log writer thread to compute the
       average time between consecutive requests. When the
       average time is greater than 100 microseconds, log writer
       threads do not use spin delay and instead wait on request
       events with a 10 microsecond timeout limit.
       A log writer thread implementation issue that could cause
       a hang was also fixed. (Bug #28062382, Bug #28444247, Bug
       #28616442, Bug #90890)

     * InnoDB: An assertion was raised when attempting to add
       rollback segments to newly added undo tablespace that was
       not fully initialized. (Bug #27914054)

     * InnoDB: Foreign key constraints were ignored after a
       RENAME TABLE operation. (Bug #27453180, Bug #89441)

     * InnoDB: Using the O_DIRECT_NO_FSYNC innodb_flush_method
       setting could cause the system to hang due to file system
       metadata becoming unsynchronized. To prevent this issue
       from occurring in O_DIRECT_NO_FSYNC mode, InnoDB now
       calls fsync() after creating a new file, after increasing
       file size, and after closing a file. The fsync() system
       call is still skipped after each write operation.
       With the changes described above, O_DIRECT_NO_FSYNC mode
       can now be safely used on EXT4 and XFS file systems. (Bug
       #27309336)

     * InnoDB: Specifying the CREATE TABLE or ALTER TABLE
       ENCRYPTION option with an empty string failed to raise an
       error and was interpreted as a default setting, which is
       ENCRYPTION='N'. Specifying an empty string is now treated
       as invalid and raises an error. (Bug #27177845)

     * InnoDB: Partition suffixes (the #P# part of a partitioned
       table name) were not converted to lowercase when moving
       tablespace data files from a MySQL instance on Windows to
       a MySQL instance on Linux where the
       lower_case_table_names variable was set to 1. Failure to
       fully convert table names to lowercase caused errors
       later when attempting to rename tables. (Bug #26925260)

     * InnoDB: An assertion was raised when attempting to write
       to a tablespace file greater than 4GB in size on a 64-bit
       Windows system. The failure was due to a narrowing cast.
       (Bug #26636815, Bug #87423)

     * Partitioning: Trying to perform an instant add column on
       a discarded tablespace led to an assert. An error is now
       returned in such cases. (Bug #28517843)

     * Partitioning: Repeated ALTER TABLE statements on
       partitioned tables containing BLOB or TEXT columns were
       not always handled correctly. (Bug #28491099)

     * Partitioning: ALTER TABLE ... EXCHANGE PARTITION did not
       work when the partitioned table had one or more partition
       definitions using the DATA DIRECTORY option. This fix
       supports partitioned tables using the InnoDB storage
       engine only. (Bug #19730200)

     * Replication: Depending on the value of
       group_replication_exit_state_action, the behavior of
       members exiting a group was not consistent. To harmonize
       the behavior of members exiting the group regardless of
       the error scenario, now when a member with
       group_replication_exit_state_action=READ_ONLY exits the
       group unintentionally, the super_read_only mode that the
       member had when started is restored. This makes the
       behavior consistent with that of a member with
       group_replication_exit_state_action=ABORT_SERVER. (Bug
       #28971639, Bug #28526591)

     * Replication: When adding a new member to a group, if the
       certification information was too big to transmit, an
       event was generated that caused failures in all group
       members. To avoid this situation, now if the
       certification information is too large an error is
       generated which makes the joining member leave the group.
       (Bug #28900691, Bug #28443958)

     * Replication: When a group was being reconfigured online,
       for example using
       group_replication_switch_to_multi_primary_mode or
       group_replication_set_as_primary, there was a chance that
       stopping a member could result in an unexpected stop.
       Now, when you issue STOP GROUP_REPLICATION, if the member
       is part of an online group that is being reconfigured,
       the group coordinator is informed that Group Replication
       is stopping and the member waits for the online
       configuration to finish. (Bug #28807260)

     * Replication: The metadata written to the binary log for
       CREATE TABLE statements includes character set
       information for the character columns in the table.
       Previously, when the mysqlbinlog option
       --print-table-metadata was specified, a default character
       set was printed for the table. This default character set
       was the character set that appeared most frequently in
       the table columns, and might not match the default
       character set that had been specified for the table.
       mysqlbinlog now prints the character set for each column
       individually. The columns are also printed on separate
       lines. (Bug #28774144)

     * Replication: Character set information was not written to
       the binary log as part of the table metadata for ENUM and
       SET columns. This information is now added when
       binlog_row_metadata=FULL is set, which produces extended
       metadata. (For character columns, character set
       information is also added with
       binlog_row_metadata=MINIMAL.) (Bug #28706307)

     * Replication: When stopping replication, any channels that
       had pending transactions could cause a deadlock in Group
       Replication. (Bug #28636768, Bug #28365855)

     * Replication: A patch to correct the handling of quotes
       for identifiers in ROLLBACK TO SAVEPOINT statements in
       the binary log was not correctly applied to subsequent
       MySQL versions. (Bug #28569645)

     * Replication: Following a patch in MySQL 5.7.23, LOAD DATA
       statements stopped statement-based replication from a
       MySQL 5.7.22 master to a replication slave at a later
       release. The problem has now been fixed. (Bug #28541204,
       Bug #92132)

     * Replication: In some circumstances, the CHANGE MASTER TO
       statement could not be used on a replication slave if the
       master info log had been changed from a table
       (master_info_repository=TABLE) into a file
       (master_info_repository=FILE). (Bug #28529558)

     * Replication: mysqlbinlog incorrectly added statements to
       set the sql_require_primary_key system variable (which
       was introduced in MySQL 8.0.13) to ON for events
       involving DML SQL statements. The check carried out when
       the system variable is set to ON is only relevant for DDL
       SQL statements that create new tables or alter the
       structure of existing tables. (Bug #28524803)

     * Replication: When the system variables
       binlog_transaction_dependency_tracking and
       binlog_transaction_dependency_history_size were set or
       read, the types of lock that were required could result
       in a deadlock scenario, because the same locks were also
       required for working with the active binary logs. A new
       lock type is now used instead for access to the
       transaction dependency tracking system variables, so that
       this deadlock cannot occur. (Bug #28511326, Bug #91941,
       Bug #28537209, Bug #92108)

     * Replication: An assertion was raised in debug builds if
       an implicit commit was attempted when the GTID value for
       the next transaction had not yet been determined
       (gtid_next=NOT_YET_DETERMINED). The gtid_next system
       variable has this value immediately after the
       internal-use statement BINLOG has been issued by
       mysqlbinlog to execute a format description event. If a
       statement with an implicit commit was attempted next
       (such as a CREATE TABLE statement), the gtid_next setting
       did not transition to AUTOMATIC state, and was left in an
       unacceptable state. If autocommit was on, the error
       ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON
       was also logged when the statement was attempted.
       To fix this issue, the use of the BINLOG statement is now
       prevented during transactions if it would change the
       state of gtid_next. The error
       ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION is returned if
       this is attempted. Also, when GTIDs are in use and the
       value of gtid_next is NOT_YET_DETERMINED, the next
       statement must either explicitly set gtid_next to a valid
       value or leave the GTID state unaffected. Otherwise the
       error
       ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON
       is returned. (Bug #28490793, Bug #91980)

     * Replication: When group_replication_exit_state_action is
       set to ABORT_SERVER, the Group Replication plugin now
       uses the new component service added by WL#12003
       (https://dev.mysql.com/worklog/task/?id=12003) to
       shutdown MySQL. (Bug #28401703)

     * Replication: When you used
       group_replication_switch_to_single_primary_mode(), if a
       member which also had an asynchronous channel encountered
       an error, the asynchronous replication channel was not
       stopped correctly, and the server could stop
       unexpectedly. (Bug #28382590)

     * Replication: The PURGE BINARY LOGS TO 'log_name'
       statement failed for binary log files that had been moved
       to another location using mysqlbinlogmove. Such files are
       still listed in the binary log index file, but they are
       listed using an absolute path, rather than a path
       relative to the directory where the binary log files are
       normally stored. MySQL Server can now locate and purge
       moved binary log files successfully. (Bug #28284624)

     * Replication: It was possible to use the group coordinator
       based UDFs which configure a group, such as
       group_replication_switch_to_single_primary_mode, while
       members were in the UNREACHABLE or RECOVERING state, and
       this caused the operation to wait until all members
       became ONLINE. This could result in the group coordinator
       operation never completing successfully. Now, if you
       issue any of these UDFs on a group in this state, an
       error is returned. Ensure all members are ONLINE before
       attempting to configure the group using the UDFs. (Bug
       #28284355)

     * Replication: When binlog_format is set to MIXED, if a
       function contained DML statements that applied to a
       temporary table, and also a DROP TEMPORARY TABLE
       statement, the function call was not written to the
       binary log, which caused replication errors. The function
       call is now written to the binary log in mixed
       replication mode if the function contains DML statements
       that operate on a temporary table. (Bug #28258992)

     * Replication: If autocommit was set to 0 for a replication
       slave or Group Replication group member where GTIDs were
       in use and super_read_only=ON was set, server shutdown
       was prevented by a transaction that did not complete. The
       transaction was attempting to save GTIDs to the
       mysql.gtid_executed table, but the update failed because
       super_read_only=ON was set. (With autocommit set to 1,
       the transaction would complete in this situation, and the
       mysql.gtid_executed table would instead be updated at
       server startup.) Now, the check for the super_read_only
       setting is skipped for this task, so the transaction is
       able to save the GTIDs to the mysql.gtid_executed table
       and complete regardless of the combination of
       super_read_only and autocommit settings. (Bug #28183718)

     * Replication: An assertion was raised in debug builds if
       an XA ROLLBACK statement was issued for an unknown
       transaction identifier when the gtid_next value had been
       set manually. The server now does not attempt to update
       the GTID state if an XA ROLLBACK statement fails with an
       error. (Bug #27928837, Bug #90640)

     * Replication: An assertion was raised in debug builds if a
       SELECT... FOR UPDATE statement was issued immediately
       after a transaction was committed or rolled back, and the
       transaction had been assigned a GTID manually using the
       gtid_next session system variable. After gtid_next has
       been used to set a GTID for a transaction, and the
       transaction has been committed or rolled back, another
       explicit SET GTID_NEXT statement must be issued before
       any other statement, otherwise the gtid_next value is
       left undefined. The SELECT... FOR UPDATE statement caused
       a GTID consistency violation in this situation because it
       acquired write locks, although it did not make any
       changes. SELECT... FOR UPDATE statements that acquire
       write locks now return an error in this situation. (Bug
       #27903848, Bug #90547)

     * Replication: Under heavy loads, a race condition in
       binary log group commit could cause the server to stop
       unexpectedly. The tracking of transaction commits has
       been changed to prevent this situation. (Bug #27556117)

     * Replication: The value returned by a SHOW SLAVE STATUS
       statement for the total combined size of all existing
       relay log files (Relay_Log_Space) could become much
       larger than the actual disk space used by the relay log
       files. The I/O thread did not lock the variable while it
       updated the value, so the SQL thread could automatically
       delete a relay log file and write a reduced value before
       the I/O thread finished updating the value. The I/O
       thread then wrote its original size calculation, ignoring
       the SQL thread's update and so adding back the space for
       the deleted file. The Relay_Log_Space value is now locked
       during updates to prevent concurrent updates and ensure
       an accurate calculation. (Bug #26997096, Bug #87832)

     * Replication: If the relay log index file was temporarily
       locked for viewing by a backup process for a replication
       slave, and MySQL Server also attempted to access the file
       at that time for rename or delete operations, the backup
       completed with warnings, but MySQL Server experienced an
       unexpected halt. MySQL Server now retries the file access
       operation a number of times in case this or a similar
       scenario is the explanation and the file becomes
       available again before long. (Bug #25839610)

     * Replication: With sync_binlog=1 set, if the binary log
       was rotated during a commit before the binary log end
       position was updated, replication stopped on the slave
       because the server attempted to use the old binary log
       end position with the new binary log file. The server now
       compares the binary log file name with the active binary
       log file when updating the binary log end position, so
       that the issue does not occur. (Bug #22252394, Bug
       #25524203, Bug #84752)

     * Replication: When a member joined a group that had a
       constant peak load, the member might not be able to move
       from the RECOVERING to the ONLINE state. The cause was
       that:

          + the member was waiting in a loop for the complete
            queue of transactions that arrived during recovery
            to be applied, while new transactions were still
            arriving.

          + even when the complete queue had been applied, the
            member was also checking that the applier was
            paused, which is unlikely to happen in a continuous
            peak workload.
       Now, when the recovery completion policy is waiting for
       transactions to be applied, the member first waits until
       one of the following conditions is fulfilled:

          + the transactions to apply fit within the flow
            control configuration. In other words, the
            transactions to be applied can be applied during the
            next flow control iteration;

          + no transactions are being queued or applied, in the
            case of an empty recovery queue.
       Then, the member waits for the currently queued
       transactions in the group_replication_applier channel to
       be applied, before the member state changes to ONLINE.
       (Bug #89582, Bug #27511404)

     * Microsoft Windows: MySQL Installer could fail after
       failure to remove an existing MySQL service. This is now
       treated as nonfatal so that installation operations can
       continue, but might require a system restart to permit
       service cleanup. (Bug #29016677, Bug #93048)

     * Microsoft Windows: When multiple instances of mysqld were
       started with the --no-monitor option on the same host for
       same user, the SHUTDOWN command shut down the wrong
       server process. This fix creates a unique shutdown event
       name for use with --no-monitor by appending the process
       ID of the process. (Bug #28723675)

     * X DevAPI: When using the X Protocol, a stored procedure
       called with a user variable as an OUT parameter did not
       set the variable's value. (Bug #91907, Bug #28458752)

     * JSON: Iteration over JSON objects resulted in unnecessary
       allocation of strings. (Bug #28975640)

     * JSON: Conversion of JSON values to text caused linear
       growth of the destination string, resulting in an
       unnecessarily high number of reallocations. Now this
       process uses exponential growth instead, to reduce the
       number of allocations required. (Bug #28949700)

     * JSON: YEAR values were stored as opaque data in JSON;
       when JSON documents containing YEAR values were converted
       to text, the YEAR values were shown as base64-encoded
       strings. To resolve this issue, YEAR values are now
       stored as unsigned integers, which are shown as numbers
       when converted to text. An additional benefit of this fix
       is that less storage space is now required for YEAR
       values within JSON documents. (Bug #28947107)

     * JSON: Hit an assert when attempting to execute UPDATE or
       DELETE on an ARCHIVE table containing a JSON column. (Bug
       #28923281)

     * JSON: When trying to select from a JSON column of a
       FEDERATED table, the server returned
       ER_INVALID_JSON_PATH_CHARSET Cannot create a JSON value
       from a string with CHARACTER SET 'binary'.
       In addition, neither DELETE or UPDATE had any effect on a
       FEDERATED table containing a JSON column. (Bug #28877215)

     * JSON: A query of the form SELECT jt.* FROM t1,
       JSON_TABLE(t1.c, '$[*]' COLUMNS (num INT PATH '$[0]')) AS
       jt failed due a permissions error even though the user
       executing the query had the SELECT privilege on column c.
       (Bug #23254268)

     * The code contributed by Facebook for the feature
       implemented by Bug#27855592 was updated. (Bug #28950397)
       References: See also: Bug #27855592.

     * On SuSE Linux, spurious EBUSY return values from
       pthread_mutex_destroy() were not handled. (Bug #28948462)

     * mysqld_safe and mysqld_multi were incorrectly included in
       client-only packages. (Bug #28942508)

     * Mishandling of host cache locking could cause a server
       exit. (Bug #28936159)

     * MySQL Enterprise Firewall did not work well if the
       audit_log plugin was installed. (Bug #28930885, Bug
       #93184)

     * Corrections were made to enable successful builds under
       Visual Studio on Windows. (Bug #28892711, Bug #93077)

     * Previously, the COMPILATION_COMMENT CMake option was used
       by the server (for example, to set the version_comment
       system variable) and by other programs. However, when the
       value contained the word "server", it was inappropriate
       for use by other programs. The server now uses the new
       COMPILATION_COMMENT_SERVER option. Other programs
       continue to use COMPILATION_COMMENT. (Bug #28888510)

     * The server permitted creation of databases with the same
       name as redo log files, which could result in unexpected
       server behavior. Such names are no longer permitted as
       database names. (Bug #28867993)

     * mysqld_multi could fail to pass the correct datadir value
       to mysqld. (Bug #28866662, Bug #90801)

     * A debug assertion that checks parameter schema names
       during MDL key creation for routines, events, and
       triggers to ensure that names are lowercase failed when
       encountering a schema name that included multi-byte
       character. (Bug #28864244)

     * The format specifiers for some error messages were
       improved to avoid displaying incorrect numeric values.
       (Bug #28860795)

     * For debug builds on Windows, unused memory leak checks
       were enabled and could slow down the shutdown process.
       These checks are now enabled only for specialized builds.
       (Bug #28857626)

     * mysql_upgrade could fail to upgrade certain system tables
       if the sql_require_primary_key system variable was
       enabled. (Bug #28855207, Bug #92988)

     * Builds configured with -DWITH_LIBWRAP=ON did not compile.
       (Bug #28853650, Bug #92983)

     * For InnoDB tables, the values of stored or indexed
       virtual generated columns that depended on the DEFAULT()
       function were not correctly updated by ALTER TABLE, if
       the default for a column referenced in this function was
       changed by making column nullable. (Bug #28848265)

     * Corrections were made to enable successful builds under
       Visual Studio on Windows with the /permissive flag turned
       on. (Bug #28842878, Bug #92943)

     * Builds configured with -DCMAKE_BUILD_TYPE=Release did not
       compile. (Bug #28841366, Bug #92945)

     * ALTER TABLE now can use the INPLACE algorithm when these
       conditions apply:

          + For InnoDB tables, statements that modify generated
            stored columns but do not change their type,
            expression, or nullability.

          + For non-InnoDB tables, statements that modify
            generated stored or virtual columns but do not
            change their type, expression, or nullability.
       An example of such a change is a change to the column
       comment. (Bug #28836543)

     * Plugin system variables that had been persisted were not
       applied when the plugin was reinstalled. (Bug #28823972)

     * EXPLAIN ... FOR CONNECTION could modify another
       connection's SQL mode. (Bug #28786981)

     * Removal of Sun RPC and XDR from glibc into a separate
       libtirpc library caused problems with libasan on some
       platforms. (Bug #28785835, Bug #92762, Bug #28897799, Bug
       #93116)

     * It was possible to hit an assert when comparing two ENUM
       values while processing a query of the form SELECT a FROM
       table WHERE b = value and there was an index on column b.
       (Bug #28769996)

     * Concurrent read and write access to the offline_mode
       system variable could result in deadlock. (Bug #28761869)

     * Triggers were loaded into memory in an incorrect order
       when upgrading from MySQL 5.7 to MySQL 8.0, causing an
       assertion failure. (Bug #28760011, Bug #92609)

     * Joins involving the Performance Schema data_locks table
       could produce incorrect results. (Bug #28733170)

     * Some multiply-nested subqueries involving the use of
       scalar subqueries were not handled correctly. (Bug
       #28723670)

     * On Ubuntu, the installed
       /etc/mysql/mysql.conf.d/default-auth-override.cnf file
       was mistakenly created with executable mode. Thanks to
       Evgeniy Patlan for the correction contribution. (Bug
       #28714840, Bug #92587)

     * A memory leak was caused by GET_LOCK() calls with a zero
       timeout that failed due to concurrent connections holding
       the same user-level lock. (Bug #28714367)

     * Heap corruption and a server exit could occur when a
       server hosting a large number of tables was started and
       stopped repeatedly. (Bug #28705511)

     * MySQL Router was missing from MySQL Server MSI packages.
       (Bug #28685556)

     * The example stored function GTID_SUBTRACT_UUID has been
       corrected in the code to match the documented version.
       (Bug #28670170)

     * CAP_SYS_NICE capability is no longer enabled for mysqld
       by MySQL package installers for Linux. (This was done to
       facilitate use of resource groups thread priorities.) For
       Linux deployments that require access to thread
       priorities, consult the MySQL Reference Manual
       instructions for enabling CAP_SYS_NICE capability at
       Resource Group Restrictions
(http://dev.mysql.com/doc/refman/8.0/en/resource-groups.html#resource-group-restrictions).
       (Bug #28670160)

     * The internal implementation of the <=> operator was
       simplified. (Bug #28660232)

     * After a STOP GROUP_REPLICATION statement was issued to
       remove a server instance from a group, multiple instances
       of the error message "[GCS] Error pushing message into
       group communication engine" were logged on the server
       instance. The error is now ignored when a server is in
       the process of leaving a group or is no longer a member
       of a group. (Bug #28658228, Bug #92454)

     * The maximum timeout setting for the waiting period before
       expelling a suspected Group Replication group member has
       been reduced to 3600 seconds (one hour). Previously, the
       group_replication_member_expel_timeout system variable
       could be set to a value of up to 31536000 seconds. The
       new upper limit provides a more reasonable maximum for
       the removal of inactive members from the group. The
       default setting for the timeout is zero, meaning that
       inactive members are liable for expulsion immediately
       after the 5-second detection period ends. Specifying a
       timeout value is useful to avoid unnecessary expulsions
       on slower networks, or in the case of expected transient
       network failures or machine slowdowns. (Bug #28656750)

     * If the CHARACTER SET attribute of some column was
       implicit in JSON_TABLE(... COLUMNS ...), the resulting
       column used the global character_set_results as the
       default character set. The column now uses the session
       character_set_connection and collation_connection values.
       (Bug #28643862)

     * Adding a functional index on an expression that produced
       a row value raised an assertion; now it results in an
       error instead. (Bug #28643252)

     * In debug builds, creating a trigger after setting
       sql-mode to TIME_TRUNCATE_FRACTIONAL caused an assertion
       failure. The SQL mode was not present in the sql_mode
       column of the mysql.triggers data dictionary table. (Bug
       #28642918)

     * When using --log-timestamps=SYSTEM, ISO 8601 timestamps
       in log messages did not take account of daylight saving
       time. (Bug #28632725)

     * The arguments for error ER_IB_MSG_720 were computed
       incorrectly. (Bug #28629175)

     * The server could exit at startup if the option for
       specifying a socket file was not specified correctly.
       (Bug #28609181)

     * It was possible to create an inconsistent foreign key by
       adding a parent table with a different storage engine
       from the child table, then changing the parent table to
       the same storage engine as the child table. (Bug
       #28608460, Bug #92317)

     * When a server is joining a replication group, it attempts
       to connect to the first seed member listed in its
       group_replication_group_seeds system variable. If the
       connection is refused, the joining member tries to
       connect to each of the other seed members in the list in
       order. Previously, If the joining member connected to a
       seed member but did not get added to the replication
       group as a result, the joining member did not make any
       further connection attempts. This situation could occur
       if the seed member failed after the connection was made,
       or if the seed member did not have the joining member's
       address in its whitelist and closed the connection, or if
       the seed member rejected the joining member's request to
       join the group. Now, if the joining member connects to a
       seed member but does not manage to join the group, the
       joining member continues to try the remaining seed
       members in the list in order. (Bug #28602835)

     * Given certain patterns of allocations, copies with
       rebinds of the allocator, and deallocations, it was
       possible for temptable::Allocator to reuse a freed memory
       block. This led to failures in the test suite on Windows
       platforms. (Bug #28595557)

     * Setting time_zone to a negative offset and timestamp to a
       low value triggered an assertion when altering routines
       and views. (Bug #28590623, Bug #92273)

     * Persisting the pid_file system variable to DEFAULT could
       result in a value of NULL for subsequent server startups.
       (Bug #28589736)

     * Incorrect privilege checking could produce an error for
       SELECT ... FOR UPDATE statements that executed
       successfully in MySQL 5.7. (Bug #28581664, Bug #92254)

     * Attempting to rename the parent column of a foreign key
       with ALTER TABLE could fail. (Bug #28581468)

     * Privileges for RESET PERSIST were not checked correctly.
       (Bug #28564239)

     * An overflow occurred when calculating
       AVG(YEAR(datetime_column)). (Bug #28562930)

     * After a server restart, path names of persisted system
       variables in the Performance Schema variables_info table
       could be calculated incorrectly. (Bug #28561584)

     * A partitioned table name check raised an invalid
       assertion. (Bug #28556942)

     * The handler::create() function could be called with an
       error in the condition list, which could prevent an error
       in the handler::create() function from being reported
       properly. (Bug #28556264)

     * For ALTER TABLE, ALGORITHM=INSTANT was incorrectly
       rejected on tables created in a MySQL version prior to
       8.0.12. (Bug #28554157, Bug #92194)

     * mysqlpump did not free all allocated resources when it
       encountered an error, resulting in memory leaks. (Bug
       #28538971, Bug #92131)

     * The COLLATE attribute was rejected for data types in the
       COLUMNS clause of the JSON_TABLE() function. (Bug
       #28538315)

     * For debug builds, the server could exit when attempting
       to roll back CREATE USER statements. (Bug #28536312)

     * Plugin variables with signed values were displayed
       incorrectly. (Bug #28534414, Bug #92107)

     * Mishandling of deprecated system variables could cause
       output from queries on the Performance Schema
       variables_by_thread table to be incorrect. (Bug
       #28515475, Bug #92049)

     * Data races discovered by Thread Sanitizer in
       Event_queue::lock_data and the SAFE_MUTEX implementation
       were fixed. (Bug #28510721, Bug #92041, Bug #28510691,
       Bug #92040)

     * No ER_NEED_REPREPARE diagnostic was pushed to the
       diagnostics area when a reprepare failed for prepared
       statements. (Bug #28509306, Bug #92029)

     * When evaluating an expression using WITH ROLLUP, we now
       write the result of the expression into a temporary table
       only when it has a temporary table column. (Bug
       #28493849, Bug #28523014)

     * For debug builds, incorrect foreign key error checking
       for ALTER TABLE on a TEMPORARY table could result in a
       server exit. (Bug #28493257, Bug #91990)

     * For some system variables, SET PERSIST persisted the
       default value rather than the specified value. (Bug
       #28466045)

     * SET RESOURCE GROUP could not be executed as a prepared
       statement. (Bug #28448258, Bug #91876)

     * Restored a call to Item_field::fix_fields() that was
       inadvertently removed during work done to implement
       window functions. (Bug #28431783)

     * Data races reported by Thread Sanitizer during X Plugin
       startup and shutdown were corrected. (Bug #28407294)

     * Creating a table with a partition description containing
       illegal utf8 characters raised an assertion. (Bug
       #28387488, Bug #91763)

     * mysqldump output could include SQL mode values that have
       been removed. (Bug #28373001, Bug #91714)

     * A potential lock order cycle was corrected. (Bug
       #28366531)

     * On a GTID-enabled server, concurrent statements on the
       INFORMATION_SCHEMA.COLUMNS table could deadlock. (Bug
       #28293047, Bug #91548)

     * CREATE TABLE statements for tables with the utf32 table
       character set and literal strings in the table definition
       raised an assertion. (Bug #28275881)

     * Internal functions were added to support updating the
       server version number upon the successful completion of a
       server upgrade. (Bug #28211486)

     * Comparing log file names as strings using the memcmp()
       function resulted in uninitialized memory read errors.
       The comparison now uses the strncmp() function. Thanks to
       Zsolt Parragi and Laurynas Biveinis for their
       contributions. (Bug #28178776, Bug #90238)

     * On systems where Group Replication's Group Communication
       System (GCS) used the systemd-resolved service for
       network name resolution, if the host name could not be
       resolved, GCS kept trying indefinitely. Now, if a retry
       message is returned from any name resolution service, GCS
       makes a limited number of retries, then concludes that
       the host name is unresolvable. (Bug #28177861)

     * The server mishandled stored program and resource group
       names that differed only in accents. (Bug #28122841)

     * The optimizer skipped the second column in a composite
       index when executing an inner join with a LIKE clause
       against the second column. (Bug #28086754)

     * CREATE TABLE ... SELECT could create date columns with
       "zero" date default values when it should have created
       them without a default value. (Bug #28022129)

     * The transformation of IN subquery predicates into
       semijoins was not handled correctly for a very large
       number of tables. (Bug #28004674)

     * The bitmap used for reading fields from the storage
       engine was not enabled correctly when performing the
       filesort which is added to the last of any temporary
       tables created for window functions. In the case where
       there was no need for a temporary table, the server added
       a filesort to the output from the select table, but the
       removed reference (the WHERE condition) was not added.
       Now in such cases, the reference is added to the select
       table when the first window function needs sorting and no
       temporary table was created before processing this window
       function. (Bug #27975193)

     * After seeing a row in the range frame, if another row was
       later determined to be appearing before this range frame,
       the server continued to check for new rows. This led to
       the next frame calculation being done incorrectly. (Bug
       #27973860)

     * Server mishandling of SIGHUP signals could result in a
       server exit. (Bug #27966483, Bug #90742)

     * DELETE WHERE a=constant from a table with column a and
       partitioned by the value of a generated column b led to
       an assertion in debug builds. (Bug #27954073)

     * INFORMATION_SCHEMA queries could cause a server exit when
       updating dynamic table statistics. (Bug #27898108)

     * A metadata locking deadlock could occur when opening a
       foreign key parent table. (Bug #27859086)

     * Improper memory handling by account management statements
       could result in server misbehavior. (Bug #27820277)

     * In certain cases, window functions did not handle ORDER
       BY and PARTITION BY correctly. (Bug #27816506)

     * The MySQL query optimizer identifies each predicate to be
       pushed down to a table as a table condition; as part of
       this process it checks to see whether a given predicate
       among the table conditions is already known to be true in
       virtue of the selected access path for the table, in
       which case the predicate can safely be eliminated.
       For example, when executing SELECT * FROM t1 WHERE pk=1,
       where pk is the primary key of table t1, the ref access
       method is selected. Since we know that this already
       returns only rows for which pk=1, further evaluation of
       this condition as a filter (Using where) should be
       eliminated.
       When optimizing a query which includes a GROUP BY or
       ORDER BY, a late optimizer check is performed to discover
       whether sorting can be skiped by using a sorted index
       instead. Since this is done after another index may have
       been chosen for accessing the table to be sorted, some
       predicates thought to be redundant (due to the previous
       access path selected) could be removed prematurely. To
       compensate for this, the following actions were
       performed:

          + Reconstruction of a table condition containing
            predicates previously eliminated due to the access
            method already being selected.

          + Performing a check to see whether any sorted index
            existed such that sorting could be avoided, possibly
            modifying the access plan.
       Issues arose because the following actions also intended
       to remedy early predicate removal were not performed
       correctly:

          + Whether the access plan was modified or not, any
            extra predicates added back in the reconstructed
            table condition mentioned previously became a
            permanent part of the table condition.

          + When the access plan was changed to use another
            sorted index, no analysis was performed for the new
            index in order to remove predicates made obsolete by
            the new index.
       A further problem existed for storage engines
       implementing condition pushdown, such as NDBCLUSTER: The
       conditions pushed down were generated from the table
       condition prior to analysis, such that, if the access
       path was later changed, the pushed condition did not
       contain the predicates already removed, making condition
       pushdown less efficient.
       The root cause of this issue was that part_of_refkey()
       analysis was performed on table predicates before the
       access method for the table had been completely decided.
       This is fixed by removing such early analysis. (Bug
       #27808758, Bug #27814026)

     * A windowing function that included an ORDER BY column
       clause failed with Unknown field in window order by even
       when the column was found in the table being queried.
       (Bug #27808099)

     * Executing a prepared statement to do a multiple-row
       insert with large number of placeholders consumed
       excessive memory and could execute slowly. (Bug
       #27703912)

     * On Windows, if the Visual C++ Redistributable for Visual
       Studio had been removed, MySQL uninstallation using the
       MSI installer failed. (Bug #27621546)

     * The parser accepted invalid SET statement syntax in
       trigger definitions that could result in a server exit.
       (Bug #27595603)

     * The server failed to start if the keyring_encrypted_file
       plugin keyring file was invalid. (Bug #27588064)

     * Keyring migration failed with source and destination
       keyring plugins of keyring_okv and
       keyring_encrypted_file, respectively. (Bug #27493970)

     * It was possible in debug builds for a windowing function
       using a signed integer to mishandle a frame that included
       FOLLOWING. (Bug #27452365)

     * When executing a prepared statement with a procedure call
       with the CURSOR_TYPE_READ_ONLY flag set, the client
       library hung if the procedure performed a SELECT that
       returned an empty result set. (Bug #27443252, Bug #89214)

     * Names of referenced columns of foreign keys were always
       shown in lowercase in SHOW CREATE TABLE output and the
       INFORMATION_SCHEMA.KEY_COLUMN_USAGE table. (Bug
       #27353767, Bug #88718)

     * Loading and unloading the audit_log plugin while
       performing other concurrent activity could cause the
       server to become unresponsive. (Bug #27325622)

     * The data dictionary properties interface (dd::Properties)
       and implementation was revised to provide a new method of
       defining valid keys for property objects. (Bug #27309072,
       Bug #89031, Bug #27309082, Bug #89032)

     * Installing and uninstalling the validate_password
       component concurrently with SET PASSWORD could cause
       component failure. (Bug #27020979)

     * Some typos in server source code were fixed. Thanks to
       Hyunwoo Park for the contribution. (Bug #26189673, Bug
       #86565)

     * After column privileges were granted to a table, a
       HANDLER READ call asserted during privilege checking.
       (Bug #25987758)

     * A check that ensures compatibility of referencing and
       referenced column types in a foreign key definition was
       moved from the storage engine layer to the SQL layer.
       (Bug #25722927)

     * The parser performed some out-of-memory checks
       incorrectly. (Bug #25633994)

     * When a subquery contained a UNION, the count of the
       number of subquery columns was calculated incorrectly.
       (Bug #24899924)

     * A race condition between user-management statements and
       other statements that tried to access grant tables
       directly could result in deadlock and transaction
       rollback. (Bug #24481240)

     * When the server was started with the --skip-name-resolve
       option, spurious warnings could be written to the error
       log about ignoring accounts with a host name part of
       localhost. (The accounts in fact were used and not
       ignored.) (Bug #23329861, Bug #81441)

     * DML statements using IGNORE were not always handled
       correctly on tables having generated columns. (Bug
       #22990029)

     * MySQL now removes trivial WHERE conditions arising from
       constant literal expressions during preparation, rather
       than at a later stage in optimization. This should result
       in improved plans for queries with outer joins containing
       trivial conditions, such as this one:
SELECT * FROM t1 LEFT JOIN t2 ON condition_1 WHERE condition_2 OR 0 =
1

       After removing the redundant OR 0 = 1 condition the
       optimizer can rewrite the query as an inner join, as
       shown here:
SELECT * FROM t1 LEFT JOIN t2 WHERE condition_1 AND condition_2

       For more information, see What Is New in MySQL 8.0
       (http://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html),
       and Outer Join Optimization
       (http://dev.mysql.com/doc/refman/8.0/en/outer-join-optimization.html).
       (Bug #16893426, Bug #28237111, Bug#28239008, Bug #28341790)
       References: See also: Bug #28197977, Bug #28240054.

     * Updates for BLOB columns in FEDERATED tables did not
       work. (Bug #11748067, Bug #34997)

     * Each of the functions REGEXP_REPLACE(), REGEXP_SUBSTR(),
       REGEXP_LIKE(), and REGEXP_INSTR() returned a DOUBLE
       instead of a value of the function's specified return
       type. (Bug #90039, Bug #27682225)

     * A query employing a dynamic range and an index merge
       could use more memory than expected. (Bug #89953, Bug
       #27659490)

     * Selecting from a table having a CHAR column with a NO_PAD
       collation yielded inconsistent results. (Bug #89753, Bug
       #27578340)

MySQL Router 8.0.14 for MySQL Server 8.0 and 5.7 has been released (no replies)

$
0
0
Dear MySQL users,

MySQL Router 8.0.14 is a new release for MySQL Router 8.0 series.

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

The MySQL Router is a new building block for high availability solutions
based on MySQL InnoDB clusters.

By taking advantage of the new Group Replication technology, and
combined with the MySQL Shell, InnoDB clusters provide an integrated
solution for high availability and scalability for InnoDB based MySQL
databases, that does not require advanced MySQL expertise.

The deployment of applications with high availability requirements is
greatly simplified by MySQL Router. MySQL client connections are
transparently routed to online members of a InnoDB cluster, with MySQL
server outages and cluster reconfigurations being automatically handled
by the Router.

To download MySQL Router 8.0.14, see the "Generally Available (GA)
Releases" tab at http://dev.mysql.com/downloads/router. Package
binaries are available for several platforms and also as a source code
download.

Documentation for MySQL Router can be found at
http://dev.mysql.com/doc/mysql-router/en/

Enjoy!

Changes in MySQL Router 8.0.14 (Not yet released)


     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed


     * A new dynamic configuration bootstrap feature was added
       that tracks the current MySQL InnoDB cluster Metadata
       servers. This replaces the existing
       bootstrap_server_addresses option with the new
       dynamic_config option in mysqlrouter.conf.
       MySQL Router now tracks and stores active MySQL InnoDB
       cluster Metadata server addresses and loads them if
       Router is restarted. Previously, metadata server
       information was defined during Router's initial bootstrap
       operation and stored statically as
       bootstrap_server_addresses in the configuration file.
       This new dynamic_config option is generated by
       --bootstrap and is defined under mysqlrouter.conf's
       [DEFAULT] section. Its value points to a generated JSON
       file named state.json that's initialized with InnoDB
       cluster Metadata server addresses and the group
       replication ID; and additional information is added and
       updated while Router is running.
       The bootstrap process no longer defines
       bootstrap_server_addresses because dynamic_config
       replaces its functionality; and these two options cannot
       be set at the same time. For backwards compatibility, if
       only bootstrap_server_addresses is set then it functions
       as it did in previous Router versions and this new
       dynamic configuration functionality is not used. (Bug
       #28082857, Bug #91029)

     * MySQL Router now persistently tracks the metadata server
       addresses rather than only using the static list defined
       in the configuration file using the destinations option.

Bugs Fixed


     * The --version output was aligned with MySQL Server's
       layout. (Bug #28899194)

     * Linking Router against libmsyqlclient that was built with
       DBUG enabled led to slow Router shutdown procedures. (Bug
       #28656618)

     * Fixed a thread shutdown race condition. (Bug #28610484)

     * Sending mysqlrouter a SIGTERM would take at least 100ms
       to shut down. Now a concurrent plugin shutdown queue was
       added to speed up the shutdown process. (Bug #28570122)

     * A metadata-cache API method was added to check the
       initialization status. Routing plugins use this during
       initialization to safely register the callbacks after
       metadata-cache is initialized. (Bug #28569717)

     * Installing MySQL Server with Router from source or
       building a tarball with "make package" would create a top
       level "data/" directory as part of the "Router"
       component. Due to possible collisions with MySQL Server,
       "data/" was changed to "var/lib/mysqlrouter". (Bug
       #28537733)

     * The connection error counter that blocks clients after
       max_connect_errors connection errors did not reset after
       a successful connection. (Bug #27995042, Bug #90809)

MySQL Enterprise Backup 8.0.14 has been released (no replies)

$
0
0
MySQL Enterprise Backup 8.0.14, a new version of the online MySQL backup
tool, is now available for download from the My Oracle Support (MOS) website
as our latest GA release. This release will be available on eDelivery (OSDC)
after the next upload cycle. MySQL Enterprise Backup is a commercial
extension to the MySQL family of products.

MySQL Enterprise Backup 8.0.14 supports only the MySQL Server 8.0.14.
For earlier versions of MySQL 8.0, use the MySQL Enterprise Backup
version with the same version number as the server. For MySQL server
5.7, please use MySQL Enterprise Backup 4.1 and for MySQL Server 5.6
and 5.5, please use MySQL Enterprise Backup 3.12.

A brief summary of the changes in MySQL Enterprise Backup (MEB)
version 8.0.14 is given below.

------

Changes in MySQL Enterprise Backup 8.0.14 (2019-01-21, General Availability)

     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed


     * mysqlbackup now supports encrypted binary and relay log.
       See Working with Encrypted Binary and Relay Logs
(http://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/advanced.encrypted-binlog-relaylog.html)
       for details.

     * mysqlbackup now supports the --ssl-fips-mode option,
       which controls whether mysqlbackup operates in FIPS mode.
       See FIPS Support
       (http://dev.mysql.com/doc/refman/8.0/en/fips-mode.html)
       for details.

Bugs Fixed


     * An apply-incremental-backup operation failed with an
       error (RDR1 ERROR: Unable to remove relaylog files from
       full backup) when the incremental backup was created with
       the --compress option. (Bug #28366241)

     * mysqlbackup quit unexpectedly during an
       apply-incremental-backup operation if the backed up
       server had been started using relative paths for
       --datadir and --log-bin. (Bug #28334521)

     * Attempts to restore a backup of a MySQL 5.7 Server to a
       MySQL 8.0 Server resulted in a strange error message
       (Server_version is not obtained). With this fix,
       mysqlbackup now indicates that the operation is not
       supported. For related information, see Restoring a
       Backup with a Database Upgrade or Downgrade
(http://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/restore-upgrade.html).
       (Bug #27952379)

MySQL Connector/ODBC 8.0.14 has been released (no replies)

$
0
0

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 (no replies)

$
0
0
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/J 8.0.14 has been released (no replies)

$
0
0
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

     * Bugs Fixed

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 Community Server 5.7.25 has been released (no replies)

$
0
0

Dear MySQL users,

MySQL Server 5.7.25, a new version of the popular Open Source Database
Management System, has been released. MySQL 5.7.25 is recommended for
use on production systems.

For an overview of what's new in MySQL 5.7, please see

http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html

For information on installing MySQL 5.7.25 on new servers, please see
the MySQL installation documentation at

  http://dev.mysql.com/doc/refman/5.7/en/installing.html

MySQL Server 5.7.25 is available in source and binary form for a number
of platforms from our download pages at

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

MySQL Server 5.7.25 is also available from our repository for Linux
platforms, go here for details:

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

Windows packages are available via the Installer for Windows or .ZIP
(no-install) packages for more advanced needs. The point and click
configuration wizards and all MySQL products are available in the
unified Installer for Windows:

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

5.7.25 also comes with a web installer as an alternative to the full
installer.

The web installer doesn't come bundled with any actual products and
instead relies on download-on-demand to fetch only the products you
choose to install. This makes the initial download much smaller but
increases install time as the individual products will need to be
downloaded.

We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc.:

  http://bugs.mysql.com/report.php

The following link lists the changes in the MySQL 5.7 since the release
of MySQL 5.7.24. It may also be viewed online at

http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-25.html

Enjoy!

Changes in MySQL 5.7.25 (2019-01-21, General Availability)


     * Deprecation and Removal Notes

     * Pluggable Authentication

     * Security Notes

     * Functionality Added or Changed

     * Bugs Fixed

Deprecation and Removal Notes


     * The resolveip and resolve_stack_dump utilities are now
       deprecated and will be removed in MySQL 8.0. nslookup, host, or
       dig can be used instead of resolveip. Stack traces from official
       MySQL builds are always symbolized, so there is no need to use
       resolve_stack_dump.

Pluggable Authentication


     * If the LDAP port number is configured as 636 or 3269, the
       plugin now uses LDAPS (LDAP over SSL) instead of LDAP.  The port
       number is settable using the authentication_ldap_sasl_server_port
       or authentication_ldap_simple_server_port system variable.
       (LDAPS differs from startTLS.) (Bug #28743563)

     * Previously, for LDAP authentication with proxying, LDAP
       authentication plugins used the first group name returned by the
       LDAP server as the MySQL proxy user account name.  The
       authentication string for a MySQL account now can specify a list
       of groups to match, in preference order, and can optionally map
       the matching group name to a specified MySQL proxy user name. See
       LDAP Pluggable Authentication
       http://dev.mysql.com/doc/refman/5.7/en/ldap-pluggable-authentication.html .

Security Notes


     * The linked OpenSSL library for the MySQL Commercial
       Server has been updated to version 1.0.2q. Issues fixed in the
       new OpenSSL version are described at
       http://www.openssl.org/news/vulnerabilities.html.  This change
       does not affect the Oracle-produced MySQL Community build of
       MySQL Server, which uses the yaSSL library instead. (Bug
       #28988091)

Functionality Added or Changed


     * Microsoft Windows: The access control granted to clients
       on the named pipe created by the MySQL server now is set to the
       minimum necessary for successful communication on Windows. Newer
       MySQL client software can open named pipe connections without any
       additional configuration. If older client software cannot be
       upgraded immediately, the new named_pipe_full_access_group server
       system variable can be used to give a Windows group the necessary
       permissions to open a named pipe connection. Membership in the
       full-access group should be restricted and temporary.

Bugs Fixed


     * InnoDB: A dangling pointer caused a memory leak. (Bug
       #28693568)

     * InnoDB: An ON DELETE CASCADE operation on table with a
       foreign key constraint and an indexed virtual column caused the
       server to exit. (Bug #28470805)

     * InnoDB: An incorrectly written DML log involving a
       virtual column value raised an assertion. (Bug #28448853)

     * InnoDB: Using the O_DIRECT_NO_FSYNC innodb_flush_method
       setting could cause the system to hang due to file system
       metadata becoming unsynchronized. To prevent this issue from
       occurring in O_DIRECT_NO_FSYNC mode, InnoDB now calls fsync()
       after creating a new file, after increasing file size, and after
       closing a file. The fsync() system call is still skipped after
       each write operation.  With the changes described above,
       O_DIRECT_NO_FSYNC mode can now be safely used on EXT4 and XFS
       file systems. (Bug #27309336)

     * InnoDB: An assertion was raised when attempting to write
       to a tablespace file greater than 4GB in size on a 64-bit Windows
       system. The failure was due to a narrowing cast.  (Bug #26636815,
       Bug #87423)

     * Partitioning: Repeated ALTER TABLE statements on
       partitioned tables containing BLOB or TEXT columns were not
       always handled correctly. (Bug #28491099)

     * Partitioning: ALTER TABLE ... EXCHANGE PARTITION did not
       work when the partitioned table had one or more partition
       definitions using the DATA DIRECTORY option. This fix supports
       partitioned tables using the InnoDB storage engine only. (Bug
       #19730200)

     * Replication: When adding a new member to a group, if the
       certification information was too big to transmit, an event was
       generated that caused failures in all group members. To avoid
       this situation, now if the certification information is too large
       an error is generated which makes the joining member leave the
       group.  (Bug #28900691, Bug #28443958)

     * Replication: When stopping replication, any channels that
       had pending transactions could cause a deadlock in Group
       Replication. (Bug #28636768, Bug #28365855)

     * Replication: A patch to correct the handling of quotes
       for identifiers in ROLLBACK TO SAVEPOINT statements in the binary
       log was not correctly applied to subsequent MySQL versions. (Bug
       #28569645)

     * Replication: Following a patch in MySQL 5.7.23, LOAD DATA
       INFILE statements stopped statement-based replication from a
       MySQL 5.7.22 master to a replication slave at a later release.
       The problem has now been fixed. (Bug #28541204, Bug #92132)

     * Replication: In some circumstances, the CHANGE MASTER TO
       statement could not be used on a replication slave if the master
       info log had been changed from a table
       (master_info_repository=TABLE) into a file
       (master_info_repository=FILE). (Bug #28529558)

     * Replication: When the system variables
       binlog_transaction_dependency_tracking and
       binlog_transaction_dependency_history_size were set or read, the
       types of lock that were required could result in a deadlock
       scenario, because the same locks were also required for working
       with the active binary logs. A new lock type is now used instead
       for access to the transaction dependency tracking system
       variables, so that this deadlock cannot occur. (Bug #28511326,
       Bug #91941, Bug #28537209, Bug #92108)

     * Replication: The PURGE BINARY LOGS TO 'log_name'
       statement failed for binary log files that had been moved to
       another location using mysqlbinlogmove. Such files are still
       listed in the binary log index file, but they are listed using an
       absolute path, rather than a path relative to the directory where
       the binary log files are normally stored. MySQL Server can now
       locate and purge moved binary log files successfully. (Bug
       #28284624)

     * Replication: If autocommit was set to 0 for a replication
       slave or Group Replication group member where GTIDs were in use
       and super_read_only=ON was set, server shutdown was prevented by
       a transaction that did not complete. The transaction was
       attempting to save GTIDs to the mysql.gtid_executed table, but
       the update failed because super_read_only=ON was set. (With
       autocommit set to 1, the transaction would complete in this
       situation, and the mysql.gtid_executed table would instead be
       updated at server startup.) Now, the check for the
       super_read_only setting is skipped for this task, so the
       transaction is able to save the GTIDs to the mysql.gtid_executed
       table and complete regardless of the combination of
       super_read_only and autocommit settings. (Bug #28183718)

     * Replication: An assertion was raised in debug builds if
       an XA ROLLBACK statement was issued for an unknown transaction
       identifier when the gtid_next value had been set manually. The
       server now does not attempt to update the GTID state if an XA
       ROLLBACK statement fails with an error. (Bug #27928837, Bug
       #90640)

     * Replication: The value returned by a SHOW SLAVE STATUS
       statement for the total combined size of all existing relay log
       files (Relay_Log_Space) could become much larger than the actual
       disk space used by the relay log files. The I/O thread did not
       lock the variable while it updated the value, so the SQL thread
       could automatically delete a relay log file and write a reduced
       value before the I/O thread finished updating the value. The I/O
       thread then wrote its original size calculation, ignoring the SQL
       thread's update and so adding back the space for the deleted
       file. The Relay_Log_Space value is now locked during updates to
       prevent concurrent updates and ensure an accurate calculation.
       (Bug #26997096, Bug #87832)

     * Replication: If the relay log index file was temporarily
       locked for viewing by a backup process for a replication slave,
       and MySQL Server also attempted to access the file at that time
       for rename or delete operations, the backup completed with
       warnings, but MySQL Server experienced an unexpected halt. MySQL
       Server now retries the file access operation a number of times in
       case this or a similar scenario is the explanation and the file
       becomes available again before long. (Bug #25839610)

     * Replication: With sync_binlog=1 set, if the binary log
       was rotated during a commit before the binary log end position
       was updated, replication stopped on the slave because the server
       attempted to use the old binary log end position with the new
       binary log file. The server now compares the binary log file name
       with the active binary log file when updating the binary log end
       position, so that the issue does not occur. (Bug #22252394, Bug
       #25524203, Bug #84752)

     * The keyring_aws plugin was missing from Commercial
       packages for macOS.  The supported macOS versions for this plugin
       now are macOS 10.13 and 10.14. (Bug #29051838)

     * MySQL Enterprise Firewall did not work well if the
       audit_log plugin was installed. (Bug #28930885, Bug #93184)

     * The server permitted creation of databases with the same
       name as redo log files, which could result in unexpected server
       behavior. Such names are no longer permitted as database names.
       (Bug #28867993)

     * Removal of Sun RPC and XDR from glibc into a separate
       libtirpc library caused problems with libasan on some platforms.
       (Bug #28785835, Bug #92762, Bug #28897799, Bug #93116)

     * In LDAP group search filter values, special characters
       were not escaped. Special characters in the user DN now are
       escaped with their hexadecimal equivalant as follows:
       *  =>  \2a
       (  =>  \28
       )  =>  \29
       \  =>  \5c
       \0 =>  \00  (Bug #28743525)

     * A memory leak was caused by GET_LOCK() calls with a zero
       timeout that failed due to concurrent connections holding the
       same user-level lock. (Bug #28714367)

     * mysqlpump did not free all allocated resources when it
       encountered an error, resulting in memory leaks. (Bug #28538971,
       Bug #92131)

     * For debug builds, the server could exit when attempting
       to roll back CREATE USER statements. (Bug #28536312)

     * Mishandling of deprecated system variables could cause
       output from queries on the Performance Schema variables_by_thread
       table to be incorrect. (Bug #28515475, Bug #92049)

     * On a GTID-enabled server, concurrent statements on the
       INFORMATION_SCHEMA.COLUMNS table could deadlock. (Bug #28293047,
       Bug #91548)

     * Comparing log file names as strings using the memcmp()
       function resulted in uninitialized memory read errors.  The
       comparison now uses the strncmp() function. Thanks to Zsolt
       Parragi and Laurynas Biveinis for their contributions. (Bug
       #28178776, Bug #90238)

     * The optimizer skipped the second column in a composite
       index when executing an inner join with a LIKE clause against the
       second column. (Bug #28086754)

     * CREATE TABLE ... SELECT could create date columns with
       "zero" date default values when it should have created them
       without a default value. (Bug #28022129)

     * The transformation of IN subquery predicates into
       semijoins was not handled correctly for a very large number of
       tables. (Bug #28004674)

     * Server mishandling of SIGHUP signals could result in a
       server exit. (Bug #27966483, Bug #90742)

     * When the character set of one string comparison operand
       was a superset of the character set of the other operand, some
       comparisons were disallowed that should be permitted by
       converting the operand with the "smaller" character set to the
       "larger" character set. utf8mb4 and utf32 are considered to be a
       superset of any other encoding. (Bug #27897053, Bug #25642319,
       Bug #85224)

     * Improper memory handling by account management statements
       could result in server misbehavior. (Bug #27820277)

     * Executing a prepared statement to do a multiple-row
       insert with large number of placeholders consumed excessive
       memory and could execute slowly. (Bug #27703912)

     * The parser accepted invalid SET statement syntax in
       trigger definitions that could result in a server exit.  (Bug
       #27595603)

     * The server failed to start if the keyring_encrypted_file
       plugin keyring file was invalid. (Bug #27588064)

     * Keyring migration failed with source and destination
       keyring plugins of keyring_okv and keyring_encrypted_file,
       respectively. (Bug #27493970)

     * When executing a prepared statement with a procedure call
       with the CURSOR_TYPE_READ_ONLY flag set, the client library hung
       if the procedure performed a SELECT that returned an empty result
       set. (Bug #27443252, Bug #89214)

     * The parser performed some out-of-memory checks
       incorrectly. (Bug #25633994)

     * When a subquery contained a UNION, the count of the
       number of subquery columns was calculated incorrectly.  (Bug
       #24899924)

     * When binlog_format is ROW or MIXED, operations on
       temporary tables are not logged. Previously, the exception to
       this rule was that when the connection was terminated at the end
       of the session, the statement DROP TEMPORARY TABLE IF EXISTS was
       logged for any temporary tables that had been opened in the
       session. For row-based replication, this behavior caused an
       unnecessary write to the binary log, and added a transaction
       sequence number for the GTID where these were enabled.  Now, when
       a temporary table is created in a session, the binary logging
       format is tracked. The DROP TEMPORARY TABLE IF EXISTS statement
       is only logged at the end of the session if statement-based
       format was in effect when the temporary table was created, so the
       CREATE TEMPORARY TABLE statement was logged. If row-based or
       mixed-format binary logging was in use when the table was
       created, the DROP TEMPORARY TABLE IF EXISTS statement is not
       logged.  Thanks to Laurynas Biveinis for the patch. (Bug
       #24670909, Bug #83003, Bug #28606948)

     * DML statements using IGNORE were not always handled
       correctly on tables having generated columns. (Bug #22990029)

     * A query employing a dynamic range and an index merge
       could use more memory than expected. (Bug #89953, Bug #27659490)

On Behalf of MySQL Release Engineering Team,
Surabhi Bhat

MySQL Connector/NET 8.0.14 has been released (no replies)

$
0
0
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)

Functionality Added or Changed

     * The internal method called by the
       MySqlX.XDevAPI.Relational.Table.Count,
       MySqlX.XDevAPI.Collection.Count, and
       MySqlX.XDevAPI.Collection<T>.Count methods were moved to
       a standardized location within the library.

     * The auth connection option (along with aliases
       authentication and authentication mode) was removed from
       the MySqlBaseConnectionStringBuilder class. This option
       now is available for X Protocol connections only.

     * The following obsolete (deprecated) members of
       Connector/NET 8.0 API classes were removed:

          + Collection.Remove(Object) method

          + Collection.Remove(DbDoc) method

          + FindStatement.Limit(Int64, Int64) method

          + MySqlParameterCollection.Add(String, Object) method

          + TableSelectStatement.Limit(Int64, Int64) method

          + BaseResult.WarningCount property

          + MySqlBaseConnectionStringBuilder.Auth property

          + Result.RecordsAffected property

          + SqlResult.AutoIncrementValue property

          + SqlResult.RecordsAffected property

On Behalf of MySQL Release Engineering Team,
Surabhi Bhat

MySQL Workbench 8.0.14 has been released (no replies)

$
0
0
Dear MySQL users,

The MySQL developer tools team announces 8.0.14 as our general available (GA) for
MySQL Workbench 8.0.

For the full list of changes in this revision, visit
http://dev.mysql.com/doc/relnotes/workbench/en/changes-8-0.html

For discussion, join the MySQL Workbench Forums:
http://forums.mysql.com/index.php?152

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/tools/workbench/


Enjoy!


Changes in MySQL Workbench 8.0.14 (2019-01-21, General
Availability)


     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed


     * The following new functions were added to the Workbench
       GRT module:

          + activateDiagram(<Diagram>)
            Opens the selected EER diagram for use with the
            exportPNG, exportSVG, exportPS, and exportPDF
            functions.

          + exportDiagramToPng(<Diagram>, <path>)
            Performs a PNG export of an EER diagram to the path
            provided without activating it.
       (Bug #28853802, Bug #92985)

     * MySQL Workbench now supports macOS 10.14 Mojave,
       including full compatibility with the Dark Mode color
       scheme. (Bug #28831956, Bug #92902)

     * The Adv. Find tab operation that searched an open EER
       diagram by database objects only was removed. 
       (Bug #28740047)

     * All editions of MySQL Workbench and the bundled libraries
       were upgraded to use OpenSSL 1.0.2q. (Bug #28695759)

     * Keyboard access was added to the home screen tab to
       enable navigation using the Tab and Enter keys. In
       addition, the screen view now scrolls to display a
       selected item if the item was off-screen when highlighted
       with the Tab key.
       On Windows and Linux hosts, the Application key and
       Ctrl+F10 now open a menu of commands (context menu)
       related to the selection.

     * Two redundant features were removed from all platforms:

          + The connection information pop-up sheet on the home
            screen tab
            Instead, open Manage Connections from the Database
            menu (or Edit Connection from the context menu of
            each connection) to view connection details.

          + The merge icon (two arrows pointing at each other)
            located in the Navigation area of the side panel
            Content from the Administration and Schemas tabs
            were merged or split when this icon was toggled.
            Now, the administration section links and schema
            tree appear in separate tabs only.

Bugs Fixed


     * Valid decimal data within a Microsoft SQL Server table
       generated an error when used with the MySQL Workbench
       Migration Wizard. (Bug #28962023, Bug #93293)

     * The InnoDB status shown within the Administration -
       Dashboard tab displayed the wrong usage percent. 
       (Bug #28919419)

     * A conflicting dependency was removed that prevented the
       mysql-connector-c++-devel package installation when MySQL
       Workbench was installed first. (Bug #28915929,
       Bug #93172)

     * The on-screen process of editing a stored procedure did
       not prompt to save the changes. (Bug #28880743,
       Bug #93068)

     * A new table added to an existing model caused MySQL
       Workbench to stop working. (Bug #28879925, Bug #93067)

     * The alter-table operation when applied to partitioned
       tables on Windows caused MySQL Workbench to stop working.
       (Bug #28856542, Bug #92990)

     * Characters from Cyrillic character sets when included in
       the path to SSH key files caused valid connection
       attempts to fail without producing a clear error message.
       These characters now are permitted within the path. 
       (Bug #28814329, Bug #92847)

     * Connections made to a remote MySQL server over SSH did
       not recover properly after the network was interrupted
       temporarily. (Bug #28806660, Bug #90884)

     * New accounts created to use standard authentication were
       instead created to require strong password encryption
       when the default_authentication_plugin server system
       variable was configured with the caching_sha2_password
       value. (Bug #28777856, Bug #92740)

     * The default user name, newuser, was not accepted when it
       was used to create a new account. (Bug #28776902,
       Bug #92738)

     * The operation to migrate a Microsoft SQL Server schema
       produced an error when it encountered problematic tables
       during the reverse-engineering step. (Bug #28747888, 
       Bug #92659)

     * A table editor tab that was opened by clicking the table
       icon from within the sidebar (Schemas tab) displayed the
       correct SELECT * FROM query and results, but the query
       text did not line up along the left margin as expected.
       (Bug #28730407)

     * Context-menu actions (New Tab, Save Tab, or Copy Path to
       Clipboard) when applied to an open SQL editor tab caused
       the tab to close unexpectedly on Linux. (Bug #28721377)

     * The color used to highlight a query in the SQL editor was
       the same color used for the text, which made the selected
       query appear to be missing when it was highlighted. 
       (Bug #28691256, Bug #92535, Bug #28715080)

     * The Report a Bug action from the Help menu returned an
       error instead of opening the MySQL bug database on macOS
       systems. (Bug #28612380, Bug #92327)

     * The last file selected from a previous directory during
       any browse operation was carried over after navigating to
       a new directory and without selecting a new file from the
       directory. Files now must be selected explicitly within
       the browse dialog box. (Bug #28608962, Bug #92104)

     * Some columns within a Microsoft SQL Server database table
       were not migrated as expected. The operation returned an
       error when copying mixed data types. (Bug #27838190, 
       Bug #84777)

     * Multiple SQL queries executed sequentially in separate
       tabs did not resolve as expected on Windows. The first
       query ran to completion, but the tab would not close. The
       second query never finished. Thereafter, no additional
       queries could run and the program would not exit. 
       (Bug #25965655, Bug #86090)

     * The Migration Wizard was unable to retrieve a schema list
       from source when the source RDBMS was Microsoft SQL
       Server and a valid FreeTDS driver (required by Linux) was
       provided. (Bug #25457611)

     * No context help was displayed with a view or stored
       procedure in the SQL editor. (Bug #24697574)

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

MySQL Shell 8.0.14 for MySQL Server 8.0 and 5.7 has been released (no replies)

$
0
0
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!

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

Changes in MySQL Shell 8.0.14 (2019-01-21)

     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed

     * When started from the command line, MySQL Shell prints
       information about the product, information about the
       session (such as the default schema and connection ID),
       warning messages, and any errors that are returned during
       startup and connection. You can now suppress printing of
       information that you do not need by using the
       --quiet-start[=1|2] mysqlsh command-line option. With a
       value of 1 (the default when the option is specified),
       information about the MySQL Shell product is not printed,
       but session information, warnings, and errors are
       printed. With a value of 2, only errors are printed.
       As part of this work, the printed information was tidied
       up so that the information about the MySQL Shell product
       is printed before the information about the session.
       Also, the handling of error printing was normalized to
       send diagnostic data to stderr, and errors to stdout.
       (Bug #28833718, Bug #28855291)

     * MySQL Shell connections using classic MySQL protocol now
       support compression for information sent between the
       client and the server. You can specify compression when
       you start MySQL Shell and connect using command line
       options, or in a URI string or a key-value pair when you
       create a session using other interfaces. You can also use
       the MySQL Shell configuration option defaultCompress to
       enable compression for every global session.
       For MySQL Shell connections that use Unix socket files,
       the --socket command line option can now be specified
       with no argument to connect using the default Unix socket
       file for the protocol. (Bug #28730149)

     * The Cluster.status() operation has been extended to
       enable you to display information about the underlying
       Group Replication group used by the cluster. Now you can
       retrieve information from all members of a cluster
       without having to connect to each member individually.
       To see information about the groupName and memberId; and
       general statistics about the number of transactions
       checked, proposed, and rejected by members issue:

         Cluster.status(extended:true)

       To see information about recovery and regular transaction
       I/O, applier worker thread statistics and any lags;
       applier coordinator statistics, if parallel apply is
       enabled; error, and other information from I/O and
       applier threads issue

         Cluster.status(queryMembers:true)

       In addition, in previous versions the URI-type string
       shown for groupInformationSourceMember in the output of
       Cluster.status() could be the cluster's MySQL Router
       address, rather than the address of the instance which
       provided the displayed group information. This has been
       improved to ensure groupInformationSourceMember always
       shows the correct hostname, or report_host, value and
       port, or report_port, value of the instance which
       provided the group information.
       As part of this work, the integration of MySQL Router to
       InnoDB cluster has been improved.
       (Bug #28636963, Bug #26519466, Bug #27824265, Bug #28366027)

     * The MySQL Shell JSON import utility can now process BSON
       (binary JSON) data types that are represented in JSON
       documents. The data types used in BSON documents are not
       all natively supported by JSON, but can be represented
       using extensions to the JSON format. The import utility
       can process documents that use JSON extensions to
       represent BSON data types, convert them to an identical
       or compatible MySQL representation, and import the data
       value using that representation. The resulting converted
       data values can be used in expressions and indexes, and
       manipulated by SQL statements and X DevAPI functions.
       To convert JSON extensions for BSON types into MySQL
       types in this way, you must specify the convertBsonTypes
       option when you run the import utility. Additional
       options are available to control the mapping and
       conversion for specific BSON data types. If you import
       documents with JSON extensions for BSON types and do not
       use this option, the documents are imported in the same
       way as they are represented in the input file.

     * A MySQL Shell configuration option showColumnTypeInfo and
       command line option --column-type-info have been added to
       display metadata for each column in a returned result
       set, such as the column type and collation. The metadata
       is printed before the result set, and is only shown in
       SQL mode.
       In the metadata, the column type is returned as both the
       type used by MySQL Shell (Type), and the type used by the
       original database (DBType). For MySQL Shell connections
       using classic MySQL protocol, DBType is as returned by
       the protocol, and for X Protocol connections, DBType is
       inferred from the available information. The column
       length (Length) is returned in bytes.

     * The upgrade checker utility provided by MySQL Shell,
       which is the checkForServerUpgrade() function of the util
       global object, has several enhancements:

          + The utility can now select and provide advice and
            instructions for relevant checks that cannot be
            automated, and must be performed manually. The
            manual checks are rated as either warning or notice
            (informational) level, and are listed after the
            automated checks. In MySQL Shell 8.0.14, the utility
            provides advice where relevant about the change of
            default authentication plugin in MySQL 8.0.

          + A check has been added for the removed log_syslog_*
            system variables that previously configured error
            logging to the system log (the Event Log on Windows,
            and syslog on Unix and Unix-like systems).

          + A check has been added for specific schema
            inconsistencies that can be caused by the deletion
            or corruption of a file, including the removal of
            the directory for a schema and the removal of a .frm
            file for a table.

       You can access the upgrade checker utility from within
       MySQL Shell or start it from the command line. For
       instructions and further information, see MySQL Shell
       Utilities
       (http://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities.html).

     * MySQL Shell can print results in table, tabbed, or
       vertical format, or as pretty or raw JSON output. From
       MySQL Shell 8.0.14, the new MySQL Shell configuration
       option resultFormat can be used to specify any of these
       output formats as a persistent default for all sessions,
       or just for the current session. Changing this option
       takes effect immediately. Alternatively, the new command
       line option --result-format can be used at startup to
       specify the output format for a session. The existing
       command line options --table, --tabbed, and --vertical
       are now aliases for the --result-format option given with
       the corresponding value.
       The existing command line option --json controls JSON
       wrapping for all MySQL Shell output from a session.
       Specifying --json or --json=pretty turns on JSON wrapping
       and generates pretty-printed JSON. Specifying --json=raw
       turns on JSON wrapping and generates raw JSON. With any
       of these options, the value of the resultFormat MySQL
       Shell configuration option is ignored. Specifying
       --json=off or not specifying the --json option turns off
       JSON wrapping, and result sets are output as normal in
       the format specified by the resultFormat configuration
       option.
       The outputFormat MySQL Shell configuration option is now
       deprecated. This option combined the JSON wrapping and
       result printing functions, which have now been separated.
       If this option is still specified in your MySQL Shell
       configuration file or scripts, the behavior is as
       follows:

          + With the json or json/raw value, outputFormat
            activates JSON wrapping with pretty or raw JSON
            respectively.

          + With the table, tabbed, or vertical value,
            outputFormat turns off JSON wrapping and sets the
            resultFormat MySQL Shell configuration option for
            the session to the appropriate value.

     * The V8 library used by MySQL Shell has been updated to
       version 6.7.288.46.

     * AdminAPI no longer relies on the mysqlprovision check
       command. This work has resulted in the following:

          + The errors field in the JSON returned by
            dba.checkInstanceConfiguration() has been removed,
            because it was only used to hold errors issued by
            mysqlprovision. Any errors are now reported
            directly, for example as RuntimeError.

          + The dba.verbose value no longer influences the
            amount of debug information displayed for
            dba.checkInstanceConfiguration() and
            dba.configureLocalInstance() because it was only
            used to control the verbosity of the information
            displayed from mysqlprovision. Instead, the generic
            verbose value from MySQL Shell is used to control
            the verbosity level for those functions.

          + In addition, the messages returned have been
            generally improved to make them more accurate.
       References: See also: Bug #28737777, Bug #27305806,
       Bug #28768627, Bug #27702439, Bug #28733883.

     * When you create a cluster, you can set the timeout before
       instances are expelled from the cluster, for example when
       they become unreachable. Pass the new expelTimeout option
       to the dba.createCluster() operation, which configures
       the group_replication_member_expel_timeout variable on
       the seed instance. All instances running MySQL server
       8.0.13 and later which are added to the cluster are
       automatically configured to have the same
       group_replication_member_expel_timeout value as defined
       when the cluster was created using expelTimeout.

     * You can configure an InnoDB cluster's underlying Group
       Replication group while the cluster remains online. This
       enables you to choose a specific instance as the single
       primary, or to change between single-primary and
       multi-primary mode without taking the cluster offline.
       This uses the group coordinator and the equivalent UDFs
       added in WL#10378 (https://dev.mysql.com/worklog/task/?id=10378),
       see "Configuring an Online Group"
       (http://dev.mysql.com/doc/refman/8.0/en/group-replication-configuring-online-group.html).

       Use the following Cluster object operations:

          + Cluster.switchToSinglePrimaryMode([instance]), which runs
            group_replication_switch_to_single_primary_mode() on
            the underlying group, using instance as the primary,
            all other instances become secondaries

          + Cluster.switchToMultiPrimaryMode(), which runs
            group_replication_switch_to_multi_primary_mode() on
            the underlying group, all instances become primaries

          + Cluster.setPrimaryInstance(instance), which runs
            group_replication_set_as_primary() on the underlying
            group, configuring instance as the new primary

     * You can now configure the InnoDB cluster options of
       instances at a cluster level, while instances remain
       online. This avoids the need to remove, reconfigure and
       then again add the instance to change InnoDB cluster
       options. Use the following operations:

          + Cluster.options() to verify the settings of a
            cluster and its instances

          + Cluster.setOption(option, value) to change settings
            of all cluster instances globally

          + Cluster.setInstanceOption(instance, option, value)
            to change settings of individual cluster instances
       The way which you use InnoDB cluster options with the
       operations listed depends on whether the option can be
       changed to be the same on all instances or not. These
       options are changeable at both the cluster (all
       instances) and per instance level:

          + exitStateAction

          + memberWeight

       This option is changeable at the per instance level only:

          + label

       These options are changeable at the cluster level only:

          + failoverConsistency

          + expelTimeout

          + clusterName

     * The cluster.rescan() operation has been extended to
       enable you to detect changes to the cluster's topology,
       and modfiy the cluster metadata, for example to remove
       old instance data. Now you can:

          + use the updateTopologyMode option to detect if the
            Group Replication mode (single-primary or
            multi-primary mode) registered in the metadata
            matches the current mode of the cluster, updating
            that information in the metadata if requested
            through a new option or by a prompt confirmation.
            You can use this option to update the metadata after
            using the
            Cluster.switchToSinglePrimaryMode([instance]) and
            Cluster.switchToMultiPrimaryMode() options added in
            WL#12052
            (https://dev.mysql.com/worklog/task/?id=12052).

          + use the addInstances option to specify a list of new
            instances to add to the metadata, or the
            removeInstances option to specify a list of obsolete
            instances to remove from the metadata. Pass the auto
            value to these options to automatically add or
            remove instances from the metadata, without having
            to specify an explicit list of instances. This
            enables the function to update the metadata even in
            non-interactive mode, making it consistent with the
            other AdminAPI operations.

          + In addition, a new interactive option has been added
            to the cluster.rescan() operation, to enable or
            disable interactive mode prompts specifically for
            the cluster.rescan() command.

       References: See also: Bug #28997465, Bug #28529362,
       Bug #28889563.

Bugs Fixed

     * The TAR build of MySQL Shell comes with Python 2.7. When
       attempting to include the site package, an error was
       emitted because of missing build files needed by the
       include. (Bug #28973138)

     * Handling procedures for user-supplied data in MySQL Shell
       were refactored to ensure correct cleanup after use.
       (Bug #28915716)

     * The exception type and error messages returned by MySQL
       Shell functions for parameter errors have been
       standardized across the different functions.
       (Bug #28838958)

     * MySQL Shell stopped unexpectedly if the
       shell.setCurrentSchema() method was called to set the
       default schema before an active session had been
       established. MySQL Shell now validates that there is an
       active session when the operation takes place.
       (Bug #28814112)

     * The MySQL Shell JSON import utility no longer requires an
       empty dictionary to be supplied if there are no import
       options. (Bug #28768585)

     * In SQL mode, MySQL Shell does not add statements to the
       history if they include the strings IDENTIFIED or
       PASSWORD, or other strings that you configure using the
       --histignore command option or
       shell.options["history.sql.ignorePattern"]. However, this
       previously meant that filtered-out statements were not
       available to be corrected immediately after entry, and
       had to be re-typed in case of any errors. MySQL Shell now
       always makes the last executed statement available to be
       recalled by pressing the Up arrow, regardless of the
       filters set in the history ignore list. If filtering
       applies to the last executed statement, it is removed
       from the history as soon as another statement is entered,
       or if you exit MySQL Shell immediately after executing
       the statement. (Bug #28749037)

     * The result printing logic in MySQL Shell has been
       refactored to use back-end rather than high-level result
       data, delivering performance improvements for all types
       of result data and more accurate representation for JSON
       data. (Bug #28710831)

     * A memory leak was fixed that occurred when the new MySQL
       Shell command-line syntax was used. (Bug #28705373)

     * The check for partitioned tables in shared tablespaces in
       the upgrade checker utility provided by MySQL Shell (the
       util.checkForServerUpgrade() operation) did not return
       correct results for the 8.0.11 and 8.0.12 target
       versions. The check now uses alternative Information
       Schema tables that are populated with the required
       information in these versions. (Bug #28701423)

     * The default value for group_replication_exit_state_action
       is ABORT_SERVER, but AdminAPI now overrides this and sets
       the default on instances to READ_ONLY. This ensures that
       instances which leave the group unexpectedly continue
       running and can be rejoined to the cluster.
       (Bug #28701263)

     * The MySQL Shell command \option ignored additional
       arguments separated by spaces that were specified for an
       option after the initial value. (Bug #28658632)

     * MySQL Shell permitted newline characters (line feed and
       carriage return) in passwords to be passed to a Secret
       Store Helper using the shell.storeCredential method,
       resulting in an error in the Secret Store Helper. MySQL
       Shell now returns an exception if newline characters are
       used in supplied passwords for the shell.storeCredential
       method, and does not pass them to the Secret Store
       Helper. (Bug #28597766)

     * On the Windows platform, UTF-8 encoded strings were
       printed to the console using the cout object, which
       transfers a byte at a time. This resulted in multi-byte
       Unicode characters, such as a single quotation mark,
       being displayed and handled incorrectly. MySQL Shell now
       uses alternative functions for printing, and verifies
       that multi-byte UTF-8 characters are emitted as a
       complete unit. (Bug #28596692)

     * When executing an SQL script in MySQL Shell, an
       inaccurate line number was reported for the location of
       syntax errors in the script. The number referenced the
       current SQL block rather than the line number in the
       script. The error message now uses the global line
       number. (Bug #28545982)

     * The SQL statement splitting logic in MySQL Shell has been
       refactored to fix a number of issues and to match
       behaviors of the MySQL command-line tool mysql:

          + The backslash character (\) is no longer accepted in
            the delimiter string.

          + The use of the word "delimiter" in contexts other
            than as a command is now handled correctly.

          + In scripts, comments are not discarded, and groups
            of comments and statements are now split in the same
            way as mysql would split them.

          + Large scripts can now be successfully split into
            incremental chunks even when some tokens span across
            more than one chunk.

          + Scripts can now be parsed in the ANSI_QUOTES SQL
            mode.

          + Multi-line strings and comments that contain quotes
            are now parsed correctly.

          + Inline commands are handled in the same way as by
            mysql, as follows:

               o A \ character appearing at the beginning of a
                 statement is interpreted as the start of a
                 multi-letter MySQL Shell command.

               o A \ character appearing within a statement is
                 interpreted as the start of a single-letter
                 command. The command is executed immediately,
                 then stripped out of the input statement.

               o A \ character appearing after the end of a
                 statement is interpreted as the start of a
                 single-letter command.

       (Bug #27959016, Bug #25689071)

     * When a cluster was created on a server that did not have
       the X Plugin enabled, a silent assumption was being made
       about the X Protocol port value. Now the value of an X
       Protocol port is only stored for instances on which X
       Plugin is enabled. (Bug #27677227)

     * The handling of Windows named pipe connections by MySQL
       Shell has been improved and systematized. Now, if you
       specify the host name as a period (.) on Windows, MySQL
       Shell connects using a named pipe.

          + If you are connecting using a URI type string,
            specify user@.

          + If you are connecting using a data dictionary,
            specify {"host": "."}

          + If you are connecting using individual parameters,
            specify --host=. or -h .

       By default, the pipe name MySQL is used. You can specify
       an alternative named pipe using the --socket option or as
       part of the URI type string. If a URI type string is
       used, the named pipe must be prepended with the
       characters \\.\ as well as being either encoded using
       percent encoding or surrounded with parentheses, as shown
       in the following examples:

         (\\.\named:pipe)
         \\.\named%3Apipe

       (Bug #27381738)

     * The dba.checkInstanceConfiguration() operation was not
       checking if the Performance Schema was enabled on the
       target instance. This could result in a situation where
       you could create a cluster but could not run several
       management operations on it, for example the
       Cluster.status() operation. Now,
       dba.checkInstanceConfiguration() checks that the
       Performance Schema is enabled on instances.
       (Bug #25867733)

     * When JSON format output was enabled for MySQL Shell, the
       properties of the Shell API Options class (shell.options)
       and AdminAPI Cluster class (dba.getCluster) were not
       printed, only the class name. (Bug #25027181)

     * When Cluster.checkInstanceState() was executed on an
       instance which was already a member of the current
       cluster, the output indicated that the instance was fully
       recoverable. This was misleading and was caused by a
       missing validation to ensure the instance does not belong
       to a cluster. (Bug #24942875)

     * The dba.checkInstanceConfiguration() operation did not
       recognize privileges when they were associated to a user
       through a role (available in MySQL server 8.0 and
       higher). In such a case, a missing privileges error was
       being incorrectly issued despite the user possessing all
       the required privileges. Now users with their privileges
       assigned by roles are recognized by AdminAPI operations
       correctly. (Bug #91394, Bug #28236922)

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

MySQL Connector/C++ 8.0.14 has been released (no replies)

$
0
0
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/

Changes in MySQL Connector/C++ 8.0.14 (2019-01-14)

     * Packaging Notes

     * X DevAPI Notes

Configuration Notes

     * These CMake options have been added to enable more
       fine-grained specification of installation directories.
       All are relative to CMAKE_INSTALL_PREFIX:

          + CMAKE_INSTALL_LIBDIR: Library installation
            directory.

          + CMAKE_INSTALL_INCLUDEDIR: Header file installation
            directory.

          + CMAKE_INSTALL_DOCDIR: Documentation installation
            directory.

       (Bug #28045358)

Packaging Notes

     * Previously, MySQL Connector/C++ binary distributions
       included a BUILDINFO.txt file that contained information
       about the build environment used to produce the
       distribution. Binary distributions now include a file
       named INFO_BIN that provides similar information, and an
       INFO_SRC file that provides information about the product
       version and the source repository from which the
       distribution was produced. Source distributions include
       the INFO_SRC file only.

     * MySQL Connector/C++ now is compatible with MSVC 2017,
       while retaining compatibility with MSVC 2015:

          + Previously, Connector/C++ binary distributions were
            compatible with projects built using MSVC 2015.
            Binary distributions now are compatible with
            projects built using MSVC 2017 or 2015. DLLs have a
            -vs14 suffix in their names to reflect that they are
            compatible with MSVC 2015, but can also be used in
            MSVC 2017 projects.

          + Previously, Connector/C++ 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.

     * Installers for Connector/C++ are now available as Debian
       packages. See Installing Connector/C++ from a Binary Distribution
       (http://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp-installation-binary.html).

X DevAPI Notes

     * Connector/C++ now provides collection counting methods
       for applications that use X DevAPI for C:

          + mysqlx_collection_count(): The number of documents
            in a collection without filtering.

              mysqlx_collection_t *c1 = mysqlx_get_collection(schema, "c1", 1);
              ulong64_t documents;
              mysqlx_collection_count(c1, &documents);

          + mysqlx_table_count(): The number of rows in a table
            without filtering.

              mysqlx_table_t *t1 = mysqlx_get_table(schema, "t1", 1);
              ulong64_t rows;
              mysqlx_table_count(t1, &rows);

          + mysqlx_get_count(): The number of remaining cached
            rows held at the moment. After a row is consumed by
            a fetch function, the number of cached rows
            decreases.

              mysqlx_stmt_t *stmt = mysqlx_sql_new(session, query, strlen(query));
              mysqlx_result_t *res = mysqlx_execute(stmt);

              ulong64_t row_count;
              mysqlx_get_count(res, &row_count);

            mysqlx_get_count() is similar in all respects to
            mysqlx_store_result() except that the behavior
            differs after fetching rows when reaching zero
            number of rows in the cache:

               o mysqlx_get_count() returns zero through the
                 parameter and finishes with RESULT_OK.

               o mysqlx_store_result() does not return anything
                 through the parameter (which remains unchanged)
                 and finishes with RESULT_ERROR.

Enjoy and thanks for the support!

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

MySQL Cluster 7.3.24 has been released (no replies)

$
0
0
Dear MySQL Users,

MySQL Cluster is the distributed, shared-nothing variant of MySQL.
This storage engine provides:

  - In-Memory storage - Real-time performance (with optional
    checkpointing to disk)
  - Transparent Auto-Sharding - Read & write scalability
  - Active-Active/Multi-Master geographic replication

  - 99.999% High Availability with no single point of failure
    and on-line maintenance
  - NoSQL and SQL APIs (including C++, Java, http, Memcached
    and JavaScript/Node.js)

MySQL Cluster 7.3.24 has been released and can be downloaded from

http://www.mysql.com/downloads/cluster/

where you will also find Quick Start guides to help you get your
first MySQL Cluster database up and running.

The release notes are available from

http://dev.mysql.com/doc/relnotes/mysql-cluster/7.3/en/index.html

MySQL Cluster enables users to meet the database challenges of next
generation web, cloud, and communications services with uncompromising
scalability, uptime and agility.

More details can be found at

http://www.mysql.com/products/cluster/

Enjoy !

Changes in MySQL NDB Cluster 7.3.24 (5.6.43-ndb-7.3.24) (2019-01-22, General Availability)

   MySQL NDB Cluster 7.3.24 is a new release of NDB Cluster,
   based on MySQL Server 5.6 and including features from version
   7.3 of the NDB storage engine, as well as fixing a number of
   recently discovered bugs in previous NDB Cluster releases.

   Obtaining MySQL NDB Cluster 7.3.  MySQL NDB Cluster 7.3
   source code and binaries can be obtained from
https://dev.mysql.com/downloads/cluster/.

   For an overview of changes made in MySQL NDB Cluster 7.3, see
   What is New in NDB Cluster 7.3
   (http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-what-is-new-7-3.html).

   This release also incorporates all bug fixes and changes made
   in previous NDB Cluster releases, as well as all bug fixes
   and feature changes which were added in mainline MySQL 5.6
   through MySQL 5.6.43 (see Changes in MySQL 5.6.43 (2019-01-21, General Availability)
   (http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-43.html)).

Bugs Fixed

     * Asynchronous disconnection of mysqld from the cluster
       caused any subsequent attempt to start an NDB API
       transaction to fail. If this occurred during a bulk
       delete operation, the SQL layer called
       HA::end_bulk_delete(), whose implementation by
       ha_ndbcluster assumed that a transaction had been
       started, and could fail if this was not the case. This
       problem is fixed by checking that the transaction pointer
       used by this method is set before referencing it. (Bug
       #20116393)


On Behalf of Oracle/MySQL Release Engineering Team
-Sreedhar S

MySQL Cluster 7.5.13 has been released (no replies)

$
0
0


Dear MySQL Users,

MySQL Cluster is the distributed, shared-nothing variant of MySQL.
This storage engine provides:

  - In-Memory storage - Real-time performance (with optional
    checkpointing to disk)
  - Transparent Auto-Sharding - Read & write scalability
  - Active-Active/Multi-Master geographic replication

  - 99.999% High Availability with no single point of failure
    and on-line maintenance
  - NoSQL and SQL APIs (including C++, Java, http, Memcached
    and JavaScript/Node.js)

MySQL Cluster 7.5.13 has been released and can be downloaded from

  http://www.mysql.com/downloads/cluster/

where you will also find Quick Start guides to help you get your
first MySQL Cluster database up and running.

The release notes are available from

  http://dev.mysql.com/doc/relnotes/mysql-cluster/7.5/en/index.html

MySQL Cluster enables users to meet the database challenges of next
generation web, cloud, and communications services with uncompromising
scalability, uptime, and agility.

More details can be found at

  http://www.mysql.com/products/cluster/

Enjoy !

==============================================================================
Changes in MySQL NDB Cluster 7.5.13 (5.7.25-ndb-7.5.13) (
2019-01-22, General Availability)

   MySQL NDB Cluster 7.5.13 is a new release of MySQL NDB
   Cluster 7.5, based on MySQL Server 5.7 and including features
   in version 7.5 of the NDB
   ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html )
   storage engine, as well as fixing recently discovered bugs in
   previous NDB Cluster releases.

   Obtaining MySQL NDB Cluster 7.5.  MySQL NDB Cluster 7.5
   source code and binaries can be obtained from
   https://dev.mysql.com/downloads/cluster/.

   For an overview of changes made in MySQL NDB Cluster 7.5, see
   What is New in NDB Cluster 7.5
( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-what-is-new-7-5.html ).

   This release also incorporates all bug fixes and changes made
   in previous NDB Cluster releases, as well as all bug fixes
   and feature changes which were added in mainline MySQL 5.7
   through MySQL 5.7.25 (see Changes in MySQL 5.7.25
   (2019-01-21, General Availability)
( http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-25.html )).

Bugs Fixed

     * Important Change: When restoring to a cluster using data
       node IDs different from those in the original cluster,
       ndb_restore tried to open files corresponding to node ID
       0. To keep this from happening, the --nodeid
       ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-restore.html#option_ndb_restore_nodeid )
        and --backupid
       ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-restore.html#option_ndb_restore_backupid )
       options---neither of which has a default value---are both
       now explicitly required when invoking ndb_restore. (Bug#28813708)

     * Packaging; MySQL NDB ClusterJ: libndbclient was missing
       from builds on some platforms. (Bug #28997603)

     * NDB Replication: When writes on the master---done in such
       a way that multiple changes affecting BLOB
       ( http://dev.mysql.com/doc/refman/5.7/en/blob.html ) column
       values belonging to the same primary key were part of the
       same epoch---were replicated to the slave, Error 1022
       occurred due to constraint violations in the
       NDB$BLOB_id_part table. (Bug #28746560)

     * When only the management server but no data nodes were
       started, RESTART ALL timed out and eventually failed.
       This was because, as part of a restart, ndb_mgmd starts a
       timer, sends a STOP_REQ signal to all the data nodes, and
       waits for all of them to reach node state SL_CMVMI. The
       issue arose becaue no STOP_REQ signals were ever sent,
       and thus no data nodes reached SL_CMVMI. This meant that
       the timer always expired, causing the restart to fail.
       (Bug #28728485, Bug #28698831)
       References: See also: Bug #11757421.

     * Running ANALYZE TABLE
      ( http://dev.mysql.com/doc/refman/5.7/en/analyze-table.html )
       on an NDB table with an index having longer than the
       supported maximum length caused data nodes to fail. (Bug#28714864)

     * It was possible in certain cases for nodes to hang during
       an initial restart. (Bug #28698831)
       References: See also: Bug #27622643.

     * The output of ndb_config --configinfo
       ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_configinfo )
        --xml ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_xml )
       --query-all ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-programs-ndb-config.html#option_ndb_config_query-all )
       now shows that configuration changes for the ThreadConfig
       ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-threadconfig )
       and MaxNoOfExecutionThreads ( http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbmtd-maxnoofexecutionthreads )
       data node parameters require system initial restarts
       (restart="system" initial="true"). (Bug #28494286)

     * Executing SELECT
       ( http://dev.mysql.com/doc/refman/5.7/en/select.html ) *
       FROM INFORMATION_SCHEMA.TABLES
       ( http://dev.mysql.com/doc/refman/5.7/en/tables-table.html )
       caused SQL nodes to restart in some cases. (Bug#27613173)

     * When running a cluster with 4 or more data nodes under
       very high loads, data nodes could sometimes fail with
       Error 899 Rowid already allocated. (Bug #25960230)

     * When starting, a data node copies metadata, while a local
       checkpoint updates metadata. To avoid any conflict, any
       ongoing LCP activity is paused while metadata is being
       copied. An issue arose when a local checkpoint was paused
       on a given node, and another node that was also
       restarting checked for a complete LCP on this node; the
       check actually caused the LCP to be completed before
       copying of metadata was complete and so ended the pause
       prematurely. Now in such cases, the LCP completion check
       waits to complete a paused LCP until copying of metadata
       is finished and the pause ends as expected, within the
       LCP in which it began. (Bug #24827685)

     * Asynchronous disconnection of mysqld from the cluster
       caused any subsequent attempt to start an NDB API
       transaction to fail. If this occurred during a bulk
       delete operation, the SQL layer called
       HA::end_bulk_delete(), whose implementation by
       ha_ndbcluster assumed that a transaction had been
       started, and could fail if this was not the case. This
       problem is fixed by checking that the transaction pointer
       used by this method is set before referencing it. (Bug
       #20116393)

     * NdbScanFilter did not always handle NULL according to the
       SQL standard, which could result in sending
       non-qualifying rows to be filtered (otherwise not
       necessary) by the MySQL server. (Bug #92407, Bug#28643463)

     * NDB attempted to use condition pushdown on greater-than
       (>) and less-than (<) comparisons with ENUM
       ( http://dev.mysql.com/doc/refman/5.7/en/enum.html ) column
       values but this could cause rows to be omitted in the
       result. Now such comparisons are no longer pushed down.
       Comparisons for equality (=) and inequality (<> / !=)
       with ENUM values are not affected by this change, and
       conditions including these comparisons can still be
       pushed down. (Bug #92321, Bug #28610217)

On Behalf of Oracle/MySQL Release Engineering Team
Prashant Tekriwal

MySQL Cluster 7.4.23 has been released (no replies)

$
0
0
Dear MySQL Users,

MySQL Cluster is the distributed, shared-nothing variant of MySQL.  This
storage engine provides:

  - In-Memory storage - Real-time performance
  - Transparent Auto-Sharding - Read & write scalability
  - Active-Active/Multi-Master geographic replication
  - 99.999% High Availability with no single point of failure
    and on-line maintenance
  - NoSQL and SQL APIs (including C++, Java, http, Memcached
    and JavaScript/Node.js)

MySQL Cluster 7.4 makes significant advances in performance; operational
efficiency (such as enhanced reporting and faster restarts and upgrades)
and conflict detection and resolution for active-active replication
between MySQL Clusters.

MySQL Cluster 7.4.23 has been released and can be downloaded from

  http://www.mysql.com/downloads/cluster/

where you will also find Quick Start guides to help you get your first
MySQL Cluster database up and running.

The release notes are available from

  http://dev.mysql.com/doc/relnotes/mysql-cluster/7.4/en/index.html

MySQL Cluster enables users to meet the database challenges of next
generation web, cloud, and communications services with uncompromising
scalability, uptime and agility.

More details can be found at

  http://www.mysql.com/products/cluster/

Enjoy !

==============================================================================
Changes in MySQL NDB Cluster 7.4.23 (5.6.43-ndb-7.4.23) (2019-01-22,
General Availability)

   MySQL NDB Cluster 7.4.23 is a new release of MySQL NDB Cluster 7.4,
   based on MySQL Server 5.6 and including features in version 7.4 of
   the NDB storage engine, as well as fixing recently discovered bugs in
   previous NDB Cluster releases.

   Obtaining MySQL NDB Cluster 7.4.  MySQL NDB Cluster 7.4 source code
   and binaries can be obtained from
   https://dev.mysql.com/downloads/cluster/.

   For an overview of changes made in MySQL NDB Cluster 7.4, see What is
   New in NDB Cluster 7.4
(http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-what-is-new-7-4.html).

   This release also incorporates all bug fixes and changes made in
   previous NDB Cluster releases, as well as all bug fixes and feature
   changes which were added in mainline MySQL 5.6 through MySQL 5.6.43
   (see Changes in MySQL 5.6.43 (2019-01-21, General Availability)
   (http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-43.html)).

Bugs Fixed


     * NDB Replication: When writes on the master---done in such
       a way that multiple changes affecting BLOB column values
       belonging to the same primary key were part of the same
       epoch---were replicated to the slave, Error 1022 occurred due to
       constraint violations in the NDB$BLOB_id_part table.
       (Bug #28746560)

     * When only the management server but no data nodes were
       started, RESTART ALL timed out and eventually failed.  This was
       because, as part of a restart, ndb_mgmd starts a timer, sends a
       STOP_REQ signal to all the data nodes, and waits for all of them
       to reach node state SL_CMVMI. The issue arose becaue no STOP_REQ
       signals were ever sent, and thus no data nodes reached SL_CMVMI.
       This meant that the timer always expired, causing the restart to
       fail.  (Bug #28728485, Bug #28698831)
       References: See also: Bug #11757421.

     * It was possible in certain cases for nodes to hang during
       an initial restart. (Bug #28698831)
       References: See also: Bug #27622643.

     * When running a cluster with 4 or more data nodes under
       very high loads, data nodes could sometimes fail with Error 899
       Rowid already allocated. (Bug #25960230)

     * When starting, a data node copies metadata, while a local
       checkpoint updates metadata. To avoid any conflict, any ongoing
       LCP activity is paused while metadata is being copied. An issue
       arose when a local checkpoint was paused on a given node, and
       another node that was also restarting checked for a complete LCP
       on this node; the check actually caused the LCP to be completed
       before copying of metadata was complete and so ended the pause
       prematurely. Now in such cases, the LCP completion check waits to
       complete a paused LCP until copying of metadata is finished and
       the pause ends as expected, within the LCP in which it began.
       (Bug #24827685)

     * Asynchronous disconnection of mysqld from the cluster
       caused any subsequent attempt to start an NDB API transaction to
       fail. If this occurred during a bulk delete operation, the SQL
       layer called HA::end_bulk_delete(), whose implementation by
       ha_ndbcluster assumed that a transaction had been started, and
       could fail if this was not the case. This problem is fixed by
       checking that the transaction pointer used by this method is set
       before referencing it. (Bug #20116393)


Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL Enterprise Monitor 8.0.14 has been released (no replies)

$
0
0
We are pleased to announce that MySQL Enterprise Monitor 8.0.14 is now available for download on the My Oracle Support (MOS) web site. It will also be available for download via the Oracle Software Delivery Cloud in a few days. MySQL Enterprise Monitor is the best-in-class tool for monitoring and management of your MySQL assets and is included with your MySQL Enterprise Edition and MySQL Enterprise Carrier Grade subscriptions.

Starting with version 8.0.14, MySQL Enterprise Monitor is now aligned with the version number of the whole MySQL product line. 8.0.4 to 8.0.13 are skipped version numbers.

MySQL Enterprise Monitor 8.0.14 includes enhancements and fixes a number of bugs. You can find more information on the contents of this release in the changelog:
http://dev.mysql.com/doc/relnotes/mysql-monitor/8.0/en/news-8-0-14.html (also included at the end of this note for convenience).

Highlights

* A redesigned Query Analyzer with more customization options for graph and data visualization, sorting and filtering by clicking on Configure View button. When you click on a SQL statement, the new Statement Details page enables you to browse all example statements in the specified time range, rather than just the one with the worst run time. Drill into any of these examples to see their individual statistics, literals used, and EXPLAIN plan. Graphs display the execution pattern of the selected query during the specified time period.

* The MySQL Enterprise Monitor Inventory user interface got a new functionality to remove assets. Now you can select and delete one or multiple entries for clusters, topologies, agents, hosts, and instances which were monitored, but are no longer in use.

* With the new Views for Agents and Hosts, you can now examine the configuration and current status of Agents and Hosts in great detail.

* The new NDB Clusters configuration view complements the NDB Cluster monitoring with the visualization of all currently monitored clusters, their membership, and configurations.

* MySQL Enterprise Monitor 8.0 supports monitoring MySQL Server 8.0.11+, so you can monitor MySQL Server from version 5.5 onwards. MySQL Enterprise Monitor 8.0 also has MySQL Server 8.0 as its bundled repository or you can also use MySQL Server 8.0 as an external data repository.

* The Global Memory Usage report builds upon the Memory instrumentation exposed within Performance Schema to provide greater insight into where memory is being allocated within the MySQL Instance - not just at the InnoDB Buffer Pool level, but for all memory allocations, across all connections and threads within MySQL. The report breaks down memory by allocation types, such as memory allocated for sorting, the buffer pool, or various other internal buffers used for statement processing.

Download

You will find binaries for the new release on My Oracle Support:
http://support.oracle.com

Choose the "Patches & Updates" tab, and then choose the "Product or Family (Advanced Search)" side tab in the "Patch Search" portlet.

You will also find the binaries on the Oracle Software Delivery Cloud:
http://edelivery.oracle.com/

Search "All Categories" for "MySQL" and choose from the results accordingly. You will find the Enterprise Monitor along with other MySQL products.

If you are not a MySQL Enterprise customer and want to try the Monitor and Query Analyzer using our 30-day free customer trial, go to http://www.mysql.com/trials, or contact Sales at http://www.mysql.com/about/contact.

Please open a bug or a ticket on My Oracle Support to report problems, request features, or give us general feedback about how this release meets your needs.

Useful URLs

* My Oracle Support - http://support.oracle.com/
* What's New in 8.0 - https://dev.mysql.com/doc/mysql-monitor/8.0/en/mem-comparison.html
* Change log - http://dev.mysql.com/doc/relnotes/mysql-monitor/8.0/en/
* Installation documentation - http://dev.mysql.com/doc/mysql-monitor/8.0/en/mem-installing.html
* Complete documentation - http://dev.mysql.com/doc/mysql-monitor/8.0/en/
* Product information - http://www.mysql.com/products/enterprise/monitor.html
* Download - http://support.oracle.com/ or http://edelivery.oracle.com/

Thanks and Happy Monitoring!

- The MySQL Enterprise Tools Development Team

==========

Changes in MySQL Enterprise Monitor 8.0.14

Important - It is not possible to upgrade to MySQL Enterprise Monitor 8.0.14 from versions preceding MySQL Enterprise Monitor 3.4. To upgrade an older version, it is recommended you first upgrade to MySQL Enterprise Monitor 4.0 before running the MySQL Enterprise Monitor 8.0.14 upgrade process.

MySQL Enterprise Service Manager 8.0.14 bundled repository is MySQL Server 8.0.14.


* MySQL Product Versioning
* Functionality Added or Changed
* Bugs Fixed


MySQL Product Versioning

* Important Change: Beginning with version 8.0.14, MySQL Enterprise Monitor is now aligned with the version number of the MySQL product line. Version numbers 8.0.4 to 8.0.13 are skipped.


Functionality Added or Changed

* Important Change: It is now possible to delete obsolete or unused assets from the MySQL Enterprise Monitor inventory using the user interface.

Important - Deleting assets from the inventory does not delete or uninstall assets from their installed locations. The delete process removes all record of an asset or group of assets from the internal record of MySQL Enterprise Service Manager, only. This enables you to remove entries for clusters, topologies, agents, hosts, and instances which were monitored, but are no longer in use.

For more information, see Deleting Assets (Bug #26805727)

* Important Change: The MySQL server, bundled with the MySQL Enterprise Service Manager, has been upgraded to MySQL 8.0.14.

Important - It is strongly recommended you backup your existing MySQL Enterprise Monitor repository, and test the backup, before upgrading to MySQL Enterprise Monitor 8.0.14.

The following MySQL 5.7-specific configuration parameters have been removed from the MySQL configuration file included with the bundled repository. These parameters were removed because they are either obsolete and no longer used by MySQL 8, or because the values defined by them are now defaults in MySQL 8.

default-storage-engine = INNODB
default_tmp_storage_engine = INNODB
event_scheduler = ON
explicit_defaults_for_timestamp = 1
sql-mode = STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
innodb_file_format = Barracuda
innodb_file_per_table
innodb_support_xa = 0
innodb_adaptive_flushing = 1
innodb_locks_unsafe_for_binlog = 1
skip-external-locking
local-infile = 0
skip-symlink
performance_schema

For more information on parameters added, changed, deprecated, or removed in MySQL 8, see What Is New in MySQL 8.0.

The MySQL X plugin is disabled by default. If enabled in an existing configuration, the upgrade process disables it.

log-bin is enabled by default. If you disabled this parameter in your configuration, your setting is preserved by the upgrade process. However, it is recommended you backup your configuration before upgrading.

* Important Change: New asset views are added in this release. These asset views enable you to examine, in detail, the configuration and status of Agents, Hosts, and NDB Clusters.

For more information, see Asset Management

* Important Change: As of this release, to install MySQL Enterprise Monitor on Solaris platforms, you must install the Oracle Developer Studio 12.6 Runtime libraries first. If the installer does not detect those libraries, the installation displays an error and cannot proceed until the prerequisite libraries are present.

* A new configuration view filter form is added in this release. It is used by the Query Analyzer, and the Agent, Hosts, and NDB Cluster asset views.

These views enable you to define default viewing options such as graphs, filtering and sorting.

For more information, see Configuration Views. (Bug #18203424)

* The user interface of the Query Analyzer has been completely redesigned. Building upon Oracle's JavaScript Extension Toolkit (JET) framework, this new design improves navigation in the Query Analyzer and introduces advanced configuration options which enable you to customize, sort, and filter the data displayed.

For more information, see Query Analyzer User Interface. (Bug #18203339)

* As of this release, performance-schema-consumer-events-statements-history-long is enabled on the bundled repository. If you are using an external repository, you must enable this consumer by adding the following to your MySQL configuration file:

performance_schema_consumer_events_statements_history_long=ON

* The OpenSSL libraries used by the MySQL Enterprise Monitor installers and MySQL Enterprise Monitor Aggregator have been upgraded to 1.0.2q.


Bugs Fixed

* The documentation describing the Active Directory configuration incorrectly stated that a port was required in addition to the hostname. The port is 389 and cannot be altered. (Bug #29173152)

* MySQL Enterprise Service Manager did not start after upgrading from version 3.4 to version 8.0. The error cannot determine singular foreign key name for normalized_statements_by_server_by_schema was logged. (Bug #28938022)

* The documentation describing the logic of replica promotion to a source was incorrect. (Bug #28905972)

* It was not possible to remove the CPU Utilization - Mysql Server - CPU graph from the Overview if only a single instance was selected. (Bug #28794385)

* Several Advisor tooltips contained broken links and links pointing to outdated content. (Bug #28171028)

* The graph range selection controls (Cancel selection and Query Analysis) were visible through any menu or dialog which overlaid the selection. (Bug #17555151)

* It was not possible to use the percentage character (%) in filter names. The filter was saved and was displayed in the list of available filters, but did not display the configured data when selected.

* Automatic page refresh did not pause if an asset was selected.

* Null Pointer Exceptions were logged relating to Query Analysis and Explain Plan when monitoring MySQL 8. These exceptions were caused by the removal of EXPLAIN EXTENDED in MySQL 8.

As of this release, MySQL Enterprise Monitor checks which MySQL version is being monitored and only attempts to use EXPLAIN EXTENDED on versions which support it.

* The vertical scroll bar did not behave as expected in Microsoft Internet Explorer 11. No other browser was affected by this issue.

MySQL Cluster 7.6.9 has been released (no replies)

$
0
0
MySQL Cluster is the distributed, shared-nothing variant of MySQL.
This storage engine provides:

  - In-Memory storage - Real-time performance (with optional
    checkpointing to disk)
  - Transparent Auto-Sharding - Read & write scalability
  - Active-Active/Multi-Master geographic replication

  - 99.999% High Availability with no single point of failure
    and on-line maintenance
  - NoSQL and SQL APIs (including C++, Java, http, Memcached
    and JavaScript/Node.js)

MySQL Cluster 7.6.9 has been released and can be downloaded from

  http://www.mysql.com/downloads/cluster/

where you will also find Quick Start guides to help you get your
first MySQL Cluster database up and running.

MySQL Cluster 7.6 is also available from our repository for Linux
platforms, go here for details:

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

The release notes are available from

  http://dev.mysql.com/doc/relnotes/mysql-cluster/7.6/en/index.html

MySQL Cluster enables users to meet the database challenges of next
generation web, cloud, and communications services with uncompromising
scalability, uptime and agility.

More details can be found at

  http://www.mysql.com/products/cluster/

Enjoy !


==============================================================================
Changes in MySQL NDB Cluster 7.6.9 (5.7.25-ndb-7.6.9) (2019-01-22, General Availability)

   MySQL NDB Cluster 7.6.9 is a new release of NDB 7.6, based on
   MySQL Server 5.7 and including features in version 7.6 of the
   NDB storage engine, as well as fixing recently discovered
   bugs in previous NDB Cluster releases.

   Obtaining NDB Cluster 7.6.  NDB Cluster 7.6 source code and
   binaries can be obtained from
   https://dev.mysql.com/downloads/cluster/.

   For an overview of changes made in NDB Cluster 7.6, see What
   is New in NDB Cluster 7.6
(http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-what-is-new-7-6.html).

   This release also incorporates all bug fixes and changes made
   in previous NDB Cluster releases, as well as all bug fixes
   and feature changes which were added in mainline MySQL 5.7
   through MySQL 5.7.25 (see Changes in MySQL 5.7.25
   (2019-01-21, General Availability)
(http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-25.html)).

Bugs Fixed


     * Important Change: When restoring to a cluster using data
       node IDs different from those in the original cluster,
       ndb_restore tried to open files corresponding to node ID
       0. To keep this from happening, the --nodeid and
       --backupid options---neither of which has a default
       value---are both now explicitly required when invoking
       ndb_restore. (Bug #28813708)

     * Packaging; MySQL NDB ClusterJ: libndbclient was missing
       from builds on some platforms. (Bug #28997603)

     * NDB Replication: A DROP DATABASE operation involving
       certain very large tables could lead to an unplanned
       shutdown of the cluster. (Bug #28855062)

     * NDB Replication: When writes on the master---done in such
       a way that multiple changes affecting BLOB column values
       belonging to the same primary key were part of the same
       epoch---were replicated to the slave, Error 1022 occurred
       due to constraint violations in the NDB$BLOB_id_part
       table. (Bug #28746560)

     * NDB Cluster APIs: When the NDB kernel's SUMA block sends
       a TE_ALTER event, it does not keep track of when all
       fragments of the event are sent. When NDB receives the
       event, it buffers the fragments, and processes the event
       when all fragments have arrived. An issue could possibly
       arise for very large table definitions, when the time
       between transmission and reception could span multiple
       epochs; during this time, SUMA could send a
       SUB_GCP_COMPLETE_REP signal to indicate that it has sent
       all data for an epoch, even though in this case that is
       not entirely true since there may be fragments of a
       TE_ALTER event still waiting on the data node to be sent.
       Reception of the SUB_GCP_COMPLETE_REP leads to closing
       the buffers for that epoch. Thus, when TE_ALTER finally
       arrives, NDB assumes that it is a duplicate from an
       earlier epoch, and silently discards it.
       We fix the problem by making sure that the SUMA kernel
       block never sends a SUB_GCP_COMPLETE_REP for any epoch in
       which there are unsent fragments for a SUB_TABLE_DATA
       signal.
       This issue could have an impact on NDB API applications
       making use of TE_ALTER events. (SQL nodes do not make any
       use of TE_ALTER events and so they and applications using
       them were not affected.) (Bug #28836474)

     * Where a data node was restarted after a configuration
       change whose result was a decrease in the sum of
       MaxNoOfTables, MaxNoOfOrderedIndexes, and
       MaxNoOfUniqueHashIndexes, it sometimes failed with a
       misleading error message which suggested both a temporary
       error and a bug, neither of which was the case.
       The failure itself is expected, being due to the fact
       that there is at least one table object with an ID
       greater than the (new) sum of the parameters just
       mentioned, and that this table cannot be restored since
       the maximum value for the ID allowed is limited by that
       sum. The error message has been changed to reflect this,
       and now indicates that this is a permanent error due to a
       problem configuration. (Bug #28884880)

     * When only the management server but no data nodes were
       started, RESTART ALL timed out and eventually failed.
       This was because, as part of a restart, ndb_mgmd starts a
       timer, sends a STOP_REQ signal to all the data nodes, and
       waits for all of them to reach node state SL_CMVMI. The
       issue arose becaue no STOP_REQ signals were ever sent,
       and thus no data nodes reached SL_CMVMI. This meant that
       the timer always expired, causing the restart to fail.
       (Bug #28728485, Bug #28698831)
       References: See also: Bug #11757421.

     * Running ANALYZE TABLE on an NDB table with an index
       having longer than the supported maximum length caused
       data nodes to fail. (Bug #28714864)

     * It was possible in certain cases for nodes to hang during
       an initial restart. (Bug #28698831)
       References: See also: Bug #27622643.

     * The output of ndb_config --configinfo --xml --query-all
       now shows that configuration changes for the ThreadConfig
       and MaxNoOfExecutionThreads data node parameters require
       system initial restarts (restart="system"
       initial="true"). (Bug #28494286)

     * API nodes should observe that a node is moving through
       SL_STOPPING phases (graceful stop) and stop using the
       node for new transactions, which minimizes potential
       disruption in the later phases of the node shutdown
       process. API nodes were only informed of node state
       changes via periodic heartbeat signals, and so might not
       be able to avoid interacting with the node shutting down.
       This generated unnecessary failures when the heartbeat
       interval was long. Now when a data node is being
       gracefully stopped, all API nodes are notified directly,
       allowing them to experience minimal disruption. (Bug
       #28380808)

     * Executing SELECT * FROM INFORMATION_SCHEMA.TABLES caused
       SQL nodes to restart in some cases. (Bug #27613173)

     * When scanning a row using a TUP scan or ACC scan, or when
       performing a read using the primary key, it is possible
       to start a read of the row and hit a real-time break
       during which it is necessary to wait for the page to
       become available in memory. When the page request returns
       later, an attempt to read the row fails due to an invalid
       checksum; this is because, when the row is deleted, its
       checksum is invalidated.
       This problem is solved by introducing a new tuple header
       DELETE_WAIT flag, which is checked before starting any
       row scan or PK read operations on the row where disk data
       pages are not yet available, and cleared when the row is
       finally committed. (Bug #27584165)
       References: See also: Bug #28868412.

     * When running a cluster with 4 or more data nodes under
       very high loads, data nodes could sometimes fail with
       Error 899 Rowid already allocated. (Bug #25960230)

     * mysqld shut down unexpectedly when a purge of the binary
       log was requested before the server had completely
       started, and it was thus not yet ready to delete rows
       from the ndb_binlog_index table. Now when this occurs,
       requests for any needed purges of the ndb_binlog_index
       table are saved in a queue and held for execution when
       the server has completely started. (Bug #25817834)

     * When starting, a data node copies metadata, while a local
       checkpoint updates metadata. To avoid any conflict, any
       ongoing LCP activity is paused while metadata is being
       copied. An issue arose when a local checkpoint was paused
       on a given node, and another node that was also
       restarting checked for a complete LCP on this node; the
       check actually caused the LCP to be completed before
       copying of metadata was complete and so ended the pause
       prematurely. Now in such cases, the LCP completion check
       waits to complete a paused LCP until copying of metadata
       is finished and the pause ends as expected, within the
       LCP in which it began. (Bug #24827685)

     * Asynchronous disconnection of mysqld from the cluster
       caused any subsequent attempt to start an NDB API
       transaction to fail. If this occurred during a bulk
       delete operation, the SQL layer called
       HA::end_bulk_delete(), whose implementation by
       ha_ndbcluster assumed that a transaction had been
       started, and could fail if this was not the case. This
       problem is fixed by checking that the transaction pointer
       used by this method is set before referencing it. (Bug
       #20116393)

     * NdbScanFilter did not always handle NULL according to the
       SQL standard, which could result in sending
       non-qualifying rows to be filtered (otherwise not
       necessary) by the MySQL server. (Bug #92407, Bug
       #28643463)

     * NDB attempted to use condition pushdown on greater-than
       (>) and less-than (<) comparisons with ENUM column values
       but this could cause rows to be omitted in the result.
       Now such comparisons are no longer pushed down.
       Comparisons for equality (=) and inequality (<> / !=)
       with ENUM values are not affected by this change, and
       conditions including these comparisons can still be
       pushed down. (Bug #92321, Bug #28610217)



MySQL Enterprise Monitor 4.0.8 has been released (no replies)

$
0
0
We are pleased to announce that MySQL Enterprise Monitor 4.0.8 is now available for download on the My Oracle Support (MOS) web site.

This is a maintenance release that includes a few enhancements and fixes a number of bugs. You can find more information on the contents of this release in the change log:
http://dev.mysql.com/doc/relnotes/mysql-monitor/4.0/en/news-4-0-8.html
(also included at the end of this note for convenience)

You will find binaries for the new release on My Oracle Support:
http://support.oracle.com

Choose the "Patches & Updates" tab, and then choose the "Product or Family (Advanced Search)" side tab in the "Patch Search" portlet.

IMPORTANT: MySQL Enterprise Monitor (MEM) 8.0 offers many significant improvements over MEM 4.0, and we highly recommend that you consider upgrading. More information on MEM 8.0 is available here:

What's New in MySQL Enterprise Monitor 8.0
http://dev.mysql.com/doc/mysql-monitor/8.0/en/mem-comparison.html

MySQL Enterprise Monitor
http://www.mysql.com/products/enterprise/monitor.html

MySQL Enterprise Monitor Frequently Asked Questions
http://dev.mysql.com/doc/mysql-monitor/8.0/en/mem-faq.html

MySQL Enterprise Monitor Change History
http://dev.mysql.com/doc/relnotes/mysql-monitor/8.0/en/

Please open a bug or a ticket on My Oracle Support to report problems, request features, or give us general feedback about how this release meets your needs.

If you are not a MySQL Enterprise customer and want to try the Monitor and Query Analyzer using our 30-day free customer trial, go to http://www.mysql.com/trials, or contact Sales at http://www.mysql.com/about/contact.

Useful URLs

* My Oracle Support - http://support.oracle.com/
* What's New in 4.0 - https://dev.mysql.com/doc/mysql-monitor/4.0/en/mem-comparison.html
* Change log - http://dev.mysql.com/doc/relnotes/mysql-monitor/4.0/en/
* Installation documentation - http://dev.mysql.com/doc/mysql-monitor/4.0/en/mem-installing.html
* Complete documentation - http://dev.mysql.com/doc/mysql-monitor/4.0/en/
* Product information - http://www.mysql.com/products/enterprise/monitor.html
* Download - http://support.oracle.com/ or http://edelivery.oracle.com/

Thanks and Happy Monitoring!

- The MySQL Enterprise Tools Development Team

==========

Changes in MySQL Enterprise Monitor 4.0.8


* Functionality Added or Changed
* Bugs Fixed


Functionality Added or Changed


* The bundled JRE was updated to 1.8.0_192 for both the Agent and Service Manager.

* The MySQL server, bundled with the MySQL Enterprise Service Manager, has been upgraded to MySQL 5.7.25.

* As of this release, performance-schema-consumer-events-statements-history-long is enabled on the bundled repository. If you are using an external repository, you must enable this consumer by adding the following to your MySQL configuration file:

performance_schema_consumer_events_statements_history_long=ON

* The OpenSSL libraries used by the MySQL Enterprise Monitor installers and have been upgraded to 1.0.2q.


Bugs Fixed


* The documentation describing the Active Directory configuration incorrectly stated that a port was required in addition to the hostname. The port is 389 and cannot be altered. (Bug #29173152)

* The documentation describing the logic of replica promotion to source was incorrect. (Bug #28905972)

* It was not possible to remove the CPU Utilization - Mysql Server - CPU graph from the Overview if only a single instance was selected. (Bug #28794385)

* The graph range selection controls (Cancel selection and Query Analysis) were visible through any menu or dialog which overlaid the selection. (Bug #17555151)

MySQL Connector/ODBC 5.3.12 has been released (no replies)

$
0
0

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


Viewing all 1041 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>