Documentation Home
MySQL 5.7 Reference Manual
Related Documentation Download this Manual Excerpts from this Manual

MySQL 5.7 Reference Manual  /  General Information  /  What Is New in MySQL 5.7

1.4 What Is New in MySQL 5.7

This section summarizes what has been added to, deprecated in, and removed from MySQL 5.7. A companion section lists MySQL server options and variables that have been added, deprecated, or removed in MySQL 5.7. See Section 1.5, “Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 5.7”.

Added Features

The following features have been added to MySQL 5.7:

  • Security improvements. These security enhancements were added:

  • SQL mode changes. Strict SQL mode for transactional storage engines (STRICT_TRANS_TABLES) is now enabled by default.

    Implementation for the ONLY_FULL_GROUP_BY SQL mode has been made more sophisticated, to no longer reject deterministic queries that previously were rejected. In consequence, this mode is now enabled by default, to prohibit only nondeterministic queries containing expressions not guaranteed to be uniquely determined within a group.

    The ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE SQL modes are now deprecated but enabled by default. The long term plan is to have them included in strict SQL mode and to remove them as explicit modes in a future MySQL release. See SQL Mode Changes in MySQL 5.7.

    The changes to the default SQL mode result in a default sql_mode system variable value with these modes enabled: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION.

  • Online ALTER TABLE. ALTER TABLE now supports a RENAME INDEX clause that renames an index. The change is made in place without a table-copy operation. It works for all storage engines. See Section 13.1.6, “ALTER TABLE Syntax”.

  • ngram and MeCab full-text parser plugins. As of MySQL 5.7.6, MySQL provides a built-in full-text ngram parser plugin that supports Chinese, Japanese, and Korean (CJK), and an installable MeCab full-text parser plugin for Japanese.

    For more information, see Section 12.9.8, “ngram Full-Text Parser”, and Section 12.9.9, “MeCab Full-Text Parser Plugin”.

  • InnoDB enhancements. These InnoDB enhancements were added:

    • VARCHAR size may be increased using an in-place ALTER TABLE, as in this example:


      This is true as long as the number of length bytes required by a VARCHAR column remains the same. For VARCHAR values of 0 to 255, one length byte is required to encode the value. For VARCHAR values of 256 bytes or more, two length bytes are required. As a result, in-place ALTER TABLE only supports increasing VARCHAR size from 0 to 255 bytes or increasing VARCHAR size from a value equal to or greater than 256 bytes.

      In-place ALTER TABLE does not support increasing VARCHAR size from less than 256 bytes to a value equal to or greater than 256 bytes. In this case, the number of required length bytes would change from 1 to 2, which is only supported by a table copy (ALGORITHM=COPY). For example, attempting to change VARCHAR column size from 255 to 256 using in-place ALTER TABLE would return an error:

      ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: Cannot change
      column type INPLACE. Try ALGORITHM=COPY.

      Decreasing VARCHAR size using in-place ALTER TABLE is not supported. Decreasing VARCHAR size requires a table copy (ALGORITHM=COPY).

    • DDL performance for InnoDB temporary tables is improved through optimization of CREATE TABLE, DROP TABLE, TRUNCATE TABLE, and ALTER TABLE statements.

    • InnoDB temporary table metadata is no longer stored to InnoDB system tables. Instead, a new table, INNODB_TEMP_TABLE_INFO, provides users with a snapshot of active temporary tables. The table contains metadata and reports on all user and system-created temporary tables that are active within a given InnoDB instance. The table is created when the first SELECT statement is run against it.

    • InnoDB now supports MySQL-supported spatial data types. Prior to this release, InnoDB would store spatial data as binary BLOB data. BLOB remains the underlying data type but spatial data types are now mapped to a new InnoDB internal data type, DATA_GEOMETRY.

    • There is now a separate tablespace for all non-compressed InnoDB temporary tables. The new tablespace is always recreated on server startup and is located in DATADIR by default. A newly added configuration file option, innodb_temp_data_file_path, allows for a user-defined temporary data file path.

    • In MySQL 5.7.2, innochecksum functionality is enhanced with several new options and extended capabilities. See Section 4.6.1, “innochecksum — Offline InnoDB File Checksum Utility”.

    • A new type of non-redo undo log for both normal and compressed temporary tables and related objects now resides in the temporary tablespace. For more information, see Section 14.2.6, “InnoDB Temporary Table Undo Logs”.

    • In MySQL 5.7.2, InnoDB buffer pool dump and load operations are enhanced. A new system variable, innodb_buffer_pool_dump_pct, allows you to specify the percentage of most recently used pages in each buffer pool to read out and dump. When there is other I/O activity being performed by InnoDB background tasks, InnoDB attempts to limit the number of buffer pool load operations per second using the innodb_io_capacity setting.

    • In MySQL 5.7.3, support is added to InnoDB for full-text parser plugins. For information about full-text parser plugins, see Section, “Full-Text Parser Plugins” and Section, “Writing Full-Text Parser Plugins”.

    • As of MySQL 5.7.4, InnoDB supports multiple page cleaner threads for flushing dirty pages from buffer pool instances. A new system variable, innodb_page_cleaners, is used to specify the number of page cleaner threads. The default value of 1 maintains the pre-MySQL 5.7.4 configuration in which there is a single page cleaner thread. This enhancement builds on work completed in MySQL 5.6, which introduced a single page cleaner thread to offload buffer pool flushing work from the InnoDB master thread.

    • As of MySQL 5.7.4, MySQL supports rebuilding regular and partitioned InnoDB tables using online DDL (ALGORITHM=INPLACE) for the following operations:

      Online DDL support reduces table rebuild time and permits concurrent DML, which helps reduce user application downtime. For additional information, see Section 14.10.1, “Overview of Online DDL”.

    • The Fusion-io Non-Volatile Memory (NVM) file system on Linux provides atomic write capability, which makes the InnoDB doublewrite buffer redundant. In MySQL 5.7.4, the InnoDB doublewrite buffer is automatically disabled for system tablespace files (ibdata files) located on Fusion-io devices that support atomic writes.

    • As of MySQL 5.7.4, InnoDB supports the Transportable Tablespace feature for partitioned InnoDB tables and individual InnoDB table partitions. This enhancement eases backup procedures for partitioned tables and enables copying of partitioned tables and individual table partitions between MySQL instances. For additional information, see Section 14.4.6, “Copying File-Per-Table Tablespaces to Another Server”.

    • As of MySQL 5.7.5, the innodb_buffer_pool_size parameter is dynamic, allowing you to resize the buffer pool without restarting the server. The resizing operation, which involves moving pages to a new location in memory, is performed in chunks. Chunk size is configurable using the new innodb_buffer_pool_chunk_size configuration option. You can monitor resizing progress using the new Innodb_buffer_pool_resize_status status variable. For more information, see Section, “Resizing the InnoDB Buffer Pool Online”.

    • Multi-threaded page cleaner support (innodb_page_cleaners) is extended to shutdown and recovery phases in MySQL 5.7.5.

    • As of MySQL 5.7.5, InnoDB supports indexing of spatial data types using SPATIAL indexes, including use of ALTER TABLE ... ALGORITHM=INPLACE for online operations (ADD SPATIAL INDEX).

    • As of MySQL 5.7.5, InnoDB performs a bulk load when creating or rebuilding indexes. This method of index creation is known as a sorted index build. This enhancement, which improves the efficiency of index creation, also applies to full-text indexes. A new global configuration option, innodb_fill_factor, defines the percentage of space on each page that is filled with data during a sorted index build, with the remaining space reserved for future index growth. For more information, see Section, “Sorted Index Builds”.

    • As of MySQL 5.7.5, A new log record type (MLOG_FILE_NAME) is used to identify tablespaces that have been modified since the last checkpoint. This enhancement simplifies tablespace discovery during crash recovery and eliminates scans on the file system prior to redo log application. For more information about the benefits of this enhancement, see Section 14.15.2, “Tablespace Discovery During Crash Recovery”.

      This enhancement changes the redo log format, requiring that MySQL be shut down cleanly before upgrading to or downgrading from MySQL 5.7.5.

    • As of MySQL 5.7.5, you can truncate undo logs that reside in undo tablespaces. This feature is enabled using the innodb_undo_log_truncate configuration option. For more information, see Section 14.4.8, “Truncating Undo Logs That Reside in Undo Tablespaces”.

    • As of MySQL 5.7.6, InnoDB supports native partitioning. Previously, InnoDB relied on the ha_partition handler, which creates a handler object for each partition. With native partitioning, a partitioned InnoDB table uses a single partition-aware handler object. This enhancement reduces the amount of memory required for partitioned InnoDB tables.

      As of MySQL 5.7.9, mysql_upgrade looks for and attempts to upgrade partitioned InnoDB tables that were created using the ha_partition handler. Also in MySQL 5.7.9 and later, you can upgrade such tables by name in the mysql client using ALTER TABLE ... UPGRADE PARTITIONING.

    • As of MySQL 5.7.6, InnoDB supports the creation of general tablespaces using CREATE TABLESPACE syntax.

      CREATE TABLESPACE `tablespace_name` 
        ADD DATAFILE 'file_name.ibd'
        [FILE_BLOCK_SIZE = n]

      General tablespaces can be created outside of the MySQL data directory, are capable of holding multiple tables, and support tables of all row formats.

      Tables are added to a general tablespace using CREATE TABLE tbl_name ... TABLESPACE [=] tablespace_name or ALTER TABLE tbl_name TABLESPACE [=] tablespace_name syntax.

      For more information, see Section 14.4.9, “InnoDB General Tablespaces”.

    • In MySQL 5.7.9, DYNAMIC replaces COMPACT as the implicit default row format for InnoDB tables. A new configuration option, innodb_default_row_format, specifies the default InnoDB row format. For more information, see Section 14.8.2, “Specifying the Row Format for a Table”.

  • JSON support. Beginning with MySQL 5.7.8, MySQL supports a native JSON type. JSON values are not stored as strings, instead using an internal binary format that permits quick read access to document elements. JSON documents stored in JSON columns are automatically validated whenever they are inserted or updated, with an invalid document producing an error. JSON documents are normalized on creation, and can be compared using most comparison operators such as =, <, <=, >, >=, <>, !=, and <=>; for information about supported operators as well as precedence and other rules that MySQL follows when comparing JSON values, see Comparison and Ordering of JSON Values.

    MySQL 5.7.8 also introduces a number of functions for working with JSON values. These functions include those listed here:

    In MySQL 5.7.9 and later, you can use column->path as shorthand for JSON_EXTRACT(column, path). This works as an alias for a column wherever a column identifier can occur in an SQL statement, including WHERE, ORDER BY, and GROUP BY clauses. This includes SELECT, UPDATE, DELETE, CREATE TABLE, and other SQL statements. The left hand side must be a JSON column identifier (and not an alias). The right hand side is a quoted JSON path expression which is evaluated against the JSON document returned as the column value.

    See Section 12.16.3, “Functions That Search JSON Values”, for more information about -> and JSON_EXTRACT(). For information about JSON path support in MySQL 5.7, see Searching and Modifying JSON Values. See also Secondary Indexes and Virtual Generated Columns.

  • System and status variables. System and status variable information is now available in Performance Schema tables, in preference to use of INFORMATION_SCHEMA tables to obtain these variable. This also affects the operation of the SHOW VARIABLES and SHOW STATUS statements. The value of the show_compatibility_56 system variable affects the output produced from and privileges required for system and status variable statements and tables. For details, see the description of that variable in Section 5.1.4, “Server System Variables”.


    The default for show_compatibility_56 is OFF. Applications that require 5.6 behavior should set this variable to ON until such time as they have been migrated to the new behavior for system variables and status variables. See Section 21.17, “Migrating to Performance Schema System and Status Variable Tables”

  • sys schema. MySQL distributions now include the sys schema, which is a set of objects that help DBAs and developers interpret data collected by the Performance Schema. sys schema objects can be used for typical tuning and diagnosis use cases. For more information, see Chapter 22, MySQL sys Schema.

  • Condition handling. MySQL now supports stacked diagnostics areas. When the diagnostics area stack is pushed, the first (current) diagnostics area becomes the second (stacked) diagnostics area and a new current diagnostics area is created as a copy of it. Within a condition handler, executed statements modify the new current diagnostics area, but GET STACKED DIAGNOSTICS can be used to inspect the stacked diagnostics area to obtain information about the condition that caused the handler to activate, independent of current conditions within the handler itself. (Previously, there was a single diagnostics area. To inspect handler-activating conditions within a handler, it was necessary to check this diagnostics area before executing any statements that could change it.) See Section, “GET DIAGNOSTICS Syntax”, and Section, “The MySQL Diagnostics Area”.

  • Optimizer. These optimizer enhancements were added:

  • Triggers. Previously, a table could have at most one trigger for each combination of trigger event (INSERT, UPDATE, DELETE) and action time (BEFORE, AFTER). This limitation has been lifted and multiple triggers are permitted. For more information, see Section 19.3, “Using Triggers”.

  • Logging. These logging enhancements were added:

    • Previously, on Unix and Unix-like systems, MySQL support for sending the server error log to syslog was implemented by having mysqld_safe capture server error output and pass it to syslog. The server now includes native syslog support, which has been extended to include Windows. For more information about sending server error output to syslog, see Section 5.2.2, “The Error Log”.

    • The mysql client now has a --syslog option that causes interactive statements to be sent to the system syslog facility. Logging is suppressed for statements that match the default ignore pattern list ("*IDENTIFIED*:*PASSWORD*"), as well as statements that match any patterns specified using the --histignore option. See Section, “mysql Logging”.

  • Generated Columns. MySQL now supports the specification of generated columns in CREATE TABLE and ALTER TABLE statements. Values of a generated column are computed from an expression specified at column creation time. Generated columns can be virtual (computed on the fly when rows are read) or stored (computed when rows are inserted or updated). For more information, see CREATE TABLE and Generated Columns.

  • mysql client. Previously, Control+C in mysql interrupted the current statement if there was one, or exited mysql if not. Now Control+C interrupts the current statement if there was one, or cancels any partial input line otherwise, but does not exit.

  • Database name rewriting with mysqlbinlog. Renaming of databases by mysqlbinlog when reading from binary logs written using the row-based format is now supported using the --rewrite-db option added in MySQL 5.7.1.

    This option uses the format --rewrite-db='dboldname->dbnewname'. You can implement multiple rewrite rules, by specifying the option multiple times.

  • HANDLER with partitioned tables. The HANDLER statement may now be used with user-partitioned tables. Such tables may use any of the available partitioning types (see Section 18.2, “Partitioning Types”).

  • Index condition pushdown support for partitioned tables. In MySQL 5.7.3 and later, queries on partitioned tables using the InnoDB or MyISAM storage engine may employ the index condition pushdown optimization that was introduced in MySQL 5.6. See Section, “Index Condition Pushdown Optimization”, for more information.

  • WITHOUT VALIDATION support for ALTER TABLE ... EXCHANGE PARTITION. As of MySQL 5.7.5, ALTER TABLE ... EXCHANGE PARTITION syntax includes an optional {WITH|WITHOUT} VALIDATION clause. When WITHOUT VALIDATION is specified, ALTER TABLE ... EXCHANGE PARTITION does not perform row-by-row validation when exchanging a populated table with the partition, permitting database administrators to assume responsibility for ensuring that rows are within the boundaries of the partition definition. WITH VALIDATION is the default behaviour and need not be specified explicitly. For more information, see Section 18.3.3, “Exchanging Partitions and Subpartitions with Tables”.

  • Master dump thread improvements. The master dump thread was refactored to reduce lock contention and improve master throughput. Previous to MySQL 5.7.2, the dump thread took a lock on the binary log whenever reading an event; in MySQL 5.7.2 and later, this lock is held only while reading the position at the end of the last successfully written event. This means both that multiple dump threads are now able to read concurrently from the binary log file, and that dump threads are now able to read while clients are writing to the binary log.

  • Globalization improvements. MySQL 5.7.4 includes a gb18030 character set that supports the China National Standard GB18030 character set. For more information about MySQL character set support, see Section 10.1, “Character Set Support”.

  • Changing the replication master without STOP SLAVE. In MySQL 5.7.4 and later, the strict requirement to execute STOP SLAVE prior to issuing any CHANGE MASTER TO statement is removed. Instead of depending on whether the slave is stopped, the behavior of CHANGE MASTER TO now depends on the states of the slave SQL thread and slave I/O threads; which of these threads is stopped or running now determines the options that can or cannot be used with a CHANGE MASTER TO statement at a given point in time. The rules for making this determination are listed here:

    • If the SQL thread is stopped, you can execute CHANGE MASTER TO using any combination of RELAY_LOG_FILE, RELAY_LOG_POS, and MASTER_DELAY options, even if the slave I/O thread is running. No other options may be used with this statement when the I/O thread is running.

    • If the I/O thread is stopped, you can execute CHANGE MASTER TO using any of the options for this statement (in any allowed combination) except RELAY_LOG_FILE, RELAY_LOG_POS, or MASTER_DELAY, even when the SQL thread is running. These three options may not be used when the I/O thread is running.

    • Both the SQL thread and the I/O thread must be stopped before issuing CHANGE MASTER TO ... MASTER_AUTO_POSITION = 1.

    You can check the current state of the slave SQL and I/O threads using SHOW SLAVE STATUS.

    If you are using statement-based replication and temporary tables, it is possible for a CHANGE MASTER TO statement following a STOP SLAVE statement to leave behind temporary tables on the slave. As part of this set of improvements, a warning is now issued whenever CHANGE MASTER TO is issued following STOP SLAVE when statement-based replication is in use and Slave_open_temp_tables remains greater than 0.

    For more information, see Section, “CHANGE MASTER TO Syntax”, and Section 17.3.6, “Switching Masters During Failover”.

  • Test suite. The MySQL test suite now uses InnoDB as the default storage engine.

  • Multi-source replication is now possible. MySQL Multi-Source Replication adds the ability to replicate from multiple masters to a slave. MySQL Multi-Source Replication topologies can be used to back up multiple servers to a single server, to merge table shards, and consolidate data from multiple servers to a single server. See Section 17.1.4, “MySQL Multi-Source Replication”.

    As part of MySQL Multi-Source Replication, replication channels have been added. Replication channels enable a slave to open multiple connections to replicate from, with each channel being a connection to a master. See Section 17.2.3, “Replication Channels”.

  • Group Replication Performance Schema tables. MySQL 5.7 adds a number of new tables to the Performance Schema to provide information about replication groups and channels. These include the following tables:

    All of these tables were added in MySQL 5.7.2, except for replication_group_members and replication_group_member_stats, which were added in MySQL 5.7.6. For more information, see Section 21.9.10, “Performance Schema Replication Tables”.

  • Group Replication SQL. The following statements were added in MySQL 5.7.6 for controlling group replication:

    For more information, see Section 13.4.3, “SQL Statements for Controlling Group Replication”.

Deprecated Features

The following features are deprecated in MySQL 5.7 and may be or will be removed in a future series. Where alternatives are shown, applications should be updated to use them.

  • The ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE SQL modes are now deprecated but enabled by default. The long term plan is to have them included in strict SQL mode and to remove them as explicit modes in a future MySQL release.

    The deprecated ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE SQL modes are still recognized so that statements that name them do not produce an error, but will be removed in a future version of MySQL. To make advance preparation for versions of MySQL in which these mode names do not exist, applications should be modified to not refer to them. See SQL Mode Changes in MySQL 5.7.

  • Changes to account-management statements make the following features obsolete. They are now deprecated:

    • Using GRANT to create users. Instead, use CREATE USER. Following this practice makes the NO_AUTO_CREATE_USER SQL mode immaterial for GRANT statements, so it too is deprecated.

    • Using GRANT to modify account properties other than privilege assignments. This includes authentication, SSL, and resource-limit properties. Instead, establish such properties at account-creation time with CREATE USER or modify them afterward with ALTER USER.

    • IDENTIFIED BY PASSWORD 'hash_string' syntax for CREATE USER and GRANT. Instead, use IDENTIFIED WITH auth_plugin AS 'hash_string' for CREATE USER and ALTER USER, where the 'hash_string' value is in a format compatible with the named plugin.

    • The SET PASSWORD statement and the PASSWORD() function. Instead, use ALTER USER to change account passwords, and avoid using PASSWORD() in any context.

    • The old_passwords system variable. Account authentication plugins can no longer be left unspecified in the mysql.user table, so any statement that assigns a password from a cleartext string can unambiguously determine the hashing method to use on the string before storing it in the mysql.user table. This renders old_passwords superflous.

  • Relying on implicit GROUP BY sorting in MySQL 5.7 is deprecated. To achieve a specific sort order of grouped results, it is preferable to use an explicit ORDER BY clause. GROUP BY sorting is a MySQL extension that may change in a future release; for example, to make it possible for the optimizer to order groupings in whatever manner it deems most efficient and to avoid the sorting overhead.

  • The EXTENDED and PARTITIONS keywords for the EXPLAIN statement. These keywords are still recognized but are now unnecessary because their effect is always enabled.

  • The --skip-innodb option and its synonyms (--innodb=OFF, --disable-innodb, and so forth). These options have no effect as of MySQL 5.7. because InnoDB cannot be disabled.

  • The log_warnings system variable and --log-warnings server option. Use the log_error_verbosity system variable instead.

  • The binlog_max_flush_queue_time system variable does nothing in MySQL 5.7, and is deprecated as of MySQL 5.7.9.

  • The innodb_support_xa system variable, which enables InnoDB support for two-phase commit in XA transactions, is deprecated as of MySQL 5.7.10. InnoDB support for two-phase commit in XA transactions is always enabled as of MySQL 5.7.10.

  • The metadata_locks_cache_size and metadata_locks_hash_instances system variables. These do nothing as of MySQL 5.7.4.

  • The sync_frm system variable.

  • The global character_set_database and collation_database system variables are deprecated and will be removed in a future version of MySQL.

    Assigning a value to the session character_set_database and collation_database system variables is deprecated and assignments produce a warning. The session variables will become read only in a future version of MySQL and assignments will produce an error. It will remain possible to access the session variables to determine the database character set and collation for the default database.

  • The ENCRYPT(), ENCODE(), DECODE(), DES_ENCRYPT(), and DES_DECRYPT() encryption functions. Consider using AES_ENCRYPT() and AES_DECRYPT() instead.

  • The MBREqual() spatial function. Use MBREquals() instead.

  • The INFORMATION_SCHEMA.PROFILING table. Use the Performance Schema instead; see Chapter 21, MySQL Performance Schema.

  • mysqld_safe support for syslog output. Use the native server syslog support used instead. See Section 5.2.2, “The Error Log”.

  • Conversion of pre-MySQL 5.1 database names containing special characters to 5.1 format with the addition of a #mysql50# prefix. Because such conversions are deprecated, the --fix-db-names and --fix-table-names options for mysqlcheck and the UPGRADE DATA DIRECTORY NAME clause for the ALTER DATABASE statement are also deprecated.

    Upgrades are supported only from one release series to another (for example, 5.0 to 5.1, or 5.1 to 5.5), so there should be little remaining need for conversion of older 5.0 database names to current versions of MySQL. As a workaround, upgrade a MySQL 5.0 installation to MySQL 5.1 before upgrading to a more recent release.

