オリジナル版:http://lists.mysql.com/announce/1015
MySQL 5.7.8(マイルストーンリリース)は世界でもっともポピュラーなオープンソースデータベースの新しいバージョンです。これはMySQL 5.7の8番目のマイルストーンリリースです。
このリリースの新機能はベータ品質です。他のプロダクションリリース前と同様にプロダクションレベルのシステムやクリティカルなデータを持つシステムにインストールする場合には十分に注意すべきです。
MySQL 5.7.8はMySQL 5.6のすべての機能を含んでいます。さらに、5.7の独自の機能として以下を実装しています。
・InnoDB、オプティマイザの性能向上
・オンラインでALTER文の実行が可能に
・マルチソースレプリケーション(マスタ:スレーブ=N:1)
詳細は以下のリンクから確認することが出来ます。
http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html
MySQL 5.7.8は、ダウンロード・ページの開発リリースセクションから、ソースコードと多くのプラットフォームのためのバイナリをご利用いただけます。
(※MySQL 5.7.8で利用できるプラットフォームとパッケージのフォーマットはMySQL 5.6と同じです)
http://dev.mysql.com/downloads/
MySQL 5.7.8をインストールする場合は、以下のMySQLのインストールドキュメントを参照してください。
http://dev.mysql.com/doc/refman/5.7/en/installing.html
WindowsパッケージはWindowsインストーラーのための新しいインストーラ、もしくはZIP(ノンインストール)パッケージが利用いただけます。以前のMSIパッケージはもう利用できず、ポイントアンドクリック設定ウィザードと全てのMySQL製品でWindows向けの統一インストーラが利用可能です。
http://dev.mysql.com/downloads/installer/
また、私たちはフィードバック、バグレポート、バグ修正パッチ等を歓迎します
http://bugs.mysql.com/report.php
次の節では、MySQL 5.7.8の変更を記載しています。これはオンラインでも閲覧できます。
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-8.html
Changes in MySQL 5.7.8 (2015-08-03, Release Candidate) Note This is a release candidate, for use at your own risk. Significant development changes take place in release candidate releases and you may encounter compatibility issues, such as data format changes that require attention in addition to the usual procedure of running mysql_upgrade. For example, you may find it necessary to dump your data with mysqldump before the upgrade and reload it afterward. This release adds support for Debian 8 and Ubuntu 15.04. * Account Management Notes * Backup Notes * Configuration Notes * JSON Notes * Optimizer Notes * Packaging Notes * Performance Schema Notes * Plugin Notes * Security Notes * Spatial Data Support * SQL Mode Notes * Functionality Added or Changed * Bugs Fixed Account Management Notes * The maximum length of MySQL user names has been increased from 16 characters to 32 characters, which provides greater flexibility in choosing the user name part of MySQL account names. The change affects permitted user names in these contexts: + Account-management statements, such as CREATE USER, GRANT, REVOKE, and SHOW GRANTS. + Statements that support a DEFINER clause, such as CREATE PROCEDURE and CREATE VIEW. + Other statements with clauses that contain user names, such as CHANGE MASTER TO and CREATE SERVER. + Columns that store user names in mysql system database, INFORMATION_SCHEMA, and Performance Schema tables have been widened to accommodate 32 characters. There are no changes in the client/server protocol, which exchanges user names as null-terminated strings. However, third-party programs that use this protocol to communicate may need to be modified if they use or store user names based on the assumption of 16 characters maximum. The increase in maximum user name length has implications for MySQL administration: + Replication implication: Replication of user names longer than 16 characters to a slave that supports only shorter user names will fail. However, this should occur only when replicating from a newer master to an older slave, which is not a recommended configuration. + Downgrade implication: If a newer server supports any accounts with a user name longer than 16 characters, downgrades to an older version of MySQL that supports only shorter names is not possible. If you upgrade to this MySQL release from an earlier version, you must run mysql_upgrade (and restart the server) to incorporate this change in user name length. * The CREATE USER statement now supports an IF NOT EXISTS clause that causes the statement to produce a warning for each named account that already exists, rather than an error. The ALTER USER and DROP USER statements now support an IF EXISTS clause that cause the statements to produce a warning for each named account that does not exist, rather than an error. For details, see CREATE USER Syntax (http://dev.mysql.com/doc/refman/5.7/en/create-user.html), ALTER USER Syntax (http://dev.mysql.com/doc/refman/5.7/en/alter-user.html), and DROP USER Syntax (http://dev.mysql.com/doc/refman/5.7/en/drop-user.html). These statement variants can be useful in replication scenarios when the set of accounts differs between master and slave. They also permit scripting account-management operations that otherwise would terminate for statement errors. Backup Notes * A new client program, mysqlpump, provides an alternative to mysqldump. Significant mysqlpump features include: + Parallel processing of databases, and of objects within databases, to speed up the dump process + For dump file reloading, faster secondary index creation for InnoDB tables by adding indexes after rows are inserted + Better control over which databases and database objects (tables, views, stored programs, user accounts) to dump + Dumping of user accounts as account-management statements (CREATE USER, GRANT) rather than as inserts into the mysql system database + Capability of creating compressed output + Progress indicator For more information, see mysqlpump --- A Database Backup Program (http://dev.mysql.com/doc/refman/5.7/en/mysqlpump.html). Configuration Notes * The default configuration for systemd now sets LimitNOFILE to 5000 to increase the number of file descriptors available to the MySQL server. This change applies to Linux systems on which MySQL installation is performed using RPM packages. On such systems, the number of descriptors available is often set by the operating system to 1024. The change causes the number of descriptors to match the --open-files-limit option default value of 5000. To configure a different number of descriptors, set LimitNOFILE as described at Managing MySQL Server with systemd (http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html). (Bug #21073014) JSON Notes * MySQL now supports a native JSON data type that enables efficient access to data in JSON (JavaScript Object Notation) documents. The JSON data type provides these advantages over storing JSON-format strings in a string column: + Automatic validation of JSON documents stored in JSON columns. Invalid documents produce an error. + Optimized storage format. JSON documents stored in JSON columns are converted to an internal format that permits efficient access to document elements. Along with the JSON data type, a set of SQL functions is available to enable operations on JSON values, such as creation, manipulation, and searching. In addition, the CONVERT() and CAST() functions can convert values between JSON and other types. For more information, see The JSON Data Type (http://dev.mysql.com/doc/refman/5.7/en/json.html), and JSON Functions (http://dev.mysql.com/doc/refman/5.7/en/json-functions.html). Optimizer Notes * The optimizer now is able to use indexes on generated columns, even when queries do not refer to such columns directly by name. The optimizer recognizes query expressions that match definitions of generated columns and uses indexes from those columns as appropriate during query execution. For details, see Optimizer Use of Generated Column Indexes (http://dev.mysql.com/doc/refman/5.7/en/generated-column-index-optimizations.html). * The optimizer hint capability introduced in MySQL 5.7.7 has been expanded to subquery execution strategies. Subquery hints affect whether to use semi-join transformations and which semi-join strategies to permit, and, when semi-joins are not used, whether to use subquery materialization or IN-to-EXISTS transformations. Examples: SELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ * FROM t1 ...; SELECT id, a IN (SELECT /*+ SUBQUERY(MATERIALIZATION) */ a FROM t1) FROM t2; SELECT * FROM t2 WHERE t2.a IN (SELECT /*+ SUBQUERY(INTOEXISTS) */ a FROM t1); For more information, see Subquery Optimizer Hints (http://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html#optimizer-hints-subquery). There is also a new duplicateweedout flag for the optimizer_switch system variable. This flag enables use of optimizer_switch to specify whether to use the Duplicate Weedout semi-join strategy, which was not previously possible. * The optimizer cost model has a new memory_block_read_cost parameter in the mysql.engine_cost table representing the cost of reading an index or data block from an in-memory database buffer. Together with the existing io_block_read_cost parameter representing the cost of reading a block from disk, this change enables cost models for data access methods to take into account the costs of reading information from different sources; that is, the cost of reading information from disk versus reading information already in a memory buffer. For the initial implementation, the default value of memory_block_read_cost is the same as io_block_read_cost. Tuning the values remains as future work, although you can change the values to see how that affects query performance. For more information, see The Optimizer Cost Model (http://dev.mysql.com/doc/refman/5.7/en/cost-model.html). If you upgrade to this MySQL release from an earlier version, you must run mysql_upgrade (and restart the server) to incorporate this change into the mysql database. Packaging Notes * For Windows, the MSI installer package no longer includes debugging binaries/information components (including PDB files). These are available in a separate Zip archive named mysql-VERSION-winx64-debug-test.zip for 64-bit and mysql-VERSION-win32-debug-test.zip for 32-bit. (Bug #18296012) Performance Schema Notes * Current-event timing now provides more information. Previously, while a wait, stage, statement, or transaction event was executing, the respective tables displayed the event with TIMER_START populated, but with TIMER_END and TIMER_WAIT as NULL: events_waits_current events_stages_current events_statements_current events_transactions_current To make it possible to determine how how long a not-yet-completed event has been running, the timer columns now are set as follows: + TIMER_START is populated (unchanged from previous behavior) + TIMER_END is populated with the current timer value + TIMER_WAIT is populated with the time elapsed so far (TIMER_END − TIMER_START) To find events that have not yet completed (that is, have no END_EVENT_ID) and have taken longer than N picoseconds thus far, monitoring applications can use this expression in queries: WHERE END_EVENT_ID IS NULL AND TIMER_WAIT > N (Bug #75156, Bug #20889406) * The Performance Schema incorporates these changes: + The show_compatibility_56 system variable default value, previously ON, has been changed to 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 Migrating to Performance Schema Variable Tables (http://dev.mysql.com/doc/refman/5.7/en/performance-schema-variable-table-migration.html) + When the Performance Schema session variable tables produced output, they included no rows for global-only variables and thus did not fully reflect all variable values in effect for the current session. This has been corrected so that each table has a row for each session variable, and a row for each global variable that has no session counterpart. This change applies to the session_variables and session_status tables. + It is no longer required that the show_compatibility_56 system variable be OFF for the Performance Schema system variable tables to produce output. The tables now produce output regardless of the variable value. This change applies to the global_variables, session_variables, and variables_by_thread tables. + WHERE clauses for SHOW VARIABLES and SHOW STATUS were deprecated in MySQL 5.7.6. This restriction has been lifted so that WHERE is supported as before 5.7.6. + The metadata_locks table now displays tablespace locks. Rows for these locks have an OBJECT_TYPE value of TABLESPACE. + The Performance Schema logs wait, stage, statement, and transaction events in these history tables: events_waits_history events_waits_history_long events_stages_history events_stages_history_long events_statements_history events_statements_history_long events_transactions_history events_transactions_history_long Previously, historical event logging was controlled entirely by enabling or disabling history-related consumers in the setup_consumers table. These flags are global to the server, with the result that historical data was collected either for all threads or no threads. The Performance Schema now uses history consumers in conjunction with the setup_actors table to make it possible to control collection of historical events per host, user, or account (combination of host and user). This table has a new HISTORY column that indicates whether to collect historical events (subject also to which history consumers are enabled), and each new foreground thread is matched against rows in the table. If a matching row is found, its HISTORY value is recorded in the row for the thread in the threads table, which also now has a HISTORY column. Enabling historical event logging for a given session can be done independent of enabling instrumentation for it. Consequently, you can control more precisely what events are logged in history tables, with these advantages: o A decrease in runtime overhead when historical data is needed only for a subset of the instrumented sessions. o A reduction of noise in the history tables, facilitating troubleshooting on busy servers that generate a large number of events. For more information, see Pre-Filtering by Thread (http://dev.mysql.com/doc/refman/5.7/en/performance-schema-pre-filtering.html#performance-schema-thread-filtering), The setup_actors Table (http://dev.mysql.com/doc/refman/5.7/en/setup-actors-table.html), and The threads Table (http://dev.mysql.com/doc/refman/5.7/en/threads-table.html). + The threads table now contains a CONNECTION_TYPE column that indicates the connection protocol. It can be used to determine how the connection was made. Permitted values are TCP/IP (TCP/IP connection established without SSL), SSL/TLS (TCP/IP connection established with SSL), Socket (Unix socket file connection), Named Pipe (Windows named pipe connection), and Shared Memory (Windows shared memory connection). Connection-type information is also written to the general query log for new connections, and the audit log interface was revised to incorporate the connection type. For more information, see The threads Table (http://dev.mysql.com/doc/refman/5.7/en/threads-table.html), The General Query Log (http://dev.mysql.com/doc/refman/5.7/en/query-log.html), and Writing Audit Plugins (http://dev.mysql.com/doc/refman/5.7/en/writing-audit-plugins.html). If you upgrade to this MySQL release from an earlier version, you must run mysql_upgrade (and restart the server) to incorporate these changes into the performance_schema database. References: See also Bug #20652173, Bug #20684424, Bug #20811494. Plugin Notes * These changes were made for the Rewriter query rewrite plugin (see The Rewriter Query Rewrite Plugin (http://dev.mysql.com/doc/refman/5.7/en/rewriter-query-rewrite-plugin.html): + There is now a single installation script, install_rewriter.sql. Previously, there were two installation scripts, install_rewriter.sql and install_rewriter_with_optional_columns.sql, which differed in whether they created the pattern_digest and normalized_columns columns of the rewrite_rules table. install_rewriter.sql now always creates those columns, so there is no need for install_rewriter_with_optional_columns.sql. + The enabled column of the rewrite_rules table is now defined as ENUM('YES,'NO') rather than as CHAR(1). Correspondingly, to enable a rule, set this column to YES rather than Y. To upgrade if you have previously installed the Rewriter plugin, uninstall it by running the uninstallation script first, then run the installation script. After reinstalling, load your rewrite rules again (this is necessary because uninstalling drops the rules table). For instructions, see Installing the Rewriter Query Rewrite Plugin (http://dev.mysql.com/doc/refman/5.7/en/rewriter-query-rewrite-plugin.html#rewriter-query-rewrite-plugin-installation). Security Notes * Community Edition RPM packages now invoke mysql_ssl_rsa_setup during installation to create default SSL and RSA key and certificate files. (Bug #20855737) * A new system variable, require_secure_transport, enables administrators to require all client connections to the server to be made using some form of secure transport. Qualifying connections are those that use SSL, a socket file (on Unix), or shared memory (on Windows). When this variable is enabled, the server rejects nonsecure connection attempts, which fail with an ER_SECURE_TRANSPORT_REQUIRED error. This capability supplements per-account SSL requirements, which take precedence. For example, if an account is defined with REQUIRE SSL, enabling require_secure_transport does not make it possible to use the account to connect using a Unix socket file. Spatial Data Support * ST_NumInteriorRing() was added as more a standard-compliant alias of ST_NumInteriorRings(). (Bug #21362781) * All spatial computations now are done using Boost.Geometry functions. All older non-Boost-based algorithms have been removed. (Bug #21300713) * Geometry constructor functions that take WKT or WKB values (such as ST_GeomFromText() and ST_GeomFromWKB()) did not check for trailing garbage bytes. They now reject trailing nonwhitespace characters and produce an error. (Bug #21198064) * The required version of the Boost library for server builds has been raised from 1.57.0 to 1.58.0. (Bug #20721087) * Geometry object constructor functions such as Point() and MultiPolygon() now are stricter about rejecting invalid arguments. (Bug #20712775) SQL Mode Notes * In MySQL 5.7.4, the ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE SQL modes were changed so that they did nothing when named explicitly. Instead, their effects were included in the effects of strict SQL mode (STRICT_ALL_TABLES or STRICT_TRANS_TABLES). The intent was to reduce the number of SQL modes with an effect dependent on strict mode and make them part of strict mode itself. However, the change to make strict mode more strict by including ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE caused some problems. For example, in MySQL 5.6 with strict mode but not NO_ZERO_DATE enabled, TIMESTAMP columns can be defined with DEFAULT '0000-00-00 00:00:00'. In MySQL 5.7.4 with the same mode settings, strict mode includes the effect of NO_ZERO_DATE and TIMESTAMP columns cannot be defined with DEFAULT '0000-00-00 00:00:00'. This causes replication of CREATE TABLE statements from 5.6 to 5.7.4 to fail if they contain such TIMESTAMP columns. The long term plan is still to have the three affected modes be included in strict SQL mode and to remove them as explicit modes in a future MySQL release. But to restore compatibility in MySQL 5.7 with MySQL 5.6 strict mode and to provide additional time for affected applications to be modified, the following changes have been made: + ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE again have an effect when named explicitly. This reverts a change made in MySQL 5.7.4. + ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE are no longer part of strict SQL mode. This reverts a change made in MySQL 5.7.4. + ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE are now included in the default sql_mode value, which as a result includes these modes: 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. With the preceding changes, stricter data checking is still enabled by default, but the individual modes can be disabled in environments where it is currently desirable or necessary to do so. Although ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and NO_ZERO_IN_DATE again can be used separately from strict mode, it is intended that they be used together. As a reminder, a warning now occurs if they are enabled without also enabling strict mode or vice versa. References: See also Bug #75439, Bug #20367829. Functionality Added or Changed * InnoDB: The adaptive hash index search system is now partitioned, with each index bound to a specific partition, and each partition protected by a separate latch. Partitioning is controlled by the innodb_adaptive_hash_index_parts configuration option. Prior to MySQL 5.7.8, the adaptive hash index search system was protected by a single latch (btr_search_latch) which could become a point of contention. To reduce contention, innodb_adaptive_hash_index_parts is set to 8 by default. The maximum setting is 512. (Bug #20985298) * InnoDB: The new innodb_log_checksum_algorithm option specifies how to generate and verify the checksum stored in redo log disk blocks. innodb_log_checksum_algorithm supports same algorithms as innodb_checksum_algorithm, which include innodb, crc32, none, and their associated strict forms. Previously, only the innodb algorithm was supported for redo log disk blocks. innodb_log_checksum_algorithm=innodb is the default setting. Thanks to Laurynas Biveinis for the patch. (Bug #20531208, Bug #75595) * InnoDB: InnoDB now supports page-level compression for file-per-table tablespaces. Page compression is enabled by specifying the COMPRESSION attribute when creating or altering a table. Supported compression algorithms include Zlib and LZ4. This feature, which is referred to as transparent page compression, relies on sparse file and hole punching support. It is supported on Windows with NTFS, and on the following subset of MySQL-supported Linux platforms where the kernel level provides hole punching support: + RHEL 7 and derived distributions that use kernel version 3.10.0-123 or higher + OEL 5.10 (UEK2) kernel version 2.6.39 or higher + OEL 6.5 (UEK3) kernel version 3.8.13 or higher + OEL 7.0 kernel version 3.8.13 or higher + SLE11 kernel version 3.0-x + SLE12 kernel version 3.12-x + OES11 kernel version 3.0-x + Ubuntu 14.0.4 LTS kernel version 3.13 or higher + Ubuntu 12.0.4 LTS kernel version 3.2 or higher + Debian 7 kernel version 3.2 or higher All of the available file systems for a given Linux distribution may not support hole punching. For more information about this feature, see InnoDB Page Compression (http://dev.mysql.com/doc/refman/5.7/en/innodb-page-compression.html). * InnoDB: The new innodb_flush_sync configuration option, which is enabled by default, causes the innodb_io_capacity setting to be ignored for bursts of I/O activity that occur at checkpoints. To adhere to the limit on InnoDB background I/O activity defined by the innodb_io_capacity setting, disable innodb_flush_sync. * InnoDB: The default value for innodb_purge_threads and innodb_page_cleaners was changed from 1 to 4. If the number of page cleaner threads exceeds the number of buffer pool instances, innodb_page_cleaners is automatically set to the same value as innodb_buffer_pool_instances. * InnoDB: Internal server-layer functions were added to allow InnoDB purge threads to construct and destroy thread handle objects, and to compute virtual generated column index values when a table object is not present. This enhancement was required to support secondary indexes on virtual generated columns. * InnoDB: InnoDB now supports secondary indexes on virtual generated columns. For more information, see CREATE TABLE and Generated Columns (http://dev.mysql.com/doc/refman/5.7/en/create-table.html#create-table-generated-columns). * InnoDB: Virtual generated column values no longer occupy space in database rows. With this change, a table rebuild is no longer required when adding or dropping virtual generated columns. Virtual generated columns are still represented in InnoDB metadata. The N_COLS field of INNODB_SYS_TABLES still counts virtual generated columns, and INNODB_SYS_COLUMNS still includes virtual generated column metadata. A new INFORMATION_SCHEMA table, INNODB_SYS_VIRTUAL, provides metadata about columns upon which virtual generated columns are based. * Replication: The behavior of SET GTID_PURGED has been changed so that it does not add any GTIDs to Previous_gtids_log_event and does not rotate the binary log. Instead the GTIDs are added to the mysql.gtid_executed table. This fix ensures that it is safe in all cases to use binlog_gtid_simple_recovery=1 for a server using MySQL 5.7.8 or later, where all binary logs were generated by servers using MySQL 5.7.8 or later. (Bug #75767, Bug #20470724) * Replication: When using a multi-threaded slave, each worker thread has its own queue of transactions to process. In previous MySQL versions, STOP SLAVE waited for all workers to process their entire queue. This logic has been changed so that STOP SLAVE first finds the newest transaction that was committed by any worker thread. Then, it waits for all workers to complete transactions older than that. Newer transactions are not processed. The new logic allows STOP SLAVE to complete faster in case some worker queues contain multiple transactions. (Bug #75525, Bug #20369401) * The patch number of the C client library is now increased for each patch version of the server. This number has the format major.minor.patch. (Bug #21341481) * The max_statement_time system variable was renamed to max_execution_time. The Max_statement_time_exceeded, Max_statement_time_set, and Max_statement_time_set_failed status variables were renamed to Max_execution_time_exceeded, Max_execution_time_set, and Max_execution_time_set_failed. The MAX_STATEMENT_TIME option for SELECT statements was removed because its functionality is now available using the more general optimizer hint syntax (see Optimizer Hints (http://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html)). Statements that begin like this: SELECT MAX_STATEMENT_TIME = N ... Should be rewritten to begin like this: SELECT /*+ MAX_EXECUTION_TIME(N) */ ... There are some minor implementation differences between the two. MAX_STATEMENT_TIME was not permitted in non-top-level SELECT statements such as subqueries, or in stored programs, and produced an error. MAX_EXECUTION_TIME() is permitted in those contexts, but is ignored. (Bug #21306646, Bug #21306392, Bug #21306319) * GeometryCollection() with no arguments is now permitted as a way to create an empty geometry. (Bug #21127270) * Solaris tarball and PKG distributions no longer have -gcc in the distribution file names. (Bug #21047137) * Previously, the max_digest_length system variable controlled the maximum digest length for all server functions that computed statement digests. However, whereas the Performance Schema may need to maintain many digest values, other server functions such as query rewrite plugins need only one digest per session. Increasing the max_digest_length value has little impact on total memory requirements for those functions, but can increase Performance Schema memory requirements significantly. To enable configuring digest length separately for the Performance Schema, its digest length is now controlled by the new performance_schema_max_digest_length system variable. (Bug #20963147) * Use of the optimizer cost model was extended to estimating index scan costs within test_if_cheaper_ordering() for the I/O cost of accessing table blocks. (Bug #20947871) * mysqldump no longer dumps the sys schema by default. It is still possible to dump it by naming it explicitly on the command line (for example, mysqldump --databases sys). (Bug #20902791) * For non-TCP/IP connections, these changes were made when --ssl was specified to force SSL to be used: + For named pipe and shared memory connections, attempts to use SSL now produce an error because these connections use non-network protocols. + For Unix socket file connections, SSL does not add any security. The connection is permitted, but the mysql client now produces a warning that SSL does not add anything for this connection protocol. (Bug #20785409, Bug #21025587) * The server now prints more descriptive diagnostic messages for bad values of secure_file_priv. (Bug #20771331) * The libmysqld embedded server took its default secure_file_priv value from the INSTALL_SECURE_FILE_PRIVDIR CMake option, but cannot share the same directory with a non-embedded server. The new INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR option enables a separate directory to be specified for libmysqld. The default value is NULL. (Bug #20770671) * mysql_ssl_rsa_setup now has a --uid=name option that enables specifying the owner for any files created by the program (if the program is executed as root). (Bug #20726413) * my_print_defaults now masks passwords. To display passwords in cleartext, use the new --show option. In addition, The output for client programs invoked with the --print-defaults option now masks passwords. (Bug #19953365, Bug #20903330) * For attempts to create a multiple-column SPATIAL index, the server previously returned an "Incorrect arguments to SPATIAL INDEX" error. Now it returns ER_TOO_MANY_KEY_PARTS ("Too many key parts specified; max 1 parts allowed"). (Bug #18320371) * For tables that contain object information, the Performance Schema now uses lowercase stored program names. (Bug #17818062) * To make the effect of password-change operations more clear, mysql_secure_installation now displays the user whose password is being changed. (Bug #17343687) * The shutdown timeout value in /etc/init.d/mysqld was too short for some environments. The value has been increased from 60 seconds to 600 seconds. (Bug #76900, Bug #20987568) * For MySQL install operations on OS X from DMG packages, if a a random root account password is generated, it now is displayed in a dialog box. (Bug #76792, Bug #20930305) * MySQL distributions now include an innodb_stress suite of test cases. Thanks to Mark Callaghan for the contribution. (Bug #76347, Bug #20717127) * The data type for generated columns now permits the COLLATE attribute. (Bug #76329, Bug #20709487) * Connections for the FEDERATED storage engine now set the program_name session connection attribute to federated to permit identification of the connection source. (Bug #68781, Bug #16555730) * Previously, changes to the validate_password plugin dictionary file (named by the validate_password_dictionary_file system variable) while the server was running required a restart for the server to recognize the changes. Now validate_password_dictionary_file can be set at runtime and assigning a value causes the named file to be read without a restart. In addition, two new status variables are available. validate_password_dictionary_file_last_parsed indicates when the dictionary file was last read, and validate_password_dictionary_file_words_count indicates how many words it contains. (Bug #66697, Bug #14588145) * The error produced for a COM_FIELD_LIST command with too much data was changed from ER_UNKNOWN_COM_ERROR to the more informative ER_MALFORMED_PACKET. (Bug #53699, Bug #11761229) * MySQL distributions no longer include the sql-bench directory. The INSTALL_SQLBENCHDIR CMake option has also been removed. References: See also Bug #21303289. * The so-called "fast mutex" code has been removed from the server sources. It provides no measurable benefit, complicates the code, and is problematic for certain architectures such as POWER8. The (undocumented) WITH_FAST_MUTEXES CMake option has also been removed. References: See also Bug #37703, Bug #11748914, Bug #72806, Bug #18871517, Bug #72807, Bug #18871138, Bug #72805, Bug #18870931. * Work was done to clean up the source code base, including: Removal of unneeded CMake checks; removing unused macros from source files; reorganizing header files to reduce the number of dependencies and make them more modular, removal of function declarations without definitions. * The read_only system variable enables the server to be put into read-only mode, in which the server permits client updates only from users who have the SUPER privilege. A new super_read_only system variable, if enabled, prohibits client updates even from users who have SUPER. "Super" read-only mode can be useful for operations such as preparing a server for a move or upgrade because it prevents all client users from modifying data, even administrators. * mysqld_safe no longer uses the data directory as a possible location for setting MYSQL_HOME. (This has been deprecated since MySQL 5.0.) * A new system variable, disabled_storage_engines, enables administrators to designate storage engines that cannot be used to create new tables or tablespaces. By default, this variable is empty (no engines disabled), but it can be set to a comma-separated list of one or more engines. Any engine named in the value cannot be used to create tables or tablespaces with CREATE TABLE or CREATE TABLESPACE, and cannot be used with ALTER TABLE ... ENGINE or ALTER TABLESPACE ... ENGINE to change the storage engine of existing tables or tablespaces. Attempts to do so result in an ER_DISABLED_STORAGE_ENGINE error. disabled_storage_engines does not restrict other DDL statements for existing tables, such as CREATE INDEX, TRUNCATE TABLE, ANALYZE TABLE, DROP TABLE, or DROP TABLESPACE. This permits a smooth transition so that existing tables or tablespaces that use a disabled engine can be migrated to a permitted engine by means such as ALTER TABLE ... ENGINE permitted_engine. * The default value of the table_open_cache_instances system variable has been increased from 1 to 16. Bugs Fixed * Incompatible Change: Internal storage format for VIRTUAL generated columns was modified. For MyISAM tables with such columns, this is an incompatible change; for upgrades, use ALTER TABLE to drop the columns before the upgrade and add them again after the upgrade. (Bug #21237637) * Incompatible Change: The mysql_parser plugin service interface defined in the service_parser.h header file was incorrect for the case that the MYSQL_DYNAMIC_PLUGIN macro was defined. The test for this symbol used the wrong name, so the interface did not enable the proper code. The test has been corrected, and some adjustments made to the API for function pointer members within the mysql_parser_service_st structure: + Some function pointer names began with mysql_parser_, others with mysql_. For consistency, function pointer member names that began with mysql_parser_ were changed to begin with mysql_. + The missing mysql_get_statement_digest function pointer member was added. These modifications change the service API. Any plugin to be used with this version of MySQL that relies on the service must be recompiled. (Bug #20856729) * InnoDB; Partitioning: In certain rare cases the optimizer pruned all partitions for an InnoDB table but failed to remove the table from consideration as a source for obtaining matches, instead calling for the table to be initialized and prepared for fetching records. This occurred when the active index was not set during initialization. To fix this problem, we now set the active index ID during initialization even if there are no partitions to select from. This behavior also matches the way the same case is already handled in MySQL 5.6. (Bug #21211524) * InnoDB; Partitioning: Sorted index reads on partitioned InnoDB tables added rows to the prefetch cache, which could cause rows from the wrong partition since the prefetch cache does not support partitioned tables. Now the the prefetch cache is disabled in such cases. (Bug #20584754)ここに掲載しているのは修正点の一部となります。 詳しくは以下のリンクをご参照ください。 http://lists.mysql.com/announce/1015 http://lists.mysql.com/announce/1014 http://lists.mysql.com/announce/1013