Beginning with MySQL 5.5.29, Oracle no longer provides binaries for OS X 10.5, Debian 5, RHEL/OL 4, FreeBSD 7, Windows XP, or Windows 2003.
The
SHOW AUTHORS
andSHOW CONTRIBUTORS
statements are now deprecated in MySQL 5.5 and have been removed in MySQL 5.6.
-
Incompatible Change:
LAST_INSERT_ID(
did not work forexpr
)expr
values greater than the largest signedBIGINT
value. Such arguments now are accepted, with some consequences for compatibility with previous versions:LAST_INSERT_ID()
now returns aBIGINT UNSIGNED
value, not aBIGINT
(signed) value.LAST_INSERT_ID(
now returns an unsigned integer value, not a signed integer value.expr
)For
AUTO_INCREMENT
columns, negative values are no longer supported.
(Bug #20964, Bug #11745891)
Important Change; InnoDB: A DML statement using the index merge access method could lock many rows from the table, even when those rows were not part of the final result set. This fix reduces the excessive locking by releasing the locks of unmatched rows. This optimization affects only transactions with isolation level equal to or less strict than
READ COMMITTED
; it does not apply to transactions usingREPEATABLE READ
orSERIALIZABLE
isolation level. (Bug #14226171)Performance; InnoDB: The timing values for low-level
InnoDB
read operations were adjusted for better performance with fast storage devices, such as SSD. This enhancement primarily affects read operations forBLOB
columns in compressed tables. (Bug #13702112, Bug #64258)InnoDB: An online DDL operation for an
InnoDB
table incorrectly reported an empty value (''
) instead of the correct key value when it reported a duplicate key error for a unique index using an index prefix. (Bug #14729221)InnoDB: If a
CREATE TABLE
statement failed due to a disk full error, some memory allocated during the operation was not freed properly. (Bug #14708715)InnoDB: This fix makes MySQL more responsive to
KILL QUERY
statements when the query is accessing anInnoDB
table. (Bug #14704286)InnoDB: If the server crashed at the specific point when a change 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 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, aDROP 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 table was defined with an index key length very close to the upper length limit of 3072, a query against that table could cause a serious error. (Bug #14500557, Bug #14537695)
InnoDB: When an auto-increment column used a
FLOAT
orDOUBLE
data type, if the auto-increment value became very large (larger than the maximumunsigned long long
value), subsequent inserts could fail or cause the server to halt. (Bug #14145950, Bug #55071)-
InnoDB: If a transaction was started with a consistent snapshot, then new indexes were added to the table while the transaction was in progress, a subsequent
UPDATE
statement could incorrectly encounter the error:ER_TABLE_DEF_CHANGED: insufficient history for index
This issue could cause an assertion error in debug builds. (Bug #14036214)
-
InnoDB: The error message was improved for the case where an
UPDATE
failed because the row included several BLOB values greater than 768 bytes each, causing the size of a row to exceed half the page size. The old message, was misleading; it suggested using BLOBs, when the 768-byte prefix for each BLOB column was the cause of the limit error:Error Code 1118: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
A workaround for the problem was to create the table with the
ROW_FORMAT=DYNAMIC
orROW_FORMAT=COMPRESSED
clause, which is now suggested in the message. (Bug #13453036, Bug #63507) -
InnoDB: In rare circumstances, MySQL could apply
InnoDB
undo records out of order during a ROLLBACK of an operation that modified a BLOB column. This issue could cause an assertion error in debug builds:!bpage->file_page_was_freed
(Bug #13249921)
InnoDB: In debug builds, a mismatch in the
InnoDB
PAGE_FREE
list would cause an assertion. (Bug #12701488)-
Replication: Updates writing user variables whose values were never set on a slave while using
--replicate-ignore-table
could cause the slave to fail. (Bug #14597605)References: This issue is a regression of: Bug #14275000.
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)
Replication: Backtick (
`
) characters were not always handled correctly in internally generated SQL statements, which could sometimes lead to errors on replication slaves or cause failure of restore operations from binary log files. (Bug #66550, Bug #14548159, Bug #29422, Bug #11746883)Within a stored procedure, executing a multiple-table
DELETE
statement that used a very long table alias could cause the server to exit. (Bug #15954896)Very long table aliases in queries could cause the server to exit. (Bug #15948123)
Very long database names in queries could cause the server to exit. (Bug #15912213, Bug #16900358)
Attempting to create an auto-increment column in an
InnoDB
table with aNULL
type attribute could cause a serious error. (Bug #14758479)A
DELETE
statement for anInnoDB
table could write incorrect transaction metadata into a record, causing the server to halt with an error. To work around this issue, reduce the specified length of the primary key to less than 1K bytes. (Bug #14731482)Repeated execution of a query containing a subquery that used
MAX()
could result in increasing memory consumption. (Bug #14683676)USE
could fail with Unknown database whendbname
dbname
contained multiple backtick (`
) characters. (Bug #14645196)Within a stored program, memory allocated to hold condition information was not released until program exit, leading to excessive memory use. (Bug #14640599)
SHOW PROFILE
could be used to cause excessive server memory consumption. (Bug #14629232)The thread cache implementation worked in LIFO rather than FIFO fashion and could result in a thread being denied service (although this was a remote possibility). (Bug #14621627)
The configure.pl 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)Improper memory cleanup could cause the server to exit. (Bug #14536113)
Granting or revoking the
PROXY
privilege caused the server to exit if the server was started with--skip-name-resolve
. (Bug #14211140)CREATE USER
andDROP USER
could fail to flush the privileges, requiringFLUSH PRIVILEGES
to be used explicitly. (Bug #13864642)Access to
INFORMATION_SCHEMA
tables through a view could leak memory. (Bug #13734987)A memory leak could occur for queries containing a subquery that used
GROUP BY
on an outer column. (Bug #13724099)On Microsoft Windows with CMake 2.6, the build process would not stop if the
create_initial_db
step failed. (Bug #13713525)CHECK TABLE
andREPAIR TABLE
could crash if aMyISAM
table had a corrupt key (.MYI
) file. Now the server produces an error. (Bug #13556441)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)Improper memory cleanup could cause the server to exit. (Bug #13340270)
A memory leak occurred due to failure to clean up after
QUICK_INDEX_MERGE_SELECT/Unique
. (Bug #12694872, Bug #14542543)-
A “buffer too small” error message from the myisamchk command referred to the
myisam_sort_buffer_size
configuration option, when it should have referred tosort_buffer_size
.myisamchk now has a
myisam_sort_buffer_size
variable available as an alternative name tosort_buffer_size
.myisam_sort_buffer_size
is preferable tosort_buffer_size
because its name corresponds to themyisam_sort_buffer_size
server system variable that has a similar meaning.sort_buffer_size
should be considered deprecated. (Bug #11754894, Bug #46578) -
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 #45606.
RHEL RPM packages had a conflict between
mysql-libs
andmysql-shared
. (Bug #67965, Bug #16041010)In debug builds, an
InnoDB
assertion was overly aggressive about prohibiting an open range. (Bug #66513, Bug #14547952)On Windows, the Perl version of mysql_install_db created system tables in the mysql database that were not populated properly. (Bug #65584, Bug #14181049)
mysqld_safe ignored the value of the
UMASK
environment variable, leading to behavior different from mysqld with respect to the access mode of created files. Now mysqld_safe (and mysqld_multi) attempt to approximate the same behavior as mysqld. (Bug #57406, Bug #11764559)During optimization,
ZEROFILL
values may be converted to string constants. However,CASE
expressions did not handle switching data types after the planning stage, leading toCASE
finding a null pointer instead of its argument. (Bug #57135, Bug #11764313)