[Due to size limitation, this announcement is split in two. This is
part 1]
Dear MySQL users,
MySQL Server 8.0.12, a new version of the popular Open Source
Database Management System, has been released. MySQL 8.0.12 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.12 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.12 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.12 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.12 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.11. It may also be viewed
online at
http://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-12.html
Enjoy!
Changes in MySQL 8.0.12 (2018-07-27)
* Audit Log Notes
* Compilation Notes
* Configuration Notes
* Function Notes
* Logging Notes
* MySQL Enterprise Notes
* Optimizer Notes
* Packaging Notes
* Performance Schema Notes
* Plugin Notes
* Security Notes
* Spatial Data Support
* SQL Syntax Notes
* X Plugin Notes
* Functionality Added or Changed
* Bugs Fixed
Audit Log Notes
* For new MySQL installations, the USER and HOST columns in
the audit_log_user table used by MySQL Enterprise Audit
now have definitions that better correspond to the
definitions of the User and Host columns in the
mysql.user system table.
For upgrades to an installation for which MySQL
Enterprise Audit is already installed, it is recommended
that you alter the table definitions as follows:
ALTER TABLE mysql.audit_log_user
DROP FOREIGN KEY audit_log_user_ibfk_1;
ALTER TABLE mysql.audit_log_filter
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
ALTER TABLE mysql.audit_log_user
MODIFY COLUMN USER VARCHAR(32);
ALTER TABLE mysql.audit_log_user
ADD FOREIGN KEY (FILTERNAME) REFERENCES mysql.audit_log_filter(NAME)
;
(Bug #23706056)
Compilation Notes
* Microsoft Windows: For OpenSSL 1.1, the library names
have changed for Windows. The CMake configuration code
now accounts for this. Also, it is now possible on
Windows to use -DWITHOUT_SERVER=1 to build 32-bit client
binaries. (Bug #28170711, Bug #91223)
* The minimum version of the Boost library for server
builds is now 1.67.0. (Bug #27866110)
Configuration Notes
* For RelWithDebInfo builds on Linux, REPRODUCIBLE_BUILD
now defaults to ON. (Bug #27483447)
* The default value for the slave_pending_jobs_size_max
system variable has increased from 16M to 128M. On a
multi-threaded slave ( with slave_parallel_workers > 0),
this value sets the maximum amount of memory that is made
available to slave worker queues holding events that have
not yet been applied. The potentially larger memory usage
should be taken into account when calculating the
resources required to deploy a multi-threaded slave.
Masters and single-threaded slaves are not affected by
this setting.
The new default is double the recently increased default
value specified by the max_allowed_packet system variable
(now 64M). The value of slave_pending_jobs_size_max is a
soft limit, so events larger than its value (consisting
of one or more packets) can be queued and processed.
However, a large transaction is held until all the slave
workers have empty queues, and then processed. All
subsequent transactions are held until the large
transaction has been completed. The delay to clear the
queues of all the slave workers and the wait to queue
subsequent transactions can cause lag on the replication
slave and decreased concurrency of the slave workers. The
value of slave_pending_jobs_size_max should therefore be
set high enough to accommodate most expected event sizes.
Function Notes
* The BIT_AND(), BIT_OR(), and BIT_XOR() 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
* Previously, log components listed in the
log_error_services system variable had to be separated by
semicolons. Components now can be separated by commas. A
given setting cannot use both semicolon and comma
separators. (Bug #27788925, Bug #90268)
MySQL Enterprise Notes
* The MySQL Enterprise Firewall firewall_whitelist table
now contains a primary key column named ID. (Bug
#27164826)
Optimizer Notes
* The filesort algorithm (used by the optimizer to satisfy
an ORDER BY clause when no index can be used) is now more
memory efficient. The primary change is that the
optimizer allocates memory buffers incrementally as
needed, up to the size indicated by the sort_buffer_size
system variable, rather than allocating a fixed amount of
sort_buffer_size bytes up front. This enables users to
set sort_buffer_size to larger values to speed up larger
sorts, without concern for excessive memory use for small
sorts. (This benefit may not occur for multiple
concurrent sorts on Windows, which has a weak
multithreaded malloc.)
In addition, filesort is less pessimistic with respect to
worst-case scenarios. Previously, filesort produced an
error without starting if merge operations or sort-key
generation might fail. Now, because the worst case is
unlikely to occur in practice, filesort produces an error
only for actual rather than prospective failures.
* Previously, extended EXPLAIN output was produced only for
SELECT statements. Extended output is now produced for
INSERT, REPLACE, UPDATE, and DELETE statements as well.
(To display extended output, use SHOW WARNINGS following
EXPLAIN. See Extended EXPLAIN Output Format
(http://dev.mysql.com/doc/refman/8.0/en/explain-extended.html).)
Packaging Notes
* Docker disables NUMA-related operations by default, so
the mysqld included in Docker images now has NUMA support
disabled so that the error log does not fill with NUMA
warnings. (Bug #28081363)
* RPM .spec files were updated to reflect the removal of
yaSSL and that OpenSSL is the default SSL library for all
builds. (Bug #28025427)
* For generic Linux .tar.gz distributions, the mysqlxtest
client has been moved from the server package to the test
package. (Bug #27744137)
* An RPM package for installing ARM 64-bit (aarch64)
binaries of MySQL Server on Oracle Linux 7 is now
available in the MySQL Yum Repository and for direct
download.
Known Limitation for this ARM release: You must enable
the Oracle Linux 7 Software Collections Repository
(ol7_software_collections) to install this package, and
must also adjust the libstdc++7 path. See Yum's Platform
Specific Notes
(http://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html#yum-install-platform-specifics)
for additional details.
Performance Schema Notes
* The maximum value was increased from 256 to 1024 for
these Performance Schema system variables:
performance_schema_max_cond_classes
performance_schema_max_file_classes
performance_schema_max_mutex_classes
performance_schema_max_rwlock_classes
performance_schema_max_socket_classes
performance_schema_max_stage_classes
performance_schema_max_thread_classes
The default value was increased from 250 to 300 for this
Performance Schema system variable:
performance_schema_max_mutex_classes
(Bug #27647918)
Plugin Notes
* Previously, the Rewriter query rewrite plugin permitted
rewriting only for SELECT statements. Rewritable
statements now include INSERT, REPLACE, UPDATE, and
DELETE as well. See The Rewriter Query Rewrite Plugin
(http://dev.mysql.com/doc/refman/8.0/en/rewriter-query-rewrite-plugin.html).
Security Notes
* The linked OpenSSL library for MySQL Server has been
updated to version 1.0.2o. Issues fixed in the new
OpenSSL version are described at
http://www.openssl.org/news/vulnerabilities.html. (Bug
#28025379)
Spatial Data Support
* Incompatible Change: The new spatial functions
ST_Longitude() and ST_Latitude() return the longitude or
latitude, respectively, of their Point argument. If
called with a second argument, these functions use the
argument to set the longitude or latitude, respectively,
of their Point argument.
In addition, the ST_X() and ST_Y() functions now
interpret their Point argument according to its spatial
reference system definition (SRS):
+ ST_X() returns the coordinate value of the axis that
appears first in the SRS definition, and ST_Y()
returns the coordinate value of the axis that
appears second in the SRS definition.
+ If ST_X() and ST_Y() are used to set the longitude
or latitude of a Point argument that has a
geographic SRS, the longitude or latitude value must
be in the proper range for the SRS, or an error
occurs.
Note
If spatial data contains geometry values that now are
interpreted differently by ST_X() and ST_Y(), existing
queries using these functions will return different
results, compared to previous MySQL versions.
(Bug #27125600, Bug #88503)
* The EPSG Dataset containing spatial reference system data
for spatial calculations has been upgraded from version
9.2 to 9.3. (Bug #27977721)
* Previously, the parser recognized USING RTREE in index
specifications, but this could not be specified for any
storage engine. Now USING RTREE is permitted for spatial
index specifications. (Bug #27836608)
* Indexes on geometry columns now must be spatial indexes.
Consequently, the SPATIAL keyword is optional but
implicit for creating an index on a spatial column. A
spatial index on a geometry column is not permitted for a
primary key or unique index. Also, ASC and DESC are not
permitted for spatial indexes. (Bug #21087676)
SQL Syntax Notes
* Explicit ASC or DESC qualifiers for GROUP BY clauses are
now deprecated and will be removed in a future MySQL
version.
X Plugin Notes
* Authentication errors returned from a MySQL 8.0.11 server
to an X Plugin client were marked as fatal, which caused
the client to stop attempting its automatic sequence of
authentication attempts using different methods. X Plugin
now ignores fatal authentication errors, and subsequent
expected errors such as write timeout errors, while the
sequence of authentication attempts is in progress. If
none of the authentication methods tried are successful,
X Plugin now selects and returns the most relevant error
message received from the server, which is not
necessarily the last error message received. (Bug
#28135006)
* During the X Plugin automated authentication sequence,
connection attempts are made using different
authentication methods in a pre-set sequence. X Plugin
checks before starting the sequence whether the
connection uses SSL or not, and does not attempt
connection with the PLAIN authentication method if the
connection is not encrypted. For additional verification,
a check and error were added so that the PLAIN
authentication method is disallowed if attempted when the
connection is not encrypted. (Bug #27691189)
* In the event of an authentication failure, X Plugin
always returned the error code ER_ACCESS_DENIED, with a
custom X Protocol error message for the error situation.
The error codes that are received from the MySQL server
for authentication failures are now passed on to the
client instead, with the standard MySQL error messages
that go with them. (Bug #27675699)
* During the X Plugin automated authentication sequence,
where connection attempts are made using different
authentication methods in a pre-set sequence, the error
returned after every failed connection attempt was marked
with the severity FATAL. Now, the errors are marked as
ERROR while there are still other authentication methods
to be attempted, and only the final error that results in
disconnection is marked as FATAL. (Bug #27636947)
* The X Plugin code was being compiled twice with different
preprocessor definitions. (Bug #27267054)
* A number of improvements were made to the handling of
authentication issues by X Plugin:
+ The X Plugin automated authentication sequence,
where connection attempts are made using different
authentication methods in a pre-set sequence, is now
halted if an error response indicates that the
connection has been broken or reads or writes are
timing out.
+ The automated authentication sequence is also now
halted in the event of any fatal error.
+ The last significant error is now reported for an
abandoned authentication sequence, not just the last
error that occurred.
+ A more specific error code and message are now
reported if authentication with the
caching_sha2_password authentication plugin is
attempted over an unsecure connection.
(Bug #27257774)
* In some circumstances, a MySQL server with X Plugin
loaded could experience an unexpected halt during a
shutdown process initiated by a failed start or by the
RESTART command. The issue has now been fixed. (Bug
#25474793, Bug #27259783)
Functionality Added or Changed
* Important Change; Replication: Use the
group_replication_exit_state_action option to configure
how Group Replication behaves when a server instance
leaves the group unintentionally, for example after
encountering an applier error. When
group_replication_exit_state_action is set to
ABORT_SERVER, the instance shuts itself down, and when
group_replication_exit_state_action is set to READ_ONLY
the server switches itself to super read only mode
instead.
* InnoDB: InnoDB now supports ALGORITHM=INSTANT for the
following ALTER TABLE operations:
+ Adding a column. This feature is referred to as
"Instant ADD COLUMN".
+ Adding or dropping a virtual column.
+ Adding or dropping a column default value.
+ Modifying the definition of an ENUM or SET column.
+ Changing the index type.
+ Renaming a table.
Operations that support ALGORITHM=INSTANT only modify
metadata in the data dictionary. No exclusive metadata
locks are taken on the table during preparation and
execution phases of the operation, and table data is
unaffected, making the operations instantaneous. If not
specified explicitly, ALGORITHM=INSTANT is used by
default by operations that support it. If
ALGORITHM=INSTANT is specified but not supported, the
operation fails immediately with an error.
For more information about operations that support
ALGORITHM=INSTANT, see Online DDL Operations
(http://dev.mysql.com/doc/refman/8.0/en/innodb-create-index-overview.html).
Thanks to the Tencent Games DBA team for the
contribution.
* InnoDB: Undo logging is now supported for small updates
to large object (LOB) data, which improves performance of
LOB updates that are 100 bytes in size or less.
Previously, LOB updates were a minimum of one LOB page in
size, which is less than optimal for updates that might
only modify a few bytes. This enhancement builds upon
support added in MySQL 8.0.4 for partial fetch and update
of LOB data.
* Replication: Information about XCom's memory usage has
been added to the Performance Schema tables. The
setup_instruments table now has an entry corresponding to
the XCom cache, and the
memory_summary_global_by_event_name table contains the
memory usage statistics of the XCom cache.
* Microsoft Windows: On Windows, the forking used to
implement RESTART was suppressible using the --gdb
option. However, this was a side effect, performed in
addition to the other option actions done to set up a
debugging environment. In non-debug settings, the new
--no-monitor option may be used for the sole purpose of
suppressing forking the monitor process. For a server
started with either --gdb or --no-monitor, executing
RESTART causes the server to simply exit without
restarting. (Bug #27801043)
* Checking for foreign key relationships by DROP TABLE and
DROP DATABASE was improved. Parent and child tables now
can be dropped in arbitrary order, as long as they are
dropped by the same DROP TABLE statement. In addition,
error reporting was improved for attempts to drop a
parent table without dropping a child table. (Bug
#27821060)
* When support for roles was added, the ADMIN keyword
became a reserved keyword. ADMIN is now once again a
nonreserved keyword. (Bug #27814204)
* When a client shuts down the server, the server now
writes a message to the error log indicating which user
performed this action. (Bug #26246628, Bug #86635)
* Previously, for the --ssl-mode=VERIFY_IDENTITY option,
the client checked whether the host name that it used for
connecting matched the Common Name value in the
certificate but not the Subject Alternative Name value.
Now, if the client uses OpenSSL 1.0.2 or higher, the
client checks whether the host name matches either the
Subject Alternative Name value or the Common Name value
in the server certificate. Thanks to Dani?l van Eeden for
the patch. (Bug #16211011, Bug #68052, Bug #27511233, Bug
#89578)
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql