Documentation Home
MySQL 5.5 Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 1.7Mb
PDF (A4) - 1.7Mb

MySQL 5.5 Release Notes  /  Changes in MySQL 5.5.41 (2014-11-28, General Availability)

Changes in MySQL 5.5.41 (2014-11-28, General Availability)

Compilation Notes

  • CMake workarounds for older OS X and XCode versions were removed. On OS X, compilation always uses Clang, even for 32-bit builds.

    Compilation on OS X is now supported for OS X 10.8 and up, using XCode 5 and up. Compilation on older versions may work but is unsupported. (Bug #18510941)

  • Previously, the MYSQL_MAINTAINER_MODE CMake option was turned on by default for debug builds and off for release builds, and MYSQL_MAINTAINER_MODE caused -Werror to be enabled when building with GCC. This made it cumbersome to enable -Werror under certain conditions, such as when compiling with Clang.

    Now, MYSQL_MAINTAINER_MODE is on by default when compiling debug builds with GCC, and MYSQL_MAINTAINER_MODE enbles -Werror regardless of whether GCC or Clang is used. Enabling -Werror with Clang can be done simply by explicitly setting -DMYSQL_MAINTAINER_MODE=1 when running CMake. In addition, some compilation warnings reported by Clang 3.4 were fixed, making it possible to build the default debug build with -Werror. (Bug #18313717)

  • Build support was modified to produce the same warnings for Clang as for gcc. (Bug #17959689)

  • CMake configuration for the Clang compiler sets more appropriate flags for building on Linux. Specifically, -g -fno-omit-frame-pointer -fno-strict-aliasing is now added. (Bug #17633291)

Deprecation and Removal Notes

  • Replication: The global scope for the sql_log_bin system variable has been deprecated, and this variable can now be set with session scope only. The statement SET GLOBAL SQL_LOG_BIN now produces an error. It remains possible to read the global value of sql_log_bin, but doing so produces a warning. You should act now to remove from your applications any dependencies on reading this value; the global scope sql_log_bin is removed in MySQL 8.0. (Bug #67433, Bug #15868071)

Security Notes

  • yaSSL was upgraded to version 2.3.5. (Bug #19695101, Bug #20201864)

Bugs Fixed

  • InnoDB: An ALTER TABLE operation raised an assertion. When a foreign key object was removed from the dictionary cache, an incorrect foreign key object was removed from the rb-tree. (Bug #19908343)

    References: This issue is a regression of: Bug #18806829.

  • InnoDB: In debug builds, setting the innodb_limit_optimistic_insert_debug debug configuration option to 1 caused an infinite B-tree page split. (Bug #19904003, Bug #74605)

  • InnoDB: The dict_set_corrupted() function attempted to update the clustered index of the SYS_INDEXES data dictionary table incorrectly. (Bug #19584379)

  • InnoDB: A procedure, called from a function to perform an operation on a temporary table, caused the server to halt. (Bug #19306524)

  • InnoDB: A CREATE TABLE operation that failed when innodb_strict_mode was enabled succeeded without printing a warning when innodb_strict_mode was disabled. (Bug #17852083)

  • Replication: When using a MySQL version that had been compiled with the WITH_DEBUG option enabled, using expire_logs_days to purge binary logs caused a restart to crash the server. This problem arose after the fix for Bug #17283409. The fix ensures that current_thd is checked before calling DEBUG_SYNC(). (Bug #19553099)

  • Replication: A corrupted header length in FORMAT_DESCRIPTION_LOG_EVENT could cause the server to stop unexpectedly. This was due to FORMAT_DESCRIPTION_LOG_EVENT being considered invalid if the header length was too short. (Bug #19145712)

  • Replication: Start log events were not checked by slaves for minimum size. (Bug #19145698)

  • Replication: A kernel mutex contention was being caused because mysqlbinlog was calling localtime() for every event read, which in turn called stat(/etc/localtime). This fix ensures that mysqlbinlog uses localtime_r(), which is optimized to store the read only timezone internal structure. This also means that mysqlbinlog now establishes the time zone at the beginning of processing and you can not change it during processing. This is the same behavior as MySQL server. (Bug #72701, Bug #18808072)

  • Microsoft Windows: On Windows, the replace utility did not work. (Bug #16581605)

  • Previously, InnoDB permitted a foreign key to be created which referenced a parent table for which the user did not have sufficient privileges. Now, the user must have at least one of the SELECT, INSERT, UPDATE, DELETE, or REFERENCES privileges for the parent table to create a foreign key. (Bug #18790730, Bug #11746917)

  • Binary MySQL distributions for OS X 10.8 and up now bundle the MySQL.prefPane and MySQLStartupItem.pkg tools into the main package as configurable options instead of separate packages. (Bug #74123, Bug #19701502)

  • On CentOS 6, specifying a relative path name for the --socket option caused MySQL startup script failure. (Bug #74111, Bug #19775856)

  • The IS_FREE_LOCK() and IS_USED_LOCK() function implementations contained a race condition due to which they could access freed memory when a user lock was concurrently checked and freed. Accessing freed memory could result in an incorrect function return value or server exit. (Bug #73123, Bug #19070633)

  • mysql_setpermission failed to properly quote user names in SQL statements that it generated. (Bug #66317, Bug #14486004)