MySQL (32-bit) 歷史版本列表
MySQL 專為企業組織提供關鍵業務數據庫應用程序而設計。它為企業開發人員,數據庫管理員和 ISV 提供了一系列新的企業功能,以提高開發,部署和管理工業強度應用程序的效率.如果您需要 MySQL 數據庫的 GUI,可以下載 - NAVICAT(MySQL GUI)。它支持將 MySQL,MS SQL,MS Access,Excel,CSV,XML 或其他格式導入到 MySQL.MySQL 數據庫... MySQL (32-bit) 軟體介紹更新時間:2017-07-18
更新細節:
What's new in this version:
Functionality Added or Changed:
- Replication: View change events from a Group Replication group can now be replicated to an external multithreaded slave (MTS) of type DATABASE
- Replication: When a negative or fractional timeout parameter was supplied to WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), the server behaved in unexpected ways
- If MySQL was configured to build with the -Wno-error option, mysql_config produced incorrect output for its --cflags option. The set of compiler options that mysql_config and pkg-config produce now is determined by whitelisting rather than
- The performance of UTF-8 binary collations was improved
- Consistency and maintainability of Debian/Ubuntu packaging maintainer scripts was improved
- mysql_secure_installation is more strict about what it considers valid yes and no responses
- The replace utility is deprecated and will be removed in MySQL 8.0. If you wish to continue using this utility, be sure to retain a copy from an installed version of MySQL
Bugs Fixed:
- InnoDB: The restriction that required the first undo tablespace to use space ID 1 was removed. The first undo tablespace may now be assigned a space ID other than 1. Space ID values for undo tablespaces are still assigned in a consecutive sequence
- InnoDB: A DROP TABLE operation raised an assertion on a server with an innodb_force_recovery setting of 5 or 6. DROP TABLE is no longer permitted with these innodb_force_recovery settings
- InnoDB: Compiling the server without the Performance Schema caused a build failure
- InnoDB: During read-ahead, the wrong page size was used to calculate the tablespace size
- InnoDB: Compiling on Fedora 25 using DWITH_LZ4=system resulted in a build failure due to a deprecated LZ4_COMPRESS_LIMITEDOUTPUT function
- InnoDB: Disabling macros such as UNIV_PFS_MUTEX, UNIV_PFS_RWLOCK, and UNIV_PFS_THREAD caused compilation errors
- InnoDB: A NULL virtual column field name in a virtual index caused a server exit during a field name comparison that occurs while populating virtual columns affected by a foreign key constraint
- InnoDB: The file handle type name for InnoDB file I/O Performance Schema instrumentation was changed from os_pfs_file_t to pfs_os_file_t
- InnoDB: During a range comparison, a secondary index field number was passed instead of clustered index field number, eventually causing the retrieval of an incorrect field
- 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
- InnoDB: A memcached read operation with a non-default read batch size configuration resulted in a server exit
- InnoDB: A gap lock was taken unnecessarily during foreign key validation while using the READ COMMITTED isolation level
- InnoDB: After a TRUNCATE TABLE operation on a table with a FULLTEXT index, space size was incorrectly calculated resulting in an invalid read
- InnoDB: During a checkpoint, all MLOG_FILE_NAME redo log records were written in a single mini-transaction (mtr), causing a log parsing buffer overflow
- InnoDB: A mechanism was added to debug builds to ensure that keys for InnoDB Performance Schema instrumentation are registered with Performance Schema. The mechanism causes startup to fail on debug builds if the number of Performance Schema keys does not match the number of registered Performance Schema keys
- InnoDB: A race condition while updating table statistics could result in an estimated row count of 1 and an incorrect query execution plan
- InnoDB: An error in code related to table statistics raised an assertion in the dict0stats.cc source file
- InnoDB: A concurrent DML operation during an in in-place ALTER TABLE operation that rebuilt the table did not update a virtual index, resulting in a mismatch between the virtual index and clustered index
- InnoDB: A TRUNCATE TABLE operation held the dict_sys mutex while scanning for and removing pages from the buffer pool, causing concurrent DDL operations to stall. The mutex is now released during the scan and acquired again when the scan is completed
- InnoDB: SELECT COUNT(*) performance regressed in some cases due to a modification introduced in MySQL 5.7.2 that caused InnoDB to count rows by traversing the clustered index instead of a smaller secondary index. The modification was reverted
- InnoDB: Inserting GIS data into an r-tree raised an assertion due to a missing page number field that was encountered when storing the b-tree cursor
- InnoDB: Performance Schema instrumentation for InnoDB file I/O was disabled on Windows
- InnoDB: The row_search_mvcc() function unnecessarily traversed the entire table for a range query, which occurred when the record was not in the transaction read view
- Partitioning: Updating a row of a table that had partitioning on a generated column could raise an assertion failure for debug builds, and return incorrect results in nondebug builds
- Replication: MEMBER_STATE of a group replication member did not go from ERROR to OFFLINE when the STOP GROUP_REPLICATION command was executed if the error state was due to ER3092
- Replication: With flow control enabled, reaching a minimum flow control quota of 1 will made Group Replication not stop throttling when the cause of throttling was no longer in effect
- Replication: Using an unresolvable host name in group_replication_group_seeds caused START GROUP_REPLICATION to fail. The fix ensures that host names in group_replication_group_seeds are validated when starting Group Replication and the list must contain at least one valid address. Invalid addresses are ignored
- Replication: The _gr_user account created by Group Replication plugin installation was not reliably removed when the plugin was uninstalled
- Replication: When starting Group Replication on an offline node, the node could be configured for replication, but fail for recovery
- Replication: When using a multi-threaded slave, applier errors displayed worker ID data that was inconsistent with data externalized in Performance Schema replication tables
- Replication: Not all Group Replication GCS debug and trace messages were enabled in debug mode
- Replication: Compiling MySQL 5.7.17 failed with a variable length array error
- Replication: In row-based replication, a message that incorrectly displayed field lengths was returned when replicating from a table with a utf8mb3 column to a table of the same definition where the column was defined with a utf8mb4 character set
- Replication: Group Replication GCS was not discarding messages when a member within the group was inactive
- Replication: Some unnecessary warnings were given when the Group Replication plugin was compiled on Windows platforms
- Replication: As assertion could be raised if the Group Replication plugin attempted to contact the server when that was no longer possible
- Replication: The GTID transaction skipping mechanism that silently skips a GTID transaction that was previously executed did not work properly for XA transactions
- Replication: After executing restarts on the group replication applier SQL thread, the plugin could no longer detect failure of the thread
- Replication: When the MTS slave applier stopped because of an (injected) error, it reported no useful information for troubleshooting
- Replication: FLUSH BINARY LOG could become slow with data replicated from many servers
- Replication: A partially failed CREATE USER, RENAME USER, or ALTER USER statement was not correctly consuming an auto-generated or specified GTID when binary logging was disabled
- Replication: Binlog_sender, which writes events from the binary log to a packet buffer and then sends the packet to the slave, did not reduce the size of the send buffer as expected
- Replication: When using a multi-threaded slave (slave_parallel_workers greater than 0) the value of Seconds_Behind_Master was incorrect when rotating a relay log
- Replication: The server prevented several replication-related administrative statements from working if the read_only system variable was enabled
- Replication: CHANGE MASTER TO for a channel that did not exist could raise an assertion
- Replication: The delay specified by the binlog_group_commit_sync_delay system variable was applied to too many binary log commit groups
- JSON: MySQL JSON source code built using with clang 3.9 raised undesired warnings
- mysqldump failed to properly quote certain identifiers in SQL statements written to the dump output
- Client preauthorization by the server was missing a length check for a length-encoded string
- The (undocumented) WINDOWS_RUNTIME_MD CMake option has been removed
- mysqld_safe failed to restart the server if a PID_FILE.shutdown file was present
- For Debian/Ubuntu packages, user-defined collation files could be overwritten during MySQL upgrades. Charset files are now marked as conffiles so that user customizations generate a prompt during upgrades whether to overwrite them
- 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
- Starting the server with performance_schema_digests_size=1 caused an abnormal exit
- MySQL failed to compile on some platforms with -DWITH_LIBWRAP=ON. CMake support now checks whether tcpd.h has proper function prototypes
- mysqld_safe did not check whether the directory named by the --basedir option existed
- Configuring CMake with -G ninja resulted in build output that was inappropriate for build platforms other than Xcode or Visual Studio
- mysqld_safe failed if the error log file named by the --log-error option was a FIFO
- For prepared statements, an alias within a subquery or derived table might cause incorrect behavior during statement execution if another alias depended on it
- mysqld_safe could fail if the --datadir option value ended with a / character
- 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
- The connection_control plugin failed to compile if the Performance Schema was disabled
- Passwords did not expire correctly for accounts created using MySQL Workbench
- For System V init scripts for RPMs, the [mysqld] option-file section was being ignored for some options, such as pid-file
- Init scripts failed to launch mysqld_safe if a non-default base directory was used
- CMake now detects whether a GCC 5.3.0 loop optimization bug occurs and attempts a workaround if so
- mysqld_safe --no-defaults did not work (inadvertent consequence of an earlier bug fix)
- Semicolon (;) characters within or between statements could cause distinct digests to be generated from identical statements
- For a client linked against libmysqlclient, invalid memory access could occur during use of prepared statements
- The fix for Bug #25088048 caused the command used by mysqld_safe to start the MySQL server to no longer include the mysqld path
- Executing a stored procedure containing a query that accessed a view could allocate memory that was not freed until the session ended
- Compilation on FreeBSD 11 failed attempting to check MAP_NORESERVE, which is no longer defined
- CMake support was added for compiling using the -std=c++03 option under Developer Studio 12.5. This is now used rather than stlport by default
- Privilege checking could be incorrect for a derived table used within a multiple-table UPDATE invoked within a stored procedure or view object, for the second or subsequent execution of the object, if the derived table was merged into the outer query
- Connections from a client to a server with SSL enabled succeeded even if --ssl-mode had a value of VERIFY_CA or VERIFY_IDENTITY and the client did not provide a CA certificate
- If InnoDB statistics were incorrect, FOUND_ROWS() could return 1 even when the previous SELECT returned no rows
- CMake now sets -DWITH_NUMA=ON for Debian platforms where possible
- A query could produce incorrect results if the WHERE clause contained a dependent subquery, the table had a secondary index on the columns in the select list followed by the columns in the subquery, and GROUP BY or DISTINCT permitted the query to use a Loose Index Scan
- The DebugPrintTest and DebugPrintDeathTest unit tests did not handle divide-by-zero testing properly on the Aarch64 platform. Thanks to Alexey Kopytov for the patch
- Some account-management statements could incorrectly set the account password_lifetime value to NULL
- 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 /etc/sysconfig/mysqld, the MYSQLD_OPTS value can be set in that file 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
- For LOAD DATA used to insert data into an updateable view, the check to verify whether a column is actually updatable was missing
- Queries of the form SELECT NULL IN (subquery) could raise an assertion due to a missing null-pointer check
- When populating the variables_by_thread table, the Performance Schema could attempt to access session variables of other threads that were being deinitialized
- On Debian/Ubuntu platforms, the systemd startup script for MySQL ignored datadir settings in /etc/mysql/my.cnf
- For the null_audit plugin, setting the null_audit_event_record system variable improperly could cause a server exit. This variable should be set only from within the null_audit plugin, so it is now read only
- A regular expression pattern match into a large string could result in a server exit due to memory allocation failure or integer overflow
- 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
- For debug builds, if the binary log was enabled, executing the audit_log plugin audit_log_filter_set_filter function could cause a server exit
- MySQL Enterprise Firewall did not record events if the audit_log plugin was installed
- EXPLAIN SELECT COUNT(*) FROM tbl_name could incorrectly report an Extra value of Select tables optimized away due to a modification introduced in MySQL 5.7.2 that caused InnoDB to count rows by traversing the clustered index instead of a smaller secondary index. The Extra value now displays Count Rows
- mysqldumpslow failed to parse timestamps in the slow query log; it had not been updated to track a change in log timestamp format
- Complete logical backups made with mysqlpump could not be restored if GTIDs were enabled
- Messages written by the audit_log plugin to the error log regarding MYSQL_AUDIT_CONNECT event failures now print the underlying error cause as well to aid debugging
- FORCE INDEX was ineffective for SELECT COUNT(*) queries
- The audit_log plugin audit_log_filter_remove_filter() function caused a server exit if given a NULL argument
- 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
- Improper handling of a lock used by the version_tokens plugin and user-defined functions could result in a server exit if a UDF was called while version_tokens was being uninstalled
- 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
- When attempting to locate the data directory, mysqld_safe incorrectly considered $MY_BASEDIR_VERSION/var as one of the possible locations
- The main.log_tables-big test case could be unstable on highly loaded hosts. Thanks to Laurynas Biveinis for the patch
- The rpl.rpl_key_rotation test case did not synchronize properly with the master server. Thanks to Laurynas Biveinis for the patch
- Queries that used an aggregate function with DISTINCT could produce incorrect results
- For RPM packages, the default error-log location in the deployed /etc/my.cnf file differed from the location in the installed logrotate script, causing logrotate to fail
- After performing inserts in a table containing an AUTO_INCREMENT column and then performing a SELECT operation, the LAST_INSERT_ID() returns the correct value, but the value of the mysql_insert_id() C API function was being reset to 0
- With the use_index_extensions flag of the optimizer_switch system variable disabled, some SELECT DISTINCT queries could return incorrect results
- Debian packages were missing an AppArmor-related include file and incorrectly were marked dependent on AppArmor (making it impossible to disable AppArmor by uninstalling it)
- In a replication environment, SET PASSWORD or ALTER USER could fail to execute on the slave due to failure to parse the hash string correctly
- On non-Linux Unix systems, the mysql.server startup script used the Linux command pidof rather than pgrep
- 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 mysqld_safe.pid file is no longer used
- 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
- 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. Timestamps for server-side prepared statements could be written to the binary log up to a second behind timestamps for the corresponding nonprepared statements, leading to time value differences between master and slave servers
更新時間:2017-04-11
更新細節:
What's new in this version:
Compilation Notes:
- Windows builds now use the default runtime libraries (builds use the /MD flag). (Bug #25611609)
- CMake support was added for compiling with Developer Studio 12.6. (Bug #25384295)
Configuration Notes:
- MySQL failed to compile if -DENABLE_DEBUG_SYNC=OFF AND -DWITH_DEBUG=ON were both given. The ENABLE_DEBUG_SYNC option has been removed and enabling WITH_DEBUG enables Debug Sync. (Bug #18374703)
- The --temp-pool server option is deprecated and will be removed in MySQL 8.0.
DTrace Support:
- Support for DTrace is deprecated and is removed in MySQL 8.0.
Packaging Notes:
- Changes in RPM package structure require a larger set of packages to be removed to install MySQL Server cleanly. (Bug #25603087)
- To avoid potential race conditions, Debian packages now use the GNU install utility rather than a combination of mkdir, touch, and chown. (Bug #25258829)
- The my-default.cnf.sh file (used to produce a default my-default.cnf or my-default.ini file) is no longer included in source distributions and my-default.cnf and my-default.ini are no longer included in or installed by distribution packages. (Bug #22525354)
- Reminder: MySQL 5.7 requires the Microsoft Visual C++ 2013 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.
Parser Notes:
- PROCEDURE ANALYSE() syntax is now deprecated and is removed in MySQL 8.0.
- The use of N as a synonym for NULL in SQL statements is deprecated and is removed in MySQL 8.0. Use NULL instead.
- This change does not affect text file import or export operations performed with LOAD DATA INFILE or SELECT ... INTO OUTFILE, for which NULL continues to be represented by N. See LOAD DATA INFILE Syntax.
Security Notes:
- The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2k.
- This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead. (Bug #25768671)
- The keyring_okv plugin no longer supports RSA or DSA key types. (Bug #25540639)
- The keyring_okv keyring plugin now can use the SafeNet KeySecure Appliance as the KMIP back end for keyring storage. For instructions, see Using the keyring_okv Oracle Key Vault Plugin.
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)
X Plugin Notes:
- The MYSQLX_TCP_PORT CMake option was ignored. (Bug #25493867, Bug #84804)
- The protobuf compiler emitted “unused import” warnings for mysqlx.proto. (Bug #25444009, Bug #84641)
- Connections were released which were not initialized when validation occurred. (Bug #25392280)
- The Mysqlx_notice_warning_sent and Mysqlx_notice_other_sent status variable values did not increment as expected. (Bug #25289949, Bug #84258, Bug #25290001, Bug #84260)
- The manual definition of the MYSQL_DYNAMIC_PLUGIN macro was redundant. (Bug #25162590, Bug #83988)
- IPv6 connectivity support defined a new system variable Mysqlx-bind-address with the default value of '0.0.0.0', but the default value should have been '*' so that connections to X Plugin may be made using an IPv6 address, an IPv4 address, or a hostname. (Bug #25047909, Bug #83688)
- Sending Expect.Open to a connected socket before authentication led to the following error messages:
- ... Plugin mysqlx reported: '10: Invalid message 24 received during client initialization'
- ... Plugin mysqlx reported: '10: ERROR reading from socket Bad file descriptor (9) 2'
- If multiple user accounts exist that match the authenticating user, the X Plugin would attempt to authenticate all matching accounts instead of the best matching account. (Bug #24847537)
Functionality Added or Changed:
- Replication: View change events from a Group Replication group can now be replicated to an external multithreaded slave (MTS) of type DATABASE. (Bug #25170698)
- Replication: When a negative or fractional timeout parameter was supplied to WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), the server behaved in unexpected ways. With this fix
- A fractional timeout value is read as-is, with no round-off
- A negative timeout value is rejected with an error if the server is on a strict SQL mode; if the server is not on a strict SQL mode, the value makes the function return NULL immediately without any waiting and then issue a warning
- Bug #24976304, Bug #83537)
- If MySQL was configured to build with the -Wno-error option, mysql_config produced incorrect output for its --cflags option
- The set of compiler options that mysql_config and pkg-config produce now is determined by whitelisting rather than blacklisting. (Bug #25040566, Bug #22898475, Bug #80662)
- The performance of UTF-8 binary collations was improved. (Bug #24788778, Bug #83247, Bug #25076862)
- Consistency and maintainability of Debian/Ubuntu packaging maintainer scripts was improved. (Bug #23588977)
- mysql_secure_installation is more strict about what it considers valid yes and no responses. (Bug #13344753, Bug #62925)
- The replace utility is deprecated and will be removed in MySQL 8.0. If you wish to continue using this utility, be sure to retain a copy from an installed version of MySQL
Bugs Fixed:
- InnoDB: The restriction that required the first undo tablespace to use space ID 1 was removed. The first undo tablespace may now be assigned a space ID other than 1. Space ID values for undo tablespaces are still assigned in a consecutive sequence. (Bug #25551311)
- InnoDB: A DROP TABLE operation raised an assertion on a server with an innodb_force_recovery setting of 5 or 6. DROP TABLE is no longer permitted with these innodb_force_recovery settings. (Bug #25385590)
- References: This issue is a regression of: Bug #19779113.
- InnoDB: Compiling the server without the Performance Schema caused a build failure. (Bug #25348787)
- InnoDB: During read-ahead, the wrong page size was used to calculate the tablespace size. (Bug #25330449)
- InnoDB: Compiling on Fedora 25 using DWITH_LZ4=system resulted in a build failure due to a deprecated LZ4_COMPRESS_LIMITEDOUTPUT function. (Bug #25297593)
- InnoDB: Disabling macros such as UNIV_PFS_MUTEX, UNIV_PFS_RWLOCK, and UNIV_PFS_THREAD caused compilation errors. (Bug #25251082)
- InnoDB: A NULL virtual column field name in a virtual index caused a server exit during a field name comparison that occurs while populating virtual columns affected by a foreign key constraint. (Bug #25222337)
- InnoDB: The file handle type name for InnoDB file I/O Performance Schema instrumentation was changed from os_pfs_file_t to pfs_os_file_t. (Bug #25220118)
- InnoDB: During a range comparison, a secondary index field number was passed instead of clustered index field number, eventually causing the retrieval of an incorrect field. (Bug #25175249)
- 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)
- InnoDB: A memcached read operation with a non-default read batch size configuration resulted in a server exit. (Bug #25147515)
- InnoDB: A gap lock was taken unnecessarily during foreign key validation while using the READ COMMITTED isolation level. (Bug #25082593)
- InnoDB: After a TRUNCATE TABLE operation on a table with a FULLTEXT index, space size was incorrectly calculated resulting in an invalid read. (Bug #25053705)
- InnoDB: During a checkpoint, all MLOG_FILE_NAME redo log records were written in a single mini-transaction (mtr), causing a log parsing buffer overflow. (Bug #24793413, Bug #83245)
- InnoDB: A mechanism was added to debug builds to ensure that keys for InnoDB Performance Schema instrumentation are registered with Performance Schema. The mechanism causes startup to fail on debug builds if the number of Performance Schema keys does not match the number of registered Performance Schema keys. (Bug #24686908)
- InnoDB: A race condition while updating table statistics could result in an estimated row count of 1 and an incorrect query execution plan. (Bug #24666839, Bug #82968)
- InnoDB: An error in code related to table statistics raised an assertion in the dict0stats.cc source file. (Bug #24585978)
- InnoDB: A concurrent DML operation during an in in-place ALTER TABLE operation that rebuilt the table did not update a virtual index, resulting in a mismatch between the virtual index and clustered index. (Bug #23219499)
- InnoDB: A TRUNCATE TABLE operation held the dict_sys mutex while scanning for and removing pages from the buffer pool, causing concurrent DDL operations to stall. The mutex is now released during the scan and acquired again when the scan is completed. (Bug #23070734, Bug #80060)
- InnoDB: SELECT COUNT(*) performance regressed in some cases due to a modification introduced in MySQL 5.7.2 that caused InnoDB to count rows by traversing the clustered index instead of a smaller secondary index. The modification was reverted. (Bug #23046302, Bug #80580)
- InnoDB: Inserting GIS data into an r-tree raised an assertion due to a missing page number field that was encountered when storing the b-tree cursor. (Bug #23044098)
- InnoDB: Performance Schema instrumentation for InnoDB file I/O was disabled on Windows. (Bug #14025581)
- InnoDB: The row_search_mvcc() function unnecessarily traversed the entire table for a range query, which occurred when the record was not in the transaction read view. (Bug #84202, Bug #23481444, Bug #25251375)
- Partitioning: Updating a row of a table that had partitioning on a generated column could raise an assertion failure for debug builds, and return incorrect results in nondebug builds. (Bug #22574695, Bug #80080)
- Replication: MEMBER_STATE of a group replication member did not go from ERROR to OFFLINE when the STOP GROUP_REPLICATION command was executed if the error state was due to ER3092. (Bug #25674926)
- Replication: With flow control enabled, reaching a minimum flow control quota of 1 will made Group Replication not stop throttling when the cause of throttling was no longer in effect. (Bug #25461354)
- Replication: Using an unresolvable host name in group_replication_group_seeds caused START GROUP_REPLICATION to fail. The fix ensures that host names in group_replication_group_seeds are validated when starting Group Replication and the list must contain at least one valid address. Invalid addresses are ignored. (Bug #25460324, Bug #84674)
- Replication: The _gr_user account created by Group Replication plugin installation was not reliably removed when the plugin was uninstalled. (Bug #25298987)
- Replication: When starting Group Replication on an offline node, the node could be configured for replication, but fail for recovery. (Bug #25256910)
- Replication: When using a multi-threaded slave, applier errors displayed worker ID data that was inconsistent with data externalized in Performance Schema replication tables. (Bug #25231367)
- Replication: Not all Group Replication GCS debug and trace messages were enabled in debug mode. (Bug #25209109)
- Replication: Compiling MySQL 5.7.17 failed with a variable length array error. (Bug #25163241)
- Replication: In row-based replication, a message that incorrectly displayed field lengths was returned when replicating from a table with a utf8mb3 column to a table of the same definition where the column was defined with a utf8mb4 character set. (Bug #25135304, Bug #83918)
- Replication: Group Replication GCS was not discarding messages when a member within the group was inactive. (Bug #25134074)
- Replication: Some unnecessary warnings were given when the Group Replication plugin was compiled on Windows platforms. (Bug #25119288)
- Replication: As assertion could be raised if the Group Replication plugin attempted to contact the server when that was no longer possible. (Bug #25071492)
- Replication: The GTID transaction skipping mechanism that silently skips a GTID transaction that was previously executed did not work properly for XA transactions. (Bug #25041920)
- Replication: After executing restarts on the group replication applier SQL thread, the plugin could no longer detect failure of the thread. (Bug #24969065)
- Replication: When the MTS slave applier stopped because of an (injected) error, it reported no useful information for troubleshooting. (Bug #24822686)
- Replication: FLUSH BINARY LOG could become slow with data replicated from many servers. (Bug #24806259, Bug #83270)
- Replication: A partially failed CREATE USER, RENAME USER, or ALTER USER statement was not correctly consuming an auto-generated or specified GTID when binary logging was disabled. (Bug #24693798)
- Replication: Binlog_sender, which writes events from the binary log to a packet buffer and then sends the packet to the slave, did not reduce the size of the send buffer as expected. (Bug #24643036)
- Replication: When using a multi-threaded slave (slave_parallel_workers greater than 0) the value of Seconds_Behind_Master was incorrect when rotating a relay log. (Bug #23532304)
- Replication: The server prevented several replication-related administrative statements from working if the read_only system variable was enabled. (Bug #22857926)
- Replication: CHANGE MASTER TO for a channel that did not exist could raise an assertion. (Bug #22255698)
- Replication: The delay specified by the binlog_group_commit_sync_delay system variable was applied to too many binary log commit groups. (Bug #21420180)
- JSON: MySQL JSON source code built using with clang 3.9 raised undesired warnings. (Bug #25039600)
- mysqldump failed to properly quote certain identifiers in SQL statements written to the dump output. (Bug #25717383)
- Client preauthorization by the server was missing a length check for a length-encoded string. (Bug #25714674)
- The (undocumented) WINDOWS_RUNTIME_MD CMake option has been removed. (Bug #25611359)
- mysqld_safe failed to restart the server if a PID_FILE.shutdown file was present. (Bug #25572504)
- For Debian/Ubuntu packages, user-defined collation files could be overwritten during MySQL upgrades. Charset files are now marked as conffiles so that user customizations generate a prompt during upgrades whether to overwrite them. (Bug #25525628, Bug #84761)
- 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)
- Starting the server with performance_schema_digests_size=1 caused an abnormal exit. (Bug #25492129, Bug #84786)
- MySQL failed to compile on some platforms with -DWITH_LIBWRAP=ON. CMake support now checks whether tcpd.h has proper function prototypes. (Bug #25395543, Bug #84495)
- mysqld_safe did not check whether the directory named by the --basedir option existed. (Bug #25365194)
- Configuring CMake with -G ninja resulted in build output that was inappropriate for build platforms other than Xcode or Visual Studio. (Bug #25358460)
- mysqld_safe failed if the error log file named by the --log-error option was a FIFO. (Bug #25356221, Bug #84427)
- For prepared statements, an alias within a subquery or derived table might cause incorrect behavior during statement execution if another alias depended on it. (Bug #25343335, Bug #84398, Bug #25171608)
- 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)
- The connection_control plugin failed to compile if the Performance Schema was disabled. (Bug #25308357, Bug #84304)
- Passwords did not expire correctly for accounts created using MySQL Workbench. (Bug #25299309)
- 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)
- CMake now detects whether a GCC 5.3.0 loop optimization bug occurs and attempts a workaround if so. (Bug #25253540)
- mysqld_safe --no-defaults did not work (inadvertent consequence of an earlier bug fix). (Bug #25244898, Bug #84173)
- Semicolon (;) characters within or between statements could cause distinct digests to be generated from identical statements. (Bug #25244533, Bug #83253)
- 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)
- Executing a stored procedure containing a query that accessed a view could allocate memory that was not freed until the session ended. (Bug #25053286)
- Compilation on FreeBSD 11 failed attempting to check MAP_NORESERVE, which is no longer defined. (Bug #25048128, Bug #83689)
- CMake support was added for compiling using the -std=c++03 option under Developer Studio 12.5. This is now used rather than stlport by default. (Bug #24947136, Bug #83512, Bug #25229424)
- Privilege checking could be incorrect for a derived table used within a multiple-table UPDATE invoked within a stored procedure or view object, for the second or subsequent execution of the object, if the derived table was merged into the outer query. (Bug #24810564)
- Connections from a client to a server with SSL enabled succeeded even if --ssl-mode had a value of VERIFY_CA or VERIFY_IDENTITY and the client did not provide a CA certificate. (Bug #24732452, Bug #23189252)
- If InnoDB statistics were incorrect, FOUND_ROWS() could return 1 even when the previous SELECT returned no rows. (Bug #24714857, Bug #83110)
- CMake now sets -DWITH_NUMA=ON for Debian platforms where possible. (Bug #24689101)
- A query could produce incorrect results if the WHERE clause contained a dependent subquery, the table had a secondary index on the columns in the select list followed by the columns in the subquery, and GROUP BY or DISTINCT permitted the query to use a Loose Index Scan. (Bug #24671968, Bug #83005)
- The DebugPrintTest and DebugPrintDeathTest unit tests did not handle divide-by-zero testing properly on the Aarch64 platform.
- Some account-management statements could incorrectly set the account password_lifetime value to NULL. (Bug #24619222)
- 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 /etc/sysconfig/mysqld, the MYSQLD_OPTS value can be set in that file 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)
- Queries of the form SELECT NULL IN (subquery) could raise an assertion due to a missing null-pointer check. (Bug #24595612)
- When populating the variables_by_thread table, the Performance Schema could attempt to access session variables of other threads that were being deinitialized. (Bug #24555658)
- For the null_audit plugin, setting the null_audit_event_record system variable improperly could cause a server exit. This variable should be set only from within the null_audit plugin, so it is now read only. (Bug #24493829, Bug #82670)
- 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)
- For debug builds, if the binary log was enabled, executing the audit_log plugin audit_log_filter_set_filter function could cause a server exit. (Bug #24437009)
- MySQL Enterprise Firewall did not record events if the audit_log plugin was installed. (Bug #24413450, Bug #82473)
- EXPLAIN SELECT COUNT(*) FROM tbl_name could incorrectly report an Extra value of Select tables optimized away due to a modification introduced in MySQL 5.7.2 that caused InnoDB to count rows by traversing the clustered index instead of a smaller secondary index. The Extra value now displays Count Rows. (Bug #24337385, Bug #82313)
- mysqldumpslow failed to parse timestamps in the slow query log; it had not been updated to track a change in log timestamp format. (Bug #24007040)
- Complete logical backups made with mysqlpump could not be restored if GTIDs were enabled. (Bug #23748432)
- Messages written by the audit_log plugin to the error log regarding MYSQL_AUDIT_CONNECT event failures now print the underlying error cause as well to aid debugging. (Bug #23710632)
- FORCE INDEX was ineffective for SELECT COUNT(*) queries. (Bug #23596760, Bug #81854)
- The audit_log plugin audit_log_filter_remove_filter() function caused a server exit if given a NULL argument. (Bug #23522793)
- 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)
- Improper handling of a lock used by the version_tokens plugin and user-defined functions could result in a server exit if a UDF was called while version_tokens was being uninstalled. (Bug #23210850)
- 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.
- The rpl.rpl_key_rotation test case did not synchronize properly with the master server. Thanks to Laurynas Biveinis for the patch. (Bug #22838596, Bug #80531)
- Queries that used an aggregate function with DISTINCT could produce incorrect results. (Bug #22686994, Bug #80310)
- For RPM packages, the default error-log location in the deployed /etc/my.cnf file differed from the location in the installed logrotate script, causing logrotate to fail. (Bug #22322685)
- After performing inserts in a table containing an AUTO_INCREMENT column and then performing a SELECT operation, the LAST_INSERT_ID() returns the correct value, but the value of the mysql_insert_id() C API function was being reset to 0. (Bug #22028117, Bug #78778)
- With the use_index_extensions flag of the optimizer_switch system variable disabled, some SELECT DISTINCT queries could return incorrect results. (Bug #21749123, Bug #78244)
- Debian packages were missing an AppArmor-related include file and incorrectly were marked dependent on AppArmor (making it impossible to disable AppArmor by uninstalling it). (Bug #20768958)
- In a replication environment, SET PASSWORD or ALTER USER could fail to execute on the slave due to failure to parse the hash string correctly. (Bug #20228478)
- 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 mysqld_safe.pid 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)
- Timestamps for server-side prepared statements could be written to the binary log up to a second behind timestamps for the corresponding nonprepared statements, leading to time value differences between master and slave servers. (Bug #74550, Bug #19894382, Bug #25187670)
更新時間:2017-04-11
更新細節:
What's new in this version:
Compilation Notes:
- Windows builds now use the default runtime libraries (builds use the /MD flag)
- CMake support was added for compiling with Developer Studio 12.6
Configuration Notes:
- MySQL failed to compile if -DENABLE_DEBUG_SYNC=OFF AND -DWITH_DEBUG=ON were both given. The ENABLE_DEBUG_SYNC option has been removed and enabling WITH_DEBUG enables Debug Sync
Packaging Notes:
- Changes in RPM package structure require a larger set of packages to be removed to install MySQL Server cleanly
- To avoid potential race conditions, Debian packages now use the GNU install utility rather than a combination of mkdir, touch, and chown
- CMake-generated packaging for Debian/Ubuntu packages was refactored for improved maintainability. The change includes updated logic for correctly replacing native distribution packaging in Debian and Ubuntu
- Reminder: MySQL 5.6 requires the Microsoft Visual C++ 2010 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 linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2k. For a description of issues fixed in this version,
- This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead
- 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 a secure 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.6, 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.6 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
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.
Functionality Added or Changed:
- Replication: When a negative or fractional timeout parameter was supplied to WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), the server behaved in unexpected ways. With this fix: A fractional timeout value is read as-is, with no round-off. A negative timeout value is rejected with an error if the server is on a strict SQL mode; if the server is not on a strict SQL mode, the value makes the function return NULL immediately without any waiting and then issue a warning
- The performance of UTF-8 binary collations was improved
- Consistency and maintainability of Debian/Ubuntu packaging maintainer scripts was improved
- mysql_secure_installation is more strict about what it considers valid yes and no responses
Bugs Fixed:
- InnoDB: The restriction that required the first undo tablespace to use space ID 1 was removed. The first undo tablespace may now be assigned a space ID other than 1. Space ID values for undo tablespaces are still assigned in a consecutive sequence
- InnoDB: Compiling the server without the Performance Schema caused a build failure
- InnoDB: The file handle type name for InnoDB file I/O Performance Schema instrumentation was changed from os_pfs_file_t to pfs_os_file_t
- 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
- InnoDB: A memcached read operation with a non-default read batch size configuration resulted in a server exit
- InnoDB: Performance Schema instrumentation for InnoDB file I/O was disabled on Windows
- InnoDB: The row_search_mvcc() function unnecessarily traversed the entire table for a range query, which occurred when the record was not in the transaction read view
- Replication: When using a multi-threaded slave (slave_parallel_workers greater than 0) the value of Seconds_Behind_Master was incorrect when rotating a relay log
- mysqldump failed to properly quote certain identifiers in SQL statements written to the dump output
- Client preauthorization by the server was missing a length check for a length-encoded string
- For Debian/Ubuntu packages, user-defined collation files could be overwritten during MySQL upgrades. Charset files are now marked as conffiles so that user customizations generate a prompt during upgrades whether to overwrite them
- 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
- Starting the server with performance_schema_digests_size=1 caused an abnormal exit
- mysqld_safe did not check whether the directory named by the --basedir option existed
- mysqld_safe failed if the error log file named by the --log-error option was a FIFO
- mysqld_safe could fail if the --datadir option value ended with a / character
- 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
- The fix for Bug #78777 had different effects depending on whether the Performance Schema is enabled
- The connection_control plugin failed to compile if the Performance Schema was disabled
- For System V init scripts for RPMs, the [mysqld] option-file section was being ignored for some options, such as pid-file
- Init scripts failed to launch mysqld_safe if a non-default base directory was used
- mysqld_safe --no-defaults did not work (inadvertent consequence of an earlier bug fix)
- Semicolon (;) characters within or between statements could cause distinct digests to be generated from identical statements
- For a client linked against libmysqlclient, invalid memory access could occur during use of prepared statements
- The fix for Bug #25088048 caused the command used by mysqld_safe to start the MySQL server to no longer include the mysqld path
- Executing a stored procedure containing a query that accessed a view could allocate memory that was not freed until the session ended
- A query could produce incorrect results if the WHERE clause contained a dependent subquery, the table had a secondary index on the columns in the select list followed by the columns in the subquery, and GROUP BY or DISTINCT permitted the query to use a Loose Index Scan
- Creation of a MyISAM temporary table during query processing could fail if the key length in the query was greater than the maximum MyISAM key length, resulting in a server exit
- The DebugPrintTest and DebugPrintDeathTest unit tests did not handle divide-by-zero testing properly on the Aarch64 platform. Thanks to Alexey Kopytov for the patch
- 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 /etc/sysconfig/mysqld, the MYSQLD_OPTS value can be set in that file 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
- For LOAD DATA used to insert data into an updateable view, the check to verify whether a column is actually updatable was missing
- On Debian/Ubuntu platforms, the systemd startup script for MySQL ignored datadir settings in /etc/mysql/my.cnf
- A regular expression pattern match into a large string could result in a server exit due to memory allocation failure or integer overflow
- 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
- MySQL now uses readdir() rather than readdir_r(). The latter has been deprecated since glibc 2.24 and caused debug builds of MySQL and builds using GCC 6.1 to fail
- Additionally, several problems resulting in GCC 6.1 compiler warnings were corrected
- The -DWITH_EDITLINE=system CMake option failed with recent versions of the editline library
- 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
- 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
- When attempting to locate the data directory, mysqld_safe incorrectly considered $MY_BASEDIR_VERSION/var as one of the possible locations
- The main.log_tables-big test case could be unstable on highly loaded hosts. Thanks to Laurynas Biveinis for the patch
- Queries that used an aggregate function with DISTINCT could produce incorrect results
- With the use_index_extensions flag of the optimizer_switch system variable disabled, some SELECT DISTINCT queries could return incorrect results
- Debian packages were missing an AppArmor-related include file and incorrectly were marked dependent on AppArmor (making it impossible to disable AppArmor by uninstalling it)
- In a replication environment, SET PASSWORD or ALTER USER could fail to execute on the slave due to failure to parse the hash string correctly
- On non-Linux Unix systems, the mysql.server startup script used the Linux command pidof rather than pgrep
- 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 mysqld_safe.pid file is no longer used
- 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
- 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
- Timestamps for server-side prepared statements could be written to the binary log up to a second behind timestamps for the corresponding nonprepared statements, leading to time value differences between master and slave servers
更新時間:2017-04-10
更新細節:
更新時間:2017-03-20
更新細節:
更新時間:2016-12-15
更新細節:
What's new in this version:
MySQL Enterprise Notes:
- Enterprise Encryption for MySQL Enterprise Edition now enables server administrators to impose limits on maximum key length by setting environment variables. These can be used to prevent clients from using excessive CPU resources by passing very long key lengths to key-generation operations. For more information, see Enterprise Encryption Usage and Examples
Security Notes:
Incompatible Change: These changes were made to mysqld_safe:
- Unsafe use of rm and chown in mysqld_safe could result in privilege escalation. chown now can be used only when the target directory is /var/log. An incompatible change is that if the directory for the Unix socket file is missing, it is no longer created; instead, an error occurs. Due to these changes, /bin/bash is required to run mysqld_safe on Solaris. /bin/sh is still used on other Unix/Linux platforms
- The --ledir option now is accepted only on the command line, not in option files
- mysqld_safe ignores the current working directory
Other related changes:
- Initialization scripts that invoke mysqld_safe pass --basedir explicitly
- Initialization scripts create the error log file only if the base directory is /var/log or /var/lib
- Unused systemd files for SLES were removed
- MySQL Server now includes a plugin library that enables administrators to introduce an increasing delay in server response to clients after a certain number of consecutive failed connection attempts. This capability provides a deterrent that slows down brute force attacks that attempt to access MySQL user accounts. For more information, see The Connection-Control Plugin
- OpenSSL is ending support for version 1.0.1 in December 2016; Consequently, MySQL Commercial Server builds now use version 1.0.2 rather than version 1.0.1, and the linked OpenSSL library for the MySQL Commercial Server has been updated from version 1.0.1 to version 1.0.2j. For a description of issues fixed in this version, This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead
Functionality Added or Changed:
- InnoDB: By default, InnoDB reads uncommitted data when calculating statistics. In the case of an uncommitted transaction that deletes rows from a table, InnoDB excludes records that are delete-marked when calculating row estimates and index statistics, which can lead to non-optimal execution plans for other transactions that are operating on the table concurrently using a transaction isolation level other than READ UNCOMMITTED. To avoid this scenario, a new configuration option, innodb_stats_include_delete_marked, can be enabled to ensure that InnoDB includes delete-marked records when calculating persistent optimizer statistics
- Unit testing now uses Google Mock 1.8
Bugs Fixed:
- Incompatible Change: A change made in MySQL 5.6.32 for handling of multibyte character sets by LOAD DATA was reverted due to the replication incompatibility
- InnoDB: The GCC mach_parse_compressed function should load one to five bytes depending on the value of the first byte. Due to a GCC bug, GCC 5 and 6 emit code to load four bytes before the first byte value is checked . A workaround prevents this behavior
- InnoDB: Due to a glibc bug, short-lived detached threads could exit before the caller had returned from pthread_create(), causing a server exit
- InnoDB: An error during a table-rebuilding operation on a table with only a generated clustered index (GEN_CLUST_INDEX) raised and assertion due to an error called with an invalid key name
- InnoDB: On a table without an explicitly defined primary key, InnoDB did not replace the implicit clustered index (GEN_CLUST_INDEX) when a unique key was defined on a NOT NULL column
- InnoDB: InnoDB failed to free memory used by the full-text optimizer thread
- InnoDB: SHOW ENGINE INNODB STATUS output showed a “cleaning up” state for an idle thread. Thread state information was not reset after statement execution
- InnoDB: After a server restart, concurrent INSERT operations a table with an auto-increment primary key resulted in a duplicate entry error. The current auto-increment value was not changed after auto_increment_increment and auto_increment_offset settings were modified
- Replication: Tables with special DEFAULT columns, such as DEFAULT CURRENT_TIMESTAMP, that existed only on a slave were not being updated when using row-based replication (binlog_format=ROW)
- Replication: Enabling semisynchronous replication when a server was during the commit stage could cause the master to stop unexpectedly
- Replication: The fix for Bug #81657 was correctly merged into MySQL 5.6
- Some Linux startup scripts did not process the datadir setting correctly
- CREATE TABLE with a DATA DIRECTORY clause could be used to gain extra privileges
- OEL RPM packages now better detect which platforms have multilib support (for which 32-bit and 64-bit libraries can be installed). Thanks to Alexey Kopytov for the patch
- Compiling MySQL using Microsoft Visual Studio 2015 Version 14.0.25420.1 in relwithdebinfo mode failed with linking errors
- Warnings occurring during CREATE TABLE ... SELECT could cause a server exit
- For segmentation faults on FreeBSD, the server did not generate a stack trace
- The .mylogin.cnf option file is intended for use by client programs, but the server was reading it as well. The server no longer reads it
- If mysqladmin shutdown encountered an error determining the server process ID file, it displayed an error message that did not clearly indicate the error was nonfatal. It now indicates that execution continues
- The data structure used for ZEROFILL columns could experience memory corruption, leading eventually to a server exit
- Use of very long subpartition names could result in a server exit. Now partition or subpartition names larger than 64 characters produce an ER_TOO_LONG_IDENT error
- On Solaris, gettimeofday() could return an invalid value and cause a server shutdown
- A union query resulting in tuples larger than max_join_size could result in a server exit
- The optimizer could choose ref access on a secondary index rather than range access on the primary key, even when the cost was higher
- For some deeply nested expressions, the optimizer failed to detect stack overflow, resulting in a server exit
- When taking the server offline, a race condition within the Performance Schema could lead to a server exit
- The Performance Schema events_statements_summary_by_digest table could contain multiple rows for the same statement digest and schema combination, rather than the expected single (unique) row
- For debug builds: Adding a unique index to a POINT NOT NULL column triggered a warning and the key was not promoted to a primary key. Creating a unique index on a different non-NULL column in the same table then raised an assertion
- Compiling using Clang 3.5 or higher with AddressSanitizer (ASAN) enabled caused the gen_lex_hash utility to abort on Clang LeakSanitizer memory leak check failures
- Miscalculation of memory requirements for qsort operations could result in stack overflow errors in situations with a large number of concurrent server connections
更新時間:2016-11-29
更新細節:
更新時間:2016-10-13
更新細節:
What's new in this version:
Security Notes:
- Incompatible Change: For STANDALONE and WIN builds, the default secure_file_priv value has changed from the empty string to NULL. This is a secure-by-default setting because it disables import and export operations. To permit those operations, set secure_file_priv to the path name of the directory to use for those operations.
- The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.1u. For a description of issues fixed in this version. This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead.
Functionality Added or Changed:
- yaSSL was upgraded to version 2.4.2. This upgrade corrects issues with: Potential AES side channel leaks; DSA padding for unusual sizes; the SSL_CTX_load_verify_locations() OpenSSL compatibility function failing to handle long path directory names.
更新時間:2016-09-07
更新細節:
What's new in this version:
Security Notes:
- The validate_password plugin now supports the capability of rejecting passwords that match the current session user name, either forward or in reverse. To enable control over this capability, the plugin exposes a validate_password_check_user_name system variable. By default, this variable is disabled; the default will change to enabled in MySQL 8.0. For more information, see Password Validation Plugin Options and Variables.
Test Suite Notes:
- In mysql-test-run.pl, a limit of 50 was imposed on the number of workers for parallel testing, which on systems with more than 50 CPUs resulted in exhaustion of unique thread IDs. The ID-exhaustion problem has been corrected, and the limit of 50 on number of workers has been lifted. Thanks to Daniel Black for the patch on which this change was based.
Functionality Added or Changed:
- InnoDB: A new dynamic configuration option, innodb_deadlock_detect, can be used to disable deadlock detection. On high concurrency systems, deadlock detection can cause a slowdown when numerous threads wait for the same lock. At times, it may be more efficient to disable deadlock detection and rely on the innodb_lock_wait_timeout setting for transaction rollback when a deadlock occurs.
- The systemd support script for the unit file (mysqld_pre_systemd) now assists in creating the error log file only if its location matches the pattern /var/log/mysql*.log. In other cases, the error log directory must be writable or the error log must be present and writable for the user running the mysqld process. Also, mysqld_pre_systemd now avoids creating insecure temporary files.
- The CMake WITH_LZ4 option has been added to control which LZ4 library is used during compilation. By default WITH_LZ4 is set to bundled, so the library provided with MySQL is used. Setting WITH_LZ4 to system uses the LZ4 library from the operating system.
Bugs Fixed:
- InnoDB: An ALTER TABLE ... ENCRYPTION='Y', ALGORITHM=COPY operation on a table residing in the system tablespace raised an assertion.
- InnoDB: Creating an encrypted table on a Fusion-io disk with an innodb_flush_method setting of O_DIRECT caused a fatal error.
- InnoDB: An operation that dropped and created a full-text search table raised an assertion.
- InnoDB: Accessing full-text search auxiliary tables while dropping the indexed table raised an assertion.
- InnoDB: An online DDL operation on a table with indexed BLOB columns raised an assertion during logging of table modifications.
- InnoDB: In some cases, code that locates a buffer pool chunk corresponding to given pointer returned the wrong chunk.
- Thanks to Alexey Kopytov for the patch.
- Replication: The addition of the transaction-write-set-extraction=XXH64 option uses xxHash symbols from liblz4. Although the xxHash symbols are exported by liblz4, the header file is not part of the API, so compilation failed when building with WITH_LZ4=system. The fix ensures that xxHash is built separately from liblz4 so that it is available both when using the system and bundled LZ4 libraries.
- Replication: mysqlbinlog --read-from-remote-server log1 log2 was opening a new connection for log2 without freeing the connection used for log1. Thanks to Laurynas Biveinis for the contribution.
- Replication: The MTR binary log test suite failed to clean up copied files. Thanks to Daniel Black for the contribution.
- Replication: With binlog_row_image=FULL, when updating single tables temporary tables were unnecessarily being used. The fix ensures single table update follows the same pattern as multi-table update.
- mysqld_safe attempted to read my.cnf in the data directory, although that is no longer a standard option file location.
- For mysqld_safe, the argument to --malloc-lib now must be one of the directories /usr/lib, /usr/lib64, /usr/lib/i386-linux-gnu, or /usr/lib/x86_64-linux-gnu. In addition, the --mysqld and --mysqld-version options can be used only on the command line and not in an option file.
- It was possible to write log files ending with .ini or .cnf that later could be parsed as option files. The general query log and slow query log can no longer be written to a file ending with .ini or .cnf.
- Privilege escalation was possible by exploiting the way REPAIR TABLE used temporary files.
- The client library failed to build on Solaris using the Cstd library.
- If the basedir system variable was set at server startup from the command line or option file, the value was not normalized (on Windows, / was not replaced with /).
- kevent statement timer subsystem deinitialization was revised to avoid a mysqld hang during shutdown on OS X 10.12.
- For accounts for which multiple GRANT statements applied, mysqlpump could fail to dump them all.
- The MYSQL_ADD_PLUGIN macro had a spelling error that caused MYSQL_SERVER not to be defined.
- In-place ALTER TABLE operations which when executed separately caused no table rebuild could when combined into a single statement result in a table rebuild.
- For keyring plugins, the data access layer is now created only as necessary, not once per operation, which improves keyring performance.
- A blank server name in CREATE SERVER statements produced a server exit rather than an error.
- The optimizer failed to check a function return value for an area calculation, leading to a server exit.
- The server could fail to free memory allocated for execution of queries that used generated columns.
- mysqlpump output for triggers that contained multiple statements in the trigger body failed to load correctly.
- Queries that satisfied the following conditions could return different results than in MySQL 5.6: 1) A subquery appeared in the select list; 2) The subquery contained a WHERE condition that referenced a value in the outer query; 3) The outer query contained a GROUP BY that required creation of a temporary table.
- Passwords that were rejected by the validate_password plugin were written by the server to the error log as cleartext.
- A prepared statement that used a parameter in the select list of a derived table that was part of a join could cause a server exit.
- MEDIUMINT columns used in operations with long integer values could result in buffer overflow.
- A spurious ER_NO_SUCH_TABLE error could occur when attempting to execute a prepared CREATE TABLE ... SELECT statement that used a temporary table in the FROM clause and called a stored function. The same error could occur for a nonprepared version of the statement if used in a stored procedure when the procedure was re-executed.
- EINTR handling in the client library has been fixed so that interrupted read and write calls are retried. Previously, EINTR was ignored.
更新時間:2016-07-30
更新細節:
What's new in this version:
SYS SCHEMA NOTES:
- The sys schema now has a quote_identifier() function that, given a string argument, produces a quoted identifier suitable for inclusion in SQL statements. (Bug #22011361, Bug #78823)
- Output from the sys schema diagnostics() procedure now includes the Tls_version column from the mysql.slave_master_info system table.
FUNCTIONALITY ADDED OR CHANGED:
- The %global compatver value for RPM packages for RHEL/OEL and Fedora releases was updated from 5.6.25 to 5.6.31. (Bug #23038018)
- Specifying an empty value for the --port option (for example, --port=, --port="") is now deprecated and results in a warning. An empty value will be an error in MySQL 8.0. (Bug #23023457, Bug #80903)
- CMake support for compiling with Solaris Studio 12.5 was added. (Bug #82249, Bug #24303829, Bug #81274, Bug #23212938)
- The INFORMATION_SCHEMA INNODB_LOCKS and INNODB_LOCK_WAITS tables are now deprecated and will be removed in a future MySQL release.
BUGS FIXED:
- Performance: A flaw in the allocation of memory for appending string values caused some operations to be performed slowly, including creation of tables having generated columns and inserts of large values into JSON columns. (Bug #80556, Bug #22843444)
- InnoDB: Full-text search auxiliary tables could be dropped by one session while being access by another. (Bug #23742339)
- InnoDB: Selecting full-text index information schema tables for a deleted table caused a segmentation fault. (Bug #23479595)
- InnoDB: A tablespace operation did not properly update the SYS_VIRTUAL system table. (Bug #23325659)
- InnoDB: Rollback of a full-text index synchronization operation raised an assertion. The rollback operation attempted to acquire a mutex still held by the background synchronization thread. (Bug #23320569)
- InnoDB: After compressing a table, an incorrect data length was passed to an internal tablespace encryption function, causing an assertion. (Bug #23279788)
- InnoDB: An r-tree page lock placed during a search operation prevented an undo operation within the same transaction from merging pages. (Bug #23241575)
- InnoDB: A bulk load insert of a record with a compressed size greater than half of the compressed page size resulted in infinite B-tree page splitting when compressing the uncompressed page. (Bug #23120933)
- InnoDB: A lock order violation related to InnoDB full-text search caused errors and raised an assertion. (Bug #23120005)
- InnoDB: In read-only mode, InnoDB attempted to set a corrupt bit in the SYS_INDEXES system table. In read-only mode, the corruption should only be marked in memory. (Bug #23077748)
- InnoDB: InnoDB attempted to materialize non-key generated virtual columns that were not required for partitioning. (Bug #23037025)
- InnoDB: An insert operation on a table containing virtual and spatial indexes raised an assertion due to an invalid parent path encountered during page splitting. (Bug #23008863)
- InnoDB: An ALTER TABLE operation on a table with an indexed virtual column raised an assertion. (Bug #22965271)
- InnoDB: Adding or dropping a generated virtual column could raise an assertion due to a table handle held by an active memcached connection. (Bug #22922527)
- InnoDB: A full-text query that involved a large number of records exceeded the result cache limit and caused a server exit. (Bug #22709692, Bug #80296)
- InnoDB: InnoDB did not block the creation of a foreign key constraint with referential actions on the base column of a generated stored column. (Bug #22687023, Bug #80304)
- InnoDB: The optimizer failed to mark the columns required for MATCH function evaluation when the secondary index used for the full-text query was not chosen by the optimizer. (Bug #22679209, Bug #80298)
- InnoDB: In READ COMMITTED isolation level, InnoDB unnecessarily acquired the lock_sys mutex at COMMIT for a transaction block consisting of read-only SELECT statements.
- InnoDB: Setting innodb_monitor_enable to all did not enable all counters. (Bug #22576241, Bug #80083)
- InnoDB: InnoDB now permits defining a foreign key constraint with a cascading referential action on the base column of an indexed virtual column, and defining cascading referential actions on non-virtual foreign key columns that are explicitly included in a virtual index. (Bug #22469130, Bug #79772)
- InnoDB: An assertion was raised during rollback of an ALTER TABLE operation that dropped and added a secondary index. (Bug #22005726)
- Partitioning: In some cases, an issue with partition pruning being attempted a second time during optimization after all partitions had already been pruned at parsing time led to an assert. (Bug #23194259)
- Replication: Replication slaves could exit trying to apply an UPDATE row event containing virtual generated columns received from a master that was set to binlog_row_image=minimal. (Bug #23604483)
- Replication: When using row-based replication and InnoDB, replication slaves reverted to using an older locking scheme when a transaction had already acquired an AUTOINC lock related to a LOAD FILE or INSERT ... SELECT type of statement, reducing replication slave performance. The fix ensures that sql_command is set correctly for any of the DML events such as WRITE_ROWS_EVENT, UPDATE_EVENT, and DELETE_EVENT. (Bug #79324, Bug #22247668)
- Replication: When using statement-based or mixed binary logging format with --read-only=ON, it was not possible to modify temporary tables. (Bug #62008, Bug #12818255)
- References: See also: Bug #14294223, Bug #16561483.
- MySQL Server upgrades performed using RPM packages failed when upgrading from MySQL 5.6 Community to MySQL 5.7 Community or MySQL 5.6 Commercial to MySQL 5.7 Commercial. (Bug #23736787)
- On CentOS, mysqld installed from a MySQL Community distribution failed to start if a my.cnf file with no datadir value specified was used. (Bug #23721277, Bug #82049)
- The -DWITH_EDITLINE=system CMake option failed with recent versions of the editline library. (Bug #23708332)
- Executing prepared statements with the audit_log plugin installed could cause a server exit. (Bug #23699991)
- The sys schema ps_trace_statement_digest() procedure failed for statements not supported by EXPLAIN, for statements for which EXPLAIN could not find tables, and for statements with no digest found during the monitored period. (Bug #23621189)
- A SELECT Performance Schema tables when an internal buffer was full could cause a server exit. (Bug #23550835, Bug #23298025, Bug #81464)
- The code for reading character set information from Performance Schema statement events tables (for example, events_statements_current) did not prevent simultaneous writing to that information. As a result, the SQL query text character set could be invalid, which could result in a server exit. Now an invalid character set causes SQL_TEXT column truncation. (Bug #23540008)
- An error message spelling error was corrected. Thanks to Derek Jones for the patch. (Bug #23525874, Bug #81713)
- In the Performance Schema, allocating a record when a buffer was full could lead to a server exit. (Bug #23515302)
- A buffer overflow in the regex library was fixed. (Bug #23498283)
- Upgrading from native MySQL 5.6 Debian/Ubuntu packages to Oracle-supplied MySQL 5.7 packages caused server restart failures. (Bug #23498230)
- The CMake configuration was too aggressive in making symbols invisible, resulting in link problems with GCC 5.3 on Solaris. (Bug #23344916, Bug #81593)
- Audit log filtering against the user was performing comparisons against USER(), not CURRENT_USER(). (Bug #23344762)
- After upgrading only the server using RPM packages, the server could fail to start, complaining about a bad errmsg.sys file. (Bug #23338603)
- Upgrading from native Ubuntu 5.7.12 packages to MySQL 5.7.13 packages failed with conflict messages. (Bug #23327563)
- For debug builds, the server exited abnormally if a shutdown command was issued while the audit_log plugin was loaded and an active connection existed. (Bug #23310864)
- The server could fail to interpret expired passwords as expired. (Bug #23291841)
- Certain arguments to NAME_CONST() could cause a server exit. (Bug #23279858)
- For unit-testing with the MySQL test suite, the make unit-test command is no longer available. The ctest program should be used instead. See Unit Tests Added to Main Test Runs. (Bug #23273434)
- Audit log plugins (including query rewrite plugins, which use the audit API) were being acquired and released per statement, negatively affecting scalability. To improve performance, these plugins now are acquired once and released only when the connection ends. (Bug #23236404, Bug #81298)
- mysql-test-run.pl now has a --manual-boot-gdb option that is similar to --boot-gdb but attaches the debugger to the server during the bootstrapping process, permitting the use of a remote debugger. (Bug #23090633)
- The -fexpensive-optimizations option to GCC caused ARM64 and PowerPC builds to compute floating-point operations slightly differently from other platforms. CMake now checks for this problem and disables the option as necessary. (Bug #23046775)
- The test_service_sql_api.test_session_general_log test case now cleans up the general_log table by truncating it at the end of the test. Thanks to Daniel Black for the patch. (Bug #23021111, Bug #80895)
- Lines written to the error log had no space separating the timestamp and thread ID columns if the thread ID took five or more characters. (Bug #23005009, Bug #80854)
- For the innodb_buffer_stats_by_schema and innodb_buffer_stats_by_table sys schema views, the pages_hashed and pages_old columns were incorrect. Thanks to Tsubasa Tanaka for the patch. (Bug #22988461, Bug #80833)
- An incorrect result could be returned for a query using a merged derived table or a view when compared to a similar query using a base table directly, if the query included a WHERE condition in a scalar subquery inside a HAVING condition of the main query block. (Bug #22967439)
- ST_GeomFromGeoJSON() treated JSON NULL as invalid input. Now it treats JSON NULL as SQL NULL and thus returns SQL NULL for JSON NULL input. (Bug #22930020, Bug #80712)
- For the host_summary_by_statement_latency and x$host_summary_by_statement_latency sys schema views, the max_latency column was incorrect. (Bug #22848110, Bug #80569)
- ST_Distance() could raise an assertion for NULL return values. (Bug #22760390)
- In the absence of SQL_CALC_FOUND_ROWS, FOUND_ROWS() for a UNION statement always returned the actual number of rows found even when LIMIT was present. (Bug #22602381, Bug #80148)
- A statement containing a format specifier resulted in a server exit when the query rewrite plugin tried to log the statement. (Bug #22601485)
- With the query cache enabled, executing a prepared statement with CURSOR_TYPE_READ_ONLY and then again with CURSOR_TYPE_NO_CURSOR caused the server to return an error. (Bug #22559575, Bug #80026)
- mysql_real_connect() was not thread-safe when invoked with the MYSQL_READ_DEFAULT_FILE or MYSQL_READ_DEFAULT_GROUP option enabled. (Bug #22322504, Bug #79510)
- With GTIDs enabled, XA COMMIT on a disconnected XA transaction within a multiple-statement transaction raised an assertion. (Bug #22173903)
- The sys schema create_synonym_db() function failed if the synonym name was a reserved word or contained backtick (`) characters. (Bug #22011361, Bug #78823)
- The sys schema host_summary view could fail with a division-by-zero error. (Bug #21970078)
- The GCC workaround for compiling on ARM64 added by Bug #21552524 is needed only for GCC before 5.2.1. (Bug #21845828)
- The sys schema format_path() function replaced substrings of the path name argument without verifying that the substrings were delimited by path name separators. Replacement now works correctly, including on Windows. A consequence is that backslashes in Windows path names are no longer converted to forward slashes in the result. (Bug #21512106)
- MySQL now supports compiling using the GCC __atomic builtins introduced in GCC 4.7 that permit a more efficient implementation of the MySQL atomics API. These __atomic builtins are only used for platforms where the old GCC __sync builtins are not available, such as PowerPC where the server otherwise would not build. (Bug #21221500)
- If a stored function updated a view for which the view table had a trigger defined that updated another table, it could fail and report an error that an existing table did not exist. (Bug #21142859, Bug #76808)
- mysql_upgrade failed to upgrade the sys schema if a sys database directory existed but was empty. (Bug #81352, Bug #23249846, Bug #22875519)
- The bundled Protobuf sources (under the extra directory) were upgraded from version 2.6.0 to 2.6.1. (Bug #81280, Bug #23213376)
- Protobuf is currently used only by the X plugin, but MySQL builds built the protobuf libraries and executables even if X plugin building was disabled with -DWITH_RAPID=0. (Bug #81066, Bug #23097750)
- On Solaris, a misaligned memory buffer could cause a server exit when selecting from the global_status Performance Schema table. (Bug #81065, Bug #23097305)
- A compilation error was corrected for a make_link() call when compiling in C++11 mode. Thanks for Daniel Black for the contribution. (Bug #80996, Bug #23080289)
- Two mysql-test-run.pl tests (ctype_gb18030_binlog and ctype_ldml) failed to produce repeatable output due to improper cleanup. Thanks to Daniel Black for the patch. (Bug #80896, Bug #23021095)
- MySQL failed to build with GCC 6 using the default mode for C++ of -std=gnu++14. The CMake configuration has been adjusted to explicitly set the mode to -std=gnu++03 for GCC 6. (Bug #80371, Bug #22732697)
- Ubuntu packages create the root user account using the auth_socket authentication plugin to achieve secure-by-default installation if installation was done with a blank root password. However, auth_socket was being used even if the password was not blank. (Bug #80137, Bug #22594846, Bug #23321113, Bug #81518)
- Compiling the InnoDB memcached plugin did not work on some platforms where MySQL was configured using -DWITH_LIBEVENT=system. (Bug #80073, Bug #22573379, Bug #23567441)
- The client-side plugin deinitialization function signature was changed from int (*deinit)() to int (*deinit)(void) to avoid warnings when compiling with -Wstrict-prototypes. (Bug #78177, Bug #21680094, Bug #81419, Bug #23282498)
- Several issues were addressed in the sys schema stored procedures that show enabled or disabled Performance
Schema setup:
- Enabled and disabled accounts were shown as host@user, not user@host.
- Disabled users in ps_setup_show_disabled were called enabled_users.
- ps_setup_show_enabled() showed disabled objects.
- setup_actors content was not filtered (all rows were returned whether the actor was enabled or disabled).
- Output order is more deterministic.