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.55 (2017-04-10, General availability)

Changes in MySQL 5.5.55 (2017-04-10, General availability)

Compilation Notes

  • Windows builds now use the default runtime libraries (builds use the /MD flag). (Bug #25611609)

Configuration Notes

Packaging Notes

  • Microsoft Windows: Reminder: MySQL 5.5 requires the Microsoft Visual C++ 2008 Redistributable Package to run on Windows platforms. Users should make sure the package has been installed on the system before starting the server. The package is available at the Microsoft Download Center.

Security Notes

  • The mysql_options() C API function now supports a MYSQL_OPT_SSL_MODE option. The only permitted option value is SSL_MODE_REQUIRED, to require an encrypted connection to the server. It causes mysql_real_connect() to fail if an encrypted connection cannot be obtained, without falling back to an unencrypted connection. Thus, mysql_real_connect() returns an error if the server does not support SSL or the client is not configured to use SSL. The client/server exchange terminates immediately after the initial server packet has been received if the server indicates that it does not support SSL.

    To require an encrypted connection in MySQL 5.5, the standard MySQL client programs call mysql_options() to set MYSQL_OPT_SSL_MODE if the --ssl-mode=REQUIRED command-line option was specified. Third-party applications that must be able to require encrypted connections can use the same technique. For details, see mysql_ssl_set().

    The minor C API version number was not incremented for this change. Application programs compiled for MySQL 5.5 that require MYSQL_OPT_SSL_MODE may fail to operate properly if the dynamic loader provides an older client library without MYSQL_OPT_SSL_MODE. Such applications must be written to handle this possibility by checking whether the mysql_options() call succeeds or fails. (Bug #25575605)

Thread Pool Notes

  • To improve thread_pool plugin performance, connection authentication and initialization have been moved from the acceptor thread to the thread pool worker threads that handle client connections. This enables the acceptor thread to handle new connections at a higher rate with reduced latency. The INFORMATION_SCHEMA TP_THREAD_GROUP_STATE table now contains a CONNECT_THREAD_COUNT column that indicates the number of threads that are processing or waiting to process connection initialization and authentication. There can be a maximum of four connection threads per thread group; these threads expire after a period of inactivity. (Bug #17159742)

Platform-Specific Notes

  • Oracle Linux 5, Red Hat Enterprise Linux 5, and CentOS 5: This is the last release in the MySQL 5.5 series to support Oracle Linux 5, Red Hat Enterprise Linux 5, and CentOS 5. As per the MySQL Support Lifecycle policy regarding ending support for OS versions that are obsolete or have reached end of life, we plan to discontinue building binaries for those Linux distributions in future releases. Moreover, we plan to build the generic Linux tarballs for the next release on Oracle Linux 6 using glibc 2.12. (Bug #25828375)

Functionality Added or Changed

  • Solaris: Solaris packages are now marked as dependent on /bin/bash because some scripts need features not present in the default shell /bin/sh. (Bug #25136289)

  • mysql_secure_installation is more strict about what it considers valid yes and no responses. (Bug #13344753, Bug #62925)

Bugs Fixed

  • InnoDB: A server exit on restart was caused by missing my_thread_init() and my_thread_exit() functions for background threads that initialize the st_my_thread_var structure. (Bug #25167032)

  • mysqldump failed to properly quote certain identifiers in SQL statements written to the dump output. (Bug #25717383)

  • For CREATE TABLE statements that specified the table name with a database qualifier and included a DATA DIRECTORY or INDEX DIRECTORY option, an error occurred if there was no default database. (Bug #25514146, Bug #84861)

  • mysqld_safe did not check whether the directory named by the --basedir option existed. (Bug #25365194)

  • mysqld_safe failed if the error log file named by the --log-error option was a FIFO. (Bug #25356221, Bug #84427)

  • mysqld_safe could fail if the --datadir option value ended with a / character. (Bug #25319457)

  • A recent change to mysqld_safe caused the mysql.server script to be unable to start it if the base directory was specified as an absolute path that differed from the compiled-in default absolute path. (Bug #25319392, Bug #84263)

  • For System V init scripts for RPMs, the [mysqld] option-file section was being ignored for some options, such as pid-file. (Bug #25287707, Bug #84172)

  • Init scripts failed to launch mysqld_safe if a non-default base directory was used. (Bug #25261472, Bug #84219)

  • mysqld_safe --no-defaults did not work (inadvertent consequence of an earlier bug fix). (Bug #25244898, Bug #84173)

  • For a client linked against libmysqlclient, invalid memory access could occur during use of prepared statements. (Bug #25164932)

  • The fix for Bug #25088048 caused the command used by mysqld_safe to start the MySQL server to no longer include the mysqld path. (Bug #25144379)

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

  • Changes made to mysqld_safe in recent MySQL releases require the --ledir, --mysqld, --mysqld-version options to be specified on the command line; they can no longer be specified in option files. This could cause failure of init scripts that invoke mysqld_safe. Such scripts now pass the value of the MYSQLD_OPTS environment variable as the first command-line argument to mysqld_safe, with the value set to such command line-only mysqld_safe option values as may be required. On platforms that use systemd, the MYSQLD_OPTS value can be set in /etc/sysconfig/mysqld with a line such as this:

    MYSQLD_OPTS=" --ledir=/mysqld_ledir --mysqld=my_wrapper "

    The value of MYSQLD_OPTS can also include mysqld options for mysqld_safe to pass to mysqld. (Bug #24619033, Bug #82920)

    References: This issue is a regression of: Bug #24464380, Bug #24483092, Bug #25088048, Bug #25378439, Bug #25378565.

  • For LOAD DATA used to insert data into an updateable view, the check to verify whether a column is actually updatable was missing. (Bug #24595937)

  • A regular expression pattern match into a large string could result in a server exit due to memory allocation failure or integer overflow. (Bug #24449076, Bug #24449090)

  • An incorrect error was reported for CREATE TABLE statements with a large value for the CONNECTION table option. The value is now limited to 1024 bytes. (Bug #24437124)

  • Grant tables with incorrect structure may cause problems in user management operations. As a consequence of the fix for this, for any operation that modifies a grant table, the server now checks whether the table has the expected structure and produces an error if not. mysql_upgrade must be run to update the tables to the expected structure. (Bug #23295423, Bug #25095876, Bug #25448037)

  • The QUOTE() function could allocate excessive memory. A limit of max_allowed_packet bytes is now imposed and returns NULL with a warning for attempts to allocate more. (Bug #23195404)

  • When attempting to locate the data directory, mysqld_safe incorrectly considered $MY_BASEDIR_VERSION/var as one of the possible locations. (Bug #23013510, Bug #80866)

  • The main.log_tables-big test case could be unstable on highly loaded hosts. Thanks to Laurynas Biveinis for the patch. (Bug #22874167, Bug #80607)

  • On non-Linux Unix systems, the mysql.server startup script used the Linux command pidof rather than pgrep. (Bug #13788154, Bug #64342)

  • Starting multiple instances of mysqld_safe after an abnormal server exit could result in one mysqld_safe instance killing another. As a consequence of the bug fix, the file is no longer used. (Bug #11751149, Bug #41908)

  • The --help message for mysqld_safe was corrected to mention that the --no-defaults, --defaults-file, and --defaults-extra-file options, if given, must be the first argument. (Bug #11745176, Bug #11192)

  • The bounds check for the XML parser position stack for each level (which has a fixed depth) used the size of the array as the upper limit, and so was off by one. This is fixed by decreasing the allowable depth by one, which actually matches the maximum number of elements in the position stack. (Bug #83871, Bug #25111907)

    References: See also: Bug #14040071, Bug #15948580.