MySQL Forums :: Announcements :: MySQL Community Server 5.6.8-rc has been released

Advanced Search

MySQL Community Server 5.6.8-rc has been released
Posted by: Joerg Bruehe ()
Date: November 07, 2012 02:08PM

Dear MySQL users,

MySQL Server 5.6.8 (Release Candidate) is a new version of the world's
most popular open source database.

The new features in this release are of Release Candidate quality.
As with any other pre-production release, caution should be taken when
installing on production level systems or systems with critical data.

Note that 5.6.8 includes all features in MySQL 5.5 and previous 5.6
Development Milestone Releases. An overview of what's new in MySQL 5.6
is available online at

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

For upgrading from previous MySQL releases, please see the important
upgrade considerations at

Please note that **downgrading** from MySQL 5.6.8 RC or other
pre-production releases to a previous release series is not supported.

MySQL Server 5.6.8 is available in source and binary form for a number
of platforms from the "Development Releases" selection of our download
pages at

Please note that the list of platforms for MySQL 5.6 has been adapted to
the changes in the field:
- Apple Mac OS X 10.6 and 10.7 on x86 (32 bit) and x86_64
(Binary packages of MySQL 5.6 are not provided for OS X 10.5),
- Debian 6 on x86 (32 bit) and x86_64
(Binary packages of MySQL 5.6 are not provided for Debian 5),
- RedHat Enterprise / Oracle Linux 5 and 6 on x86 (32 bit) and x86_64
(Binary packages of MySQL 5.6 are not provided for RHEL/OL 4),
- SuSE Enterprise Linux 11 on x86_64
(Binary packages of MySQL 5.6 are not provided for SLES 10),
- generic Linux (kernel 2.6) on x86 (32 bit) and x86_64,
- FreeBSD 9 on x86_64
(Binary packages of MySQL 5.6 are not provided for FreeBSD 7 and 8),
- Oracle Solaris 10 and 11 on Sparc (64 bit), x86 (32 bit) and x86_64,
- Windows Vista, 7, and 2008 on x86 (32 bit) and x86_64
(Binary packages of MySQL 5.6 are not provided for Windows XP and

This does not affect the list of supported platforms for 5.1 and 5.5.

Packages for specific Linux distributions are provided in the specific
format (RPM or deb), in addition the generic tar.gz packages will fit
these distributions.
For RedHat-alike distributions like CentOS or Fedora, both the RedHat
and the generic packages should work.
If you are using a newer version of your operating system, its binary
compatibility approach (supporting applications built for older
versions) should ensure you can use MySQL 5.6.

Windows packages are now available via the new Installer for Windows
Installer or .ZIP (no-install) packages for more advanced needs. It
should be noted that the previous MSI packaging is no longer available
and the point and click configuration wizards and all MySQL products
are now available in the unified Installer for Windows:

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

The list of all "Bugs Fixed" for 5.6.8 may also be viewed online at

If you are running a MySQL production level system, we would like to
direct your attention to MySQL Enterprise Edition, which includes the
most comprehensive set of MySQL production, backup, monitoring,
modeling, development, and administration and migration tools so
businesses can achieve the highest levels of MySQL performance,
security and uptime.


On behalf of the MySQL Build Team at Oracle,

Jörg Brühe


Changes in MySQL 5.6.8 (2012-Nov-7)

Installation Notes

* On Unix platforms, mysql_install_db supports a new option,
--random-passwords, that provides for more secure MySQL
installation. Invoking mysql_install_db with this option
causes it to perform the following actions in addition to its
normal operation:

+ Create a random password, assign it to the initial root
accounts, and set the "password expired" flag for those

+ Write the initial password file to the .mysql.secret file
in the directory named by the $HOME environment variable.
Depending on operating system, using a command such as
sudo may cause the value of $HOME to refer to the home
directory of the root system user.

+ Remove the anonymous-user accounts.

As a result of these actions, it is necessary after
installation to start the server, connect as root using the
password written to the .mysql.secret file, and assign a new
root password. Until this is done, root cannot do anything
else. This must be done for each root account you intend to
use. To change the password, you can use the SET PASSWORD
statement (for example, with the mysql client). You can also
use mysqladmin or mysql_secure_installation.
For new RPM install operations (not upgrades),
mysql_install_db is invoked with the --random-passwords
option. (Install operations using RPMs for Unbreakabkle Linux
Network are unaffected and do not use this option.)
For installations using a binary .tar.gz distribution, you can
invoke mysql_install_db with the --random-passwords option
manually. This is recommended for any installation,
particularly for sites with sensitive data.

This new option is not yet reflected in the "man" pages which are
contained in the 5.6.8-rc packages, but the online documentation
is current:

* mysql_install_db on Unix platforms will now create a new default
configuration file 'my.cnf' from a template that comes with the
package. This will be used by default when the server is started.
If the 'my.cnf' file already exists, it is assumed to be in use
and will not be overwritten.

The config file template and the created default file replace
the example files that came with earlier releases.

Functionality Added or Changed

* InnoDB: The InnoDB transportable tablespace feature was
enhanced to allow ALTER TABLE ... IMPORT TABLESPACE to succeed
in some cases where the corresponding .cfg file was not
available. This enhancement allows recovery of data even in
some cases where the system tablespace
tem_tablespace) is corrupted or deleted. (Bug #14589582, Bug

* The number of atomic operations performed by the Performance
Schema was reduced. (Bug #14658739)

* ALTER USER now can be used as a prepared statement. (Bug
#66874, Bug #14646014)

* On Windows, many MySQL executables depend on the libeay32.dll
and ssleay32.dll SSL libraries at runtime. To ensure that the
proper versions of these libraries are found, the install
process copies them into the same directory as the

* The SHOW AUTHORS and SHOW CONTRIBUTORS statements have been

Bugs Fixed

* Important Change: Replication: When running the slave with the
--slave-skip-errors option, successive skipped events (errors
logged as warnings) were found to contain information from
previous warnings, which caused an excessive amount of
redundant information to be written to the error log. This
problem could occur when using row-based or mixed-format
binary logging.
The fix for this issue is to clear these warnings prior to
processing the next skipped event. In addition, the skipped
events are now handled in the same way regardless of the value
of binlog_format, and a skipped error always causes a warning
to be written to the error log, as long as the value of the
log_warnings system variable is greater than 1. (Bug

* Important Change: The server system variables profiling,
have_profiling, and profiling_history_size are now deprecated,
and are subject to removal in a future release of the MySQL
Server. (Bug #14658683)

* InnoDB: When a CREATE INDEX operation failed for an InnoDB
FULLTEXT index due to a duplicate key error, some allocated
memory was not freed. (Bug #14759111)

* InnoDB: An online DDL
ine_ddl) operation to create a unique index could fail to
detect duplicate index values, when the duplicate values were
caused by DML
) operations while the index was being created. (Bug

* InnoDB: During a brief time window while creating an InnoDB
unique index, MySQL could print a spurious warning message:
The cause was that MySQL started enforcing the uniqueness
constraint before the existence of the index was fully
registered. The fix suppresses the incorrect message during
this final stage of index creation. (Bug #14735988)

* InnoDB: When using the transportable tablespace
nsportable_tablespace) feature, the ALTER TABLE ... IMPORT
TABLESPACE statement could crash if the InnoDB table being
flushed contained a FULLTEXT index. With this fix, the table
data can be imported, although you must drop and re-create the
FULLTEXT index after the import operation. (Bug #14712962, Bug

* InnoDB: If an InnoDB table containing a FULLTEXT index was
being modified by a TRUNCATE TABLE statement and on online DDL
ine_ddl) operation simultaneously, the server could end up
with inconsistent internal locks or could crash. (Bug

* InnoDB: If the server crashed while executing TRUNCATE TABLE
for an InnoDB table containing a FULLTEXT index, further
errors could occur during crash recovery
sh_recovery), preventing the server from restarting. (Bug

* InnoDB: If the MySQL server crashed while XA
transactions were in PREPARED state, inconsistent data could
be produced during crash recovery
sh_recovery) if the query cache was enabled. The fix allows
MySQL to disable the query cache during crash recovery if
required. (Bug #14658648)

* InnoDB: MySQL could crash while creating an InnoDB table if
the disk became full at a specific moment: after the .frm file
_file) was created but before the corresponding .ibd file
_file) was created. (Bug #14645935)

* InnoDB: If the server crashed at the moment specific point
when a change buffer
nge_buffer) entry was being merged into a buffer pool page,
the transaction log and the change buffer were left in an
inconsistent state. After a restart, MySQL could crash after
reading the corresponding secondary index page. The problem
was more likely to occur in MySQL 5.5 or later, where the
original insert buffering
ert_buffering) mechanism was generalized to cover other
operations. (Bug #14636528, Bug #66819, Bug #58571, Bug
#61104, Bug #65443)

* InnoDB: With the innodb_file_per_table setting enabled, a DROP
TABLE operation could cause a crash, due to a race condition
that depended on the timing of pending I/O requests. (Bug
#14594600, Bug #66718)

* InnoDB: If a crash occurred during a CREATE TABLE operation,
the InnoDB data dictionary
a_dictionary) could be left in an inconsistent state, causing
a crash if the partially created table was accessed later.
(Bug #14601290)

* InnoDB: On startup, MySQL would not start if there was a
mismatch between the value of the innodb_log_file_size
configuration option and the actual size of the ib_logfile*
files that make up the redo log
o_log). This behavior required manually removing the redo log
files after changing the value of innodb_log_file_size. The
fix causes MySQL to write all dirty pages
ty_page) to disk and re-create the redo log files during
startup if it detects a size mismatch. (Bug #14596550)

* InnoDB: If an online DDL
ine_ddl) operation failed due to a duplicate key error, caused
by DML
) changes being made concurrently to the table, the server
could crash with an assertion error. (Bug #14591797)

* InnoDB: If a FULLTEXT index was dropped from an InnoDB table,
and the server crashed later for an unrelated reason, an
additional error could occur while attempting to access
nonexistent FULLTEXT data structures. (Bug #14586855)

* InnoDB: A query against an InnoDB table with a FULLTEXT index
could crash, if the AGAINST clause contained a character
sequence that was encoded incorrectly for the character set of
the table. (Bug #14588091)

* InnoDB: The server could crash with a confusing message if it
ran out of space for temporary files during index creation.
InnoDB: Assertion failure in thread thread_num in file lin
e 306
InnoDB: Failing assertion: mtr->state == 12231
(Bug #14586256)

* InnoDB: An ALTER TABLE on an InnoDB table that dropped the
primary key and then re-created it with columns in a different
order could cause an error. The issue affected tables where
the swapped columns referenced each other in a single-table
foreign key
eign_key) relationship. The data dictionary could be left in
an inconsistent state, where the table was listed in SHOW
TABLES output but could not be queried or dropped. For
example, if the table was declared with primary key columns
(c1,c2) and a foreign key with c1 REFERENCES c2:
ERROR 1030 (HY000): Got error 38 from storage engine
(Bug #14548753)

* InnoDB: Table names containing non-ASCII characters were
displayed incorrectly when the

* InnoDB: A race condition could cause a crash during an online
CREATE INDEX statement for an InnoDB table. This bug only
affected very small tables. It required a DML
) operation to be in progress for the table, affecting the
primary key
mary_key) columns, at the same time the CREATE INDEX statement
was issued. (Bug #14117641)

* InnoDB: The server could crash with an assertion error during
operations on tables with ROW_FORMAT=COMPRESSED. (Bug

* InnoDB: In rare circumstances, during operations on an InnoDB
table containing foreign keys
eign_key), pages in the buffer pool
fer_pool) could be evicted but not written to disk, leading to
data inconsistency. (Bug #13688491)

* InnoDB: In rare circumstances, MySQL could apply InnoDB undo
o) records out of order during a ROLLBACK
lback) of an operation that modified a BLOB column. This issue
could cause an assertion error in debug builds:
(Bug #13249921)

* Partitioning: The server now skips pruning of tables (see
Partition Pruning
tml)) that use a storage engine which handles its own
partitioning internally. The server now also explicitly
rejects attempts to use explicit partitioning for such tables.
(Bug #14672885)

* Partitioning: When used with a table having multiple columns
in its primary key, but partitioned by KEY using a column that
was not part of the primary key as the partitioning column, a
query using an aggregate function and DISTINCT such as SELECT
SUM(DISTINCT pk_column_1) FROM table WHERE pk_column_2 =
constant was not handled correctly. (Bug #14495351)

* Replication: When using a multithreaded slave, if all worker
threads were kept busy, it was possible for cleanup of an
internal MTS circular buffer to fail, resulting in a full
buffer and failure of the slave. (Bug #14710881)

* Replication: When invoked while while gtid_mode was set to
OFF, the SQL_THREAD_WAIT_AFTER_GTIDS() function waited
indefinitely, unless a timeout was specified. In the latter
case, the function could return incorrect values. Now, when
gtid_mode is OFF, SQL_THREAD_WAIT_AFTER_GTIDS() always returns
NULL, as expected. (Bug #14640065)

* Replication: Executing FLUSH LOGS in parallel with COMMIT
could cause the server to hang. (Bug #14640486)

* Replication: Partially-failed GRANT and REVOKE statements were
not always handled the same way on the master and the slave.
We now log an incident event whenever an error occurs, even if
it is only a partial error, with a message stating that manual
reconciliation is required. (Bug #14598585)

* Replication: Backtick (`) characters were not always handled
correctly in internally generated SQL statements, which could
sometimes lead to errors on the slave. (Bug #14548159)

* Replication: There existed a gap in time between the appending
of the current GTID to the server's list of logged GTIDs and
the commit of the transaction by the storage engine. On slow
platforms, or when using profiling, this could cause SELECT
SQL_THREAD_WAIT_AFTER_GTIDS(gtid) to return before the data
actually reached the database.
Now the current GTID is appended to the logged GTIDs following
the commit, which removes this gap and so eliminates a
possible source of inconsistency. (Bug #14116526)

* Replication: The error shown when a relay log file was missing
from the relay log index file informed the user only that the
log file was not found, but did not specify the exact reason.
Now in such cases, the error message returned is Could not
find target log file mentioned in relay log info in the index
file 'index_file_name' during relay log initialization. (Bug

* Replication: Following an insert into a nontransactional table
that failed due to insufficient disk space, the server did not
properly clean up all pending events, leading to an assert or
possibly to other errors. (Bug #11750014)

* Patches for materialized semi-joins caused failures of the
query plan interface used by NDBCLUSTER. (Bug #14704659)

* With the optimizer tracing enabled, the
find tracing information about the last statements. However,
for queries for which the results were retrieved from the
query cache, this information was not available. (Bug

* USE dbname could fail with Unknown database when dbname
contained multiple backtick (`) characters. (Bug #14645196)

* Outer joins could execute inefficiently and return incorrect
results if joins were pushed down to the storage engine. (Bug

* In debug builds, the server could crash because db_suicide()
failed to handle SIGABRT signals. (Bug #14649493)

* Attempts to insert, update, delete from, or lock unknown
Performance Schema tables failed with an
ER_NO_SUCH_TABLE. (Bug #14633008)

* An incomplete result could be stored in the query cache when a
query failed with an error (providing that the query cache was
enabled, and was set to a nonzero size). This fix ensures that
it is no longer possible for queries that finish with an error
to be cached. (Bug #14621700)
References: This bug was introduced by Bug #40264.

* The server could crash when registering tables in the query
cache for queries that selected from views. (Bug #14619935)

* Index condition pushdown in conjunction with descending index
range scan could return incorrect results if there were
multiple ranges in the range scan. (Bug #14604223)

* EXPLAIN DELETE ... WHERE impossible_condition could function
incorrectly when it was used in a stored routine. (Bug
References: This bug was introduced by Bug #11752097.

* The script that converts GNU configure options to
CMake equivalents generated erroneous output for the
--with-client-ldflags and --with-mysqld-ldflags options. It
now ignores those options. (Bug #14593123)

* The server printed excessive Got error 159 when reading table
messages to the error log when one transaction attempted to
access a table that had been modified by another. (Bug

* The optimizer could choose an incorrect execution plan for
updates to InnoDB tables based on indexes that use column
prefixes. (Bug #14578060)

* A query with a subquery and ORDER BY and LIMIT clauses
returned fewer rows than expected when executed using
semi-join materialization. (Bug #14580874)

* Materialization of a subquery in the FROM clause could return
the wrong number of rows if the subquery included a LIMIT
clause. (Bug #14576727)

* In-source builds modified the source file
sql/share/dictionary.txt. (Bug #14562699)

* A query with a subquery in the JOIN ... ON clause with an
outer reference to a field that was out of scope could cause
the server to crash. (Bug #14498914)

* On Windows, mysql_plugin could not find my_print_defaults.
(Bug #14471052)

* When used in GRANT statements, quoted user name or host name
values containing leading or trailing spaces caused privileges
to be assigned incorrectly until a FLUSH PRIVILEGES statement
was issued.
Now, as a result of this fix, quoted name and host identifiers
used in a GRANT statement are automatically trimmed of any
leading and trailing spaces, before privileges are assigned.
(Bug #14328259)

* On Mac OS X, the version_compile_machine system variable did
not include the value 64 for server binaries compiled on a
64-bit system. (Bug #13859866)

* Access to INFORMATION_SCHEMA tables through a view could leak
memory. (Bug #13734987)

* On Microsoft Windows with CMake 2.6, the build process would
not stop if the create_initial_db step failed. (Bug #13713525)

* The test in mysqld_safe for the presence of the --plugin_dir
option and assignment of a default value to it were performed
before the actual argument parsing took place. (Bug #13548161)

* The number of connection errors from a given host as counted
by the server was periodically reset, with the result that
max_connect_errors was never reached and invalid hosts were
never blocked from trying to connect. (Bug #11753779)
References: See also Bug #38247, Bug #43006, Bug #45584, Bug

* A cached query result was not empty at the end of statement
execution as expected. This could occur when executing queries
(with the query cache enabled and set to a nonzero size) where
the result was not sent to the client such as those executed
by the Event Scheduler, or when executing stored routines
containing queries while the server was running in bootstrap
mode. (Bug #11755580, Bug #14609893)

* The Range checked for each record optimization is now used for
conditions with outer query references. (Bug #11750963)

* Metadata locking resulted in excessive contention in read-only
workloads involving InnoDB tables and a low number of
Now the set of metadata locks can be partitioned into separate
hashes to permit connections accessing different objects to
use different locking hashes and reduce contention. The new
metadata_locks_hash_instances system variable can be used to
specify the number of hashes. (Bug #66473, Bug #14569140)

* ST_Contains() and ST_Within() incorrectly reported that a
polygon did not contain itself. ST_Equals() incorrectly
returned 0 for polygons that differed only in shifted
vertices. (Bug #64653, Bug #13864679)

* ST_Difference() could incorrectly produce empty polygons in
the result. (Bug #64649, Bug #13865773)

* For some queries involving ORDER BY, the optimizer chose the
wrong index for accessing the table. (Bug #45969, Bug
#11754370, Bug #14338686)

* In debug builds, vio_read() printed errno rather than
socket_error to the debug trace. (Bug #28775, Bug #11746795)

Options: ReplyQuote

Subject Views Written By Posted
MySQL Community Server 5.6.8-rc has been released 4333 Joerg Bruehe 11/07/2012 02:08PM

Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.