Removed Features

The following items are obsolete and have been removed in MySQL 5.7. Where alternatives are shown, applications should be updated to use them.

  • Support for passwords that use the older pre-4.1 password hashing format is removed, which involves the following changes. Applications that use any feature no longer supported must be modified.

    • The mysql_old_password authentication plugin is removed. Accounts that use this plugin are disabled at startup and the server writes an unknown plugin message to the error log. For instructions on upgrading accounts that use this plugin, see Section, “Migrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin”.

    • The --secure-auth option to the server and client programs is the default, but is now a no-op. It is deprecated and will be removed in a future MySQL release.

    • The --skip-secure-auth option to the server and client programs is no longer supported and using it produces an error.

    • The secure_auth system variable permits only a value of 1; a value of 0 is no longer permitted.

    • For the old_passwords system variable, a value of 1 (produce pre-4.1 hashes) is no longer permitted.

    • The OLD_PASSWORD() function is removed.

  • In MySQL 5.6.6, the YEAR(2) data type was deprecated. Support for YEAR(2) is now removed. Once you upgrade to MySQL 5.7.5 or newer, any remaining YEAR(2) columns must be converted to YEAR(4) to become usable again. For conversion strategies, see Section 11.3.4, “YEAR(2) Limitations and Migrating to YEAR(4)”. For example, run mysql_upgrade after upgrading.

  • The innodb_mirrored_log_groups system variable. The only supported value was 1, so it had no purpose.

  • The storage_engine system variable. Use default_storage_engine instead.

  • The thread_concurrency system variable.

  • The timed_mutexes system variable. It does nothing and has no effect.

  • The IGNORE clause for ALTER TABLE.

  • INSERT DELAYED is no longer supported. The server recognizes but ignores the DELAYED keyword, handles the insert as a nondelayed insert, and generates an ER_WARN_LEGACY_SYNTAX_CONVERTED warning. (INSERT DELAYED is no longer supported. The statement was converted to INSERT.) Similarly, REPLACE DELAYED is handled as a nondelayed replace. The DELAYED keyword will be removed in a future release.

    In addition, several DELAYED-related options or features were removed:

    • The --delayed-insert option for mysqldump.

    • The COUNT_WRITE_DELAYED, SUM_TIMER_WRITE_DELAYED, MIN_TIMER_WRITE_DELAYED, AVG_TIMER_WRITE_DELAYED, and MAX_TIMER_WRITE_DELAYED columns of the Performance Schema table_lock_waits_summary_by_table table.

    • mysqlbinlog no longer writes comments mentioning INSERT DELAYED.

  • Database symlinking on Windows using for .sym files has been removed because it is redundant with native symlink support available using mklink. Any .sym file symbolic links will be ignored and should be replaced with symlinks created using mklink. See Section, “Using Symbolic Links for Databases on Windows”.

  • The unused --basedir, --datadir, and --tmpdir options for mysql_upgrade were removed.

  • Previously, program options could be specified in full or as any unambiguous prefix. For example, the --compress option could be given to mysqldump as --compr, but not as --comp because the latter is ambiguous. Option prefixes are no longer supported; only full options are accepted. This is because prefixes can cause problems when new options are implemented for programs and a prefix that is currently unambiguous might become ambiguous in the future. Some implications of this change:

    • The --key-buffer option must now be specified as --key-buffer-size.

    • The --skip-grant option must now be specified as --skip-grant-tables.

  • SHOW ENGINE INNODB MUTEX output is removed in MySQL 5.7.2. Comparable information can be generated by creating views on Performance Schema tables.

  • The InnoDB Tablespace Monitor and InnoDB Table Monitor are removed in MySQL 5.7.4. For the Tablespace Monitor, equivalent functionality will be introduced before the GA release of MySQL 5.7. For the Table Monitor, equivalent information can be obtained from InnoDB INFORMATION_SCHEMA tables.

  • The specially named tables used to enable and disable the standard InnoDB Monitor and InnoDB Lock Monitor (innodb_monitor and innodb_lock_monitor) are removed in MySQL 5.7.4 and replaced by two dynamic system variables: innodb_status_output and innodb_status_output_locks. For additional information, see Section 14.14, “InnoDB Monitors”.

  • The innodb_use_sys_malloc and innodb_additional_mem_pool_size system variables, which were deprecated in MySQL 5.6.3, are removed in MySQL 5.7.4.

  • The msql2mysql, mysql_convert_table_format, mysql_find_rows, mysql_fix_extensions, mysql_setpermission, mysql_waitpid, mysql_zap, mysqlaccess, and mysqlbug utilities.

  • The mysqlhotcopy utility. Alternatives include mysqldump and MySQL Enterprise Backup.

  • The script.

  • The INNODB_PAGE_ATOMIC_REF_COUNT CMake option is removed in MySQL 5.7.5.

  • The innodb_create_intrinsic option is removed in MySQL 5.7.6.

  • The innodb_optimize_point_storage option and related internal data types (DATA_POINT and DATA_VAR_POINT) were removed.

  • The innodb_log_checksum_algorithm option is removed in MySQL 5.7.9.

Download this Manual
User Comments
Sign Up Login You must be logged in to post a comment.