The world's most popular open source database
Functionality added or changed:
Incompatible Change: The tables for MySQL Backup logging have been renamed, and the logging capabilities now are more flexible, similar to the capabilities provided for the general query log and slow query log.
The names of the MySQL Backup log tables in the
mysql database have been changed from
online_backup and
online_backup_progress to
backup_history and
backup_progress.
Logging now can be enabled or disabled, it is possible to log to tables or to files, and the names of the log files can be changed. For details, see Section 6.3.3.1, “MySQL Backup Log Control”.
A new statement,
FLUSH BACKUP
LOGS, closes and reopens the backup log files. A
new option for
mysql_refresh(),
REFRESH_BACKUP_LOG, performs the same
operation.
Important Change:
The --skip-thread-priority option is now
deprecated in MySQL 5.1 and is removed in MySQL 6.0 such that
the server won't change the thread priorities by default. Giving
threads different priorities might yield marginal improvements
in some platforms (where it actually works), but it might
instead cause significant degradation depending on the thread
count and number of processors. Meddling with the thread
priorities is a not a safe bet as it is very dependent on the
behavior of the CPU scheduler and system where MySQL is being
run.
(Bug#35164, Bug#37536)
Important Change:
The --log option now is deprecated and will be
removed (along with the log system variable)
in the future. Instead, use the --general_log
option to enable the general query log and the
--general_log_file=
option to set the general query log filename. The values of
these options are available in the
file_namegeneral_log and
general_log_file system
variables, which can be changed at runtime.
Similar changes were made for the
--log-slow-queries option and
log_slow_queries system
variable. You should use the --slow_query_log
and
--slow_query_log_file=
options instead (and the
file_nameslow_query_log and
slow_query_log_file system
variables).
The BUILD/compile-solaris-* scripts now
compile MySQL with the mtmalloc library
rather than malloc.
(Bug#38727)
Binary distributions for Solaris, Linux, and Mac OS X now are
built with support for the pool-of-threads
value of thread_handling.
(Bug#38636)
BACKUP DATABASE now performs an
implicit commit, like RESTORE.
(Bug#38261)
The deprecated --default-table-type server
option has been removed.
(Bug#34818)
On WIndows, use of POSIX I/O interfaces in
mysys was replaced with Win32 API calls
(CreateFile(),
WriteFile(), and so forth) and the default
maximum number of open files has been increased to 16384. The
maximum can be increased further by using the
--max-open-files=
option at server startup.
(Bug#24509)N
MySQL now supports an interface for semisynchronous replication: A commit performed on the master side blocks before returning to the session that performed the transaction until at least one slave acknowleges that it has received and logged the events for the transaction. Semisynchronous replication is implemented through an optional plugin component. See Section 16.2.9, “Semisynchronous Replication”
Most statements that previously caused an implicit commit before
executing now also cause an implicit commit after executing.
Also, the FLUSH statement and
mysql_refresh() C API function
now cause an implicit commit. See
Section 12.4.3, “Statements That Cause an Implicit Commit”.
Bugs fixed:
Incompatible Change:
CHECK TABLE ... FOR UPGRADE did not check for
incompatible collation changes made in MySQL 5.0.48. (This also
affects mysqlcheck and
mysql_upgrade, which cause that statement to
be executed.)
(Bug#39585)
See also Bug#40984.
Incompatible Change:
In connection with view creation, the server created
arc directories inside database directories
and maintained useless copies of .frm files
there. Creation and renaming procedures of those copies as well
as creation of arc directories has been
discontinued.
This change does cause a problem when downgrading to older server versions which manifests itself under these circumstances:
Create a view v_orig in MySQL 6.0.8 or
higher.
Rename the view to v_new and then back to
v_orig.
Downgrade to an older 6.0.x server and run mysql_upgrade.
Try to rename v_orig to
v_new again. This operation fails.
As a workaround to avoid this problem, use either of these approaches:
Dump your data using mysqldump before downgrading and reload the dump file after downgrading.
Instead of renaming a view after the downgrade, drop it and recreate it.
The downgrade problem introduced by the fix for this bug has been addressed as Bug#40021. (Bug#17823)
Important Change: Replication:
The SUPER privilege is now
required to change the session value of
binlog_format as well as its
global value. For more information about
binlog_format, see
Section 16.1.2, “Replication Formats”.
(Bug#39106)
Partitioning: Replication:
Replication to partitioned MyISAM tables
could be slow with row-based binary logging.
(Bug#35843)
Partitioning: A duplicate key error raised when inserting into a partitioned table used a different error code from that returned by such an error raised when inserting into a table that was not partitioned. (Bug#38719)
See also Bug#28842.
Partitioning: If an error occurred when evaluating a column of a partitioned table for the partitioning function, the row could be inserted anyway. (Bug#38083)
Partitioning:
Using INSERT ... SELECT to insert records
into a partitioned MyISAM table could fail if
some partitions were empty and others are not.
(Bug#38005)
Replication:
Replication of BLACKHOLE tables did not work
with row-based binary logging.
(Bug#38360)
Replication: In some cases, a replication master sent a special event to a reconnecting slave to keep the slave's temporary tables, but they still had references to the “old” slave SQL thread and used them to access that thread's data. (Bug#38269)
Replication:
Replication filtering rules were inappropiately applied when
executing BINLOG pseudo-queries.
One way in which this problem showed itself was that, when
replaying a binary log with mysqlbinlog, RBR
events were sometimes not executed if the
--replicate-do-db option was specified. Now
replication rules are applied only to those events executed by
the slave SQL thread.
(Bug#36099)
Replication:
For a CREATE TABLE ... SELECT statement that
creates a table in a database other than the current one, the
table could be created in the wrong database on replication
slaves if row-based binary logging is used.
(Bug#34707)
Replication:
A statement did not always commit or roll back correctly when
the server was shut down; the error could be triggered by having
a failing UPDATE or
INSERT statement on a
transactional table, causing an implicit rollback.
(Bug#32709)
See also Bug#38262.
Compiling using --with-falcon on Mac OS X fails
if you use CXX=gcc. You must specify that the
g++ compiler should be used for C++ using
CXX=g++.
(Bug#41270)
Creating a table, or selecting from a table using the
FALCON storage engine and with a double quote
in the name would cause an assertion failure.
(Bug#40158, Bug#39388)
Windows builds were missing the MySQL Backup log tables. (Bug#40126)
The indexes and record contents of a FALCON
table could get out of synchronization during a lrge number of
updates. Because FALCON returns data only if
it matches both the index and record data the result sets
returned could be invalid when comparing the results of an index
and non-index based SELECT.
(Bug#40112, Bug#40130)
The CHECK TABLE ... FOR UPGRADE statement did
not check for incompatible collation changes made in MySQL
5.1.24. (This also affects mysqlcheck and
mysql_upgrade, which cause that statement to
be executed.)
Prior to this fix, a binary upgrade (performed without dumping
tables with mysqldump before the upgrade and
reloading the dump file after the upgrade) would corrupt tables.
After the fix, CHECK TABLE ... FOR UPGRADE
properly detects the problem and upgrades tables.
However, the fix is not backward compatible and can result in a downgrading problem under these circumstances:
Perform a binary upgrade to a version of MySQL that includes the fix.
Run CHECK TABLE ... FOR UPGRADE (or
mysqlcheck or
mysql_upgrade) to upgrade tables.
Perform a binary downgrade to a version of MySQL that does not include the fix.
The solution is to dump tables with mysqldump before the downgrade and reload the dump file after the downgrade. Alternatively, drop and recreate affected indexes. (Bug#40053)
Non-ASCII error messages were corrupted. (Bug#39949)
The Threads_created status
variable was not correctly incremented when the server was
started with the
--thread-handling=pool-of-threads option.
(Bug#39916)
On Windows Vista, RESTORE did not
correctly calculate the validity point from the backup stream.
(Bug#39825)
When creating a table with the FALCON engine
where the size of the key in the index was larger than supported
(the error message did not signify the severity of the problem.
The message and error has been updated.
(Bug#39708)
The MySQL Backup backup_history log now
contains a backup_file_path column.
backup_file contains the basename and
backup_file_path contains the directory of
the image file pathname.
(Bug#39690)
Some MySQL Backup-related memory-use warnings detected by Valgrind were corrected. (Bug#39598)
Creating a table with a comment of 62 characters or longer caused a server crash. (Bug#39591)
The Sun Studio compiler failed to build debug versions of the server due to use of features specific to gcc. (Bug#39451)
For a TIMESTAMP column in an
InnoDB table, testing the column with
multiple conditions in the WHERE clause
caused a server crash.
(Bug#39353)
For BACKUP DATABASE, the server
could add a / character to the end of the
backup path, even when the path ended with a filename rather
than a directory name.
(Bug#39189)
The server could crash when attempting to insert duplicate empty
strings into a utf8 SET
column.
(Bug#39186)
References to local variables in stored procedures are replaced
with
NAME_CONST( when written to the
binary log. However, an “illegal mix of collation”
error might occur when executing the log contents if the value's
collation differed from that of the variable. Now information
about the variable collation is written as well.
(Bug#39182)name,
value)
BACKUP DATABASE failed on
PowerMac platforms due to type casting problems.
(Bug#39127)
MySQL Backup was not handling several errors. (Bug#39089)
Some warnings were being reported as errors. (Bug#39059)
Queries of the form SELECT ... REGEXP BINARY
NULL could lead to a hung or crashed server.
(Bug#39021)
Statements of the form INSERT ... SELECT .. ON
DUPLICATE KEY UPDATE could result in a server crash.
(Bug#39002)col_name =
DEFAULT
Repeated CREATE TABLE ... SELECT statements,
where the created table contained an
AUTO_INCREMENT column, could lead to an
assertion failure.
(Bug#38821)
RESTORE crashed if a trigger and
an event had the same name.
(Bug#38810)
For deadlock between two transactions that required a timeout to resolve, all server tables became inaccessible for the duration of the deadlock. (Bug#38804)
When inserting a string into a duplicate-key error message, the server could improperly interpret the string, resulting in a crash. (Bug#38701)
A race condition between threads sometimes caused unallocated memory to be addressed. (Bug#38692)
A server crash resulted from concurrent execution of a
multiple-table UPDATE that used a
NATURAL or USING join
together with FLUSH
TABLES WITH READ LOCK or ALTER
TABLE for the table being updated.
(Bug#38691)
On ActiveState Perl, mysql-test-run.pl --start-and-exit started but did not exit. (Bug#38629)
A server crash resulted from execution of an
UPDATE that used a derived table
together with FLUSH
TABLES.
(Bug#38499)
Stored procedures involving substrings could crash the server on certain platforms due to invalid memory reads. (Bug#38469)
The binary log filename stored in the
binlog_file column of the
mysql.backup_history MySQL Backup table now
is the file basename (the final component). Previously, the full
pathname was stored, but this could be too long for the column
width.
(Bug#38462)
On Windows, starting the server with the
--external-locking=1 option caused
BACKUP DATABASE to fail.
(Bug#38342)
Errors during server startup caused destruction of an uninitialized mutex and assertion failure. (Bug#37961)
The handlerton-to-plugin mapping implementation did not free
handler plugin references when the plugin was uninstalled,
resulting in a server crash after several install/uninstall
cycles. Also, on Mac OS X, the server crashed when trying to
access an EXAMPLE table after the
EXAMPLE plugin was installed.
(Bug#37958)
The server crashed if an argument to a stored procedure was a subquery that returned more than one row. (Bug#37949)
When analyzing the possible index use cases, the server was incorrectly reusing an internal structure, leading to a server crash. (Bug#37943)
Access checks were skipped for SHOW
PROCEDURE STATUS and SHOW
FUNCTION STATUS, which could lead to a server crash or
insufficient access checks in subsequent statements.
(Bug#37908)
Comparisons could hang for SET or
ENUM columns that used
latin2_czech_cs collation.
(Bug#37854)
SHOW PROCESSLIST displayed
“copy to tmp table” when no such copy was
occurring.
(Bug#37550)
The <=>
operator could return incorrect results when comparing
NULL to DATE,
TIME, or
DATETIME values.
(Bug#37526)
MySQL Backup was not consistently checking for
BSTREAM_ERROR errors.
(Bug#37522)
The combination of a subquery with a GROUP
BY, an aggregate function calculated outside the
subquery, and a GROUP BY on the outer
SELECT could cause the server to
crash.
(Bug#37348)
Incorrect BLOB handling by
RESTORE could result in a server
crash.
(Bug#37212)
The NO_BACKSLASH_ESCAPES SQL
mode was ignored for
LOAD DATA
INFILE and SELECT INTO ... OUTFILE.
The setting is taken into account now.
(Bug#37114)
If thread-pooling was used and a connection attempt was denied on the grounds of exceeding the user limits, the number of active connections for that user was erroneously decreased twice. The difference between the actual number connections and the internal count could then cause debug builds of the server to raise an assertion. (Bug#36970)
Long error messages for RESTORE
could be truncated.
(Bug#36854)
In some cases, references to views were confused with references to anonymous tables and privilege checking was not performed. (Bug#36086)
For crash reports on Windows, symbol names in stack traces were not correctly resolved. (Bug#35987)
ALTER EVENT changed the
PRESERVE attribute of an event even when
PRESERVE was not specified in the statement.
(Bug#35981)
Hostname values in SQL statements were not being checked for
'@', which is illegal according to RFC952.
(Bug#35924)
mysql_install_db failed on machines that had
the hostname set to localhost.
(Bug#35754)
Dynamic plugins failed to load on i5/OS. (Bug#35743)
With the
PAD_CHAR_TO_FULL_LENGTH SQL
mode enabled, a ucs2
CHAR column returned additional
garbage after trailing space characters.
(Bug#35720)
RESTORE did not set the
validity_point_time,
binlog_pos, and
binlog_file fields of the
backup_history log table row.
(Bug#35240)
With binary logging enabled, CREATE TABLE ...
SELECT failed if the source table was a log table.
(Bug#34306)
If BACKUP DATABASE and
RESTORE were done in a session
with autocommit disabled, a later DROP
TABLE or RESTORE in the
same session failed.
(Bug#34204)
The secure_file_priv system
variable now applies to BACKUP
DATABASE and RESTORE
operations: If the value is nonempty, backup and restore
operations can read and write files only in the given directory.
(Bug#34171)
mysql_real_connect() did not
check whether the MYSQL connection handler
was already connected and connected again even if so. Now an
CR_ALREADY_CONNECTED error occurs.
(Bug#33831)
Shutting down the MySQL Server immediately following the
execution of a BACKUP DATABASE
statement caused the server to crash if the database to be
backed up contained any Falcon tables.
(Bug#33575)
The server crashed for BACKUP
DATABASE if the backup progress tables in the
mysql database were missing or created
incorrectly.
(Bug#33352)
CHECKSUM TABLE was not killable
with KILL QUERY.
(Bug#33146)
A trigger for an InnoDB table activating
multiple times could lead to AUTO_INCREMENT
gaps.
(Bug#31612)
mysqldump could fail to dump views containing a large number of columns. (Bug#31434)
The server could improperly type user-defined variables used in the select list of a query. (Bug#26020)
For access to the
INFORMATION_SCHEMA.VIEWS table, the
server did not check the SHOW
VIEW and SELECT
provileges, leading to inconsistency between output from that
table and the SHOW CREATE VIEW
statement.
(Bug#22763)
mysqld_safe would sometimes fail to remove
the pid file for the old mysql process after
a crash. As a result, the server would fail to start due to a
false A mysqld process already exists...
error.
(Bug#11122)


User Comments
Add your own comment.