TinyButStrong Error in field [var.version...]: the key 'version' does not exist or is not set in VarRef. (VarRef seems refers to $GLOBALS) This message can be cancelled using parameter 'noerr'.

TinyButStrong Error in field [var.version...]: the key 'version' does not exist or is not set in VarRef. (VarRef seems refers to $GLOBALS) This message can be cancelled using parameter 'noerr'.
 MySQL 軟體歷史版本 Download Page32 :: 軟體兄弟

MySQL 歷史版本列表 Page32

最新版本 [var.version]

MySQL 歷史版本列表

MySQL 是一個開源的 RDBMS(關係數據庫管理系統),它支持用 C,C ++,Java,Perl 和 PHP 等各種編程語言編寫的請求。由於其高速度和靈活性,MySQL 已成為主要用於開發各種形狀和大小的 Web 應用程序的最流行的數據庫系統之一。自 1995 年上市以來,這種非常受歡迎的開源數據庫管理系統已經應用於當今幾乎所有互聯網用戶的無數項目中。今天一些最受歡迎的 MySQL 用戶是 ... MySQL 軟體介紹

MySQL (32-bit)MySQL (64-bit)MySQL WorkbenchMySQL Workbench (32-bit)MySQL Workbench (64-bit)


vMix 20.0.0.55 查看版本資訊

更新時間:2018-02-12
更新細節:

What's new in this version:

Outputs:
- Two additional independent outputs for vMix Call, Replay and NDI (Pro and 4K editions only)
- Second recorder with an independent recording format that can be assigned to one of the 4 outputs. (Pro and 4K editions only)

Production Clocks:
- New Dual Production Clock can now be enabled from Settings -> Options
- Each of the clocks can display either the current time, recording duration, streaming duration or a countdown to an event
- Clock display can also be added as an input which can be assigned to the MultiView Output
- Clock input can also be enabled as an NDI source on the network, providing a mobile clock that can be displayed anywhere using the free NDI tools!

vMix Call:
- Audio and Video sources sent to guests can now be changed independently at any time from the right click menu
- All vMix editions including Basic HD can now connect to a remote vMix Call running HD or higher
- New Low Latency option added. This can be used on reliable, high bandwidth point to point connections where the lowest possible delay is required

Audio:
- New Channel Matrix option available for every input that supports audio
- Provides a 8x16 channel audio router to every input that can be assigned to any of the audio output buses in any combination
- Live audio meters added to each channel in the Input Channel Mixer

Streaming:
- Improved streaming settings layout
- Each of the 3 destinations now supports independent bitrate and resolution settings
- Hardware Encoder can also be controlled independently on each stream to assist with systems where GeForce cards only support 2 encoders at a time

PTZ:
- Added new Visca Over IP support to connect to newer Sony SRG series cameras in addition to the new IP model from Lumens

Titles:
- Added support for controlling NewBlue Titler Live 3.0 via NDI
- Supports commands such as AnimateIn, AnimateOut which can be accessed from the Input right click menu or assigned to controllers using the new shortcut function NDICommand
- Supports live editing of Titler Live templates from within the vMix Title Editor and Web Controller, with the ability to assign data sources as well
- vMix now includes the vMix Title Pack for free! This includes 36 additional templates including scoreboards and lower thirds.

Other:
- Added support for X-keys XK-68 Jog/Shuttle controller
- Improved CPU usage when streaming, particularly with 4K
- Improved performance with 4K Magewell capture cards
- New TCP API for embedded devices. See Developer Information in the help for more information

MySQL Workbench 6.3.10 查看版本資訊

更新時間:2017-11-19
更新細節:

MySQL Workbench 6.3.10 (64-bit) 查看版本資訊

更新時間:2017-11-19
更新細節:

What's new in this version:

MySQL Workbench 6.3.10 (64-bit)
- Change log not available for this version

MySQL Workbench 6.3.9 (64-bit)
FUNCTIONALITY ADDED OR CHANGED:
- Support was added for many MySQL 8.0 features. Note that configuration-file support for MySQL 8.0 is not available and a warning banner is displayed during attempted use. (Bug #24908593, Bug #83422)
- With MySQL 5.7, several new instruments were added to the performance section including the following for Memory Usage: Total Memory, Top Memory by Event, Top Memory by User, Top Memory by Host, Top Memory by Thread, User Resource Usage, and the following for User Resource Usage: Overview, I/O Statistics, and Statement Statistics. (Bug #21491775)
- With MySQL 5.7, GTID_MODE can now be set online. (Bug #20712931)
- Workbench is now aware of the innodb_optimize_point_storage option that was added in MySQL Server 5.7.5, and later removed in MySQL Server 5.7.6. Note that MySQL Server 5.7.9 was the first 5.7 GA release. (Bug #20661496)
- Mroonga storage engine support is now available for tables. (Bug #20058280, Bug #74367)
- A new DDL tab was added to show the complete create statement of a table or view. Click the table inspector (info) button next to the table or view in the Schemas Navigator to display the new information. (Bug #19889537, Bug #74554)
- Dropped support for DBDesigner 4
- Dropped Fabric support
- Dropped support for MySQL 5.1. Minimum version is now MySQL 5.5
- Changed to C++11
- Changed to GTK 3 on Linux
- OS X: Version 10.7 (Lion) and 10.8 (Mountain Lion) support was dropped. Now supporting 10.9 (Mavericks), 10.10 (Yosemite), 10.11 (El Capitan), and 10.12 (Sierra)
- Windows: Zip packages and 32-bit binaries are no longer published. The .NET Framework version 4.5 is now required
- Linux: Fedora 23 support dropped and Fedora 25 support added. Oracle Linux 6 support was dropped
- The option to specify an alternative application data directory, instead of the default location, was added
- The JSON editor was improved with better parsing and error checking
- A new Log Level preference (under Others) was added to alter the log verbosity level
- As before, this can still be set by passing in the log-level command-line argument into Workbench at runtime, and doing so overrides the Log Level setting
- The bundled sakila_full.mwb model now uses a dedicated 5.7 version to allow for 5.7 specific features, regardless of the version setting in the preferences
- Full MySQL 5.7 language support was added, which affects grammar, syntax highlighting, preferences, behavior, and more
- The Home screen was modified: the connections, models, and starters were split into individual pages

BUGS FIXED:
- With multiple tabs open in the SQL Editor, using the context-sensitive menu to close all other tabs caused MySQL Workbench to exit unexpectedly. (Bug #25466086, Bug #84643)
- Objects sorted in the schema inspector and then selected for an operation, such as Drop Table, generated a statement for the wrong object. (Bug #25464011, Bug #84697)
- MySQL Workbench supports the option to require a CA certificate or identity validation. (Bug #25408639)
- If a full backup added warning messages to the backup log file, then running an incremental backup later failed. (Bug #25315796)
- No JSON tab appeared for the Open Value in Editor command if the field contained an empty array. (Bug #25222455, Bug #84106)
- Schema names were not escaped properly in resulting DROP TRIGGER statements when a trigger was created or edited. (Bug #25036458, Bug #83655)
- In some cases, executing a query caused MySQL Workbench to become unresponsive when the host was macOS Sierra. (Bug #25036263, Bug #83658)
- Having a single quotation mark (') in the text field of a table caused the MySQL Schema Transfer wizard to fail. (Bug #24978403, Bug #83616)
- Simple and complex queries executed from SQL Editor failed to complete and return control to MySQL Workbench. This behavior was observed for both local and remote queries and was often intermittent. (Bug #24977018, Bug #82951)
- Deleting rows while connected to a remote server caused the connection to fail and for MySQL Workbench to exit unexpectedly. (Bug #24947899, Bug #81019)
- The Selected schema drop-down list in the New Schema Privilege Definition dialog failed to display newly added schema names unless MySQL Workbench was restarted. (Bug #24798254, Bug #83111)
- The bundled OpenSSL library was upgraded to version 1.0.2J. (Bug #24753390)
- Tooltips failed to operate properly in the Visual Explain panel. (Bug #24577687, Bug #82816)
- Deleting selected rows from the Result Grid caused MySQL Workbench to become unresponsive. (Bug #24411733, Bug #82466)
- Connecting to the server resulted in the following exception: Parameter is not valid. (Bug #24394987)
- Queries returning more than 1000 rows on an SSH connection to AWS failed and caused MySQL Workbench to become unresponsive. (Bug #24330588, Bug #82291)
- Adding a password with the Store in Vault option caused Workbench to fail and exit. (Bug #23987798, Bug #82190)
- Opening a saved .mwb model file with MySQL Workbench generated the following error intermittently: Error unserializing GRT data string too long. The same file, when opened directly from the file system, started MySQL Workbench and displayed the model correctly. (Bug #23857478, Bug #80017)
- Query statements executed from the SQL Editor did not remain selected when the focus returned to the query area. (Bug #23760790, Bug #79580)
- The schema navigator incorrectly opened a previously viewed database, instead of the one selected, after the schema filter in the Navigator panel was used to find and list multiple databases. (Bug #23760745, Bug #71699)
- Selecting TCP/IP over SSH for existing or new connections caused MySQL Workbench to fail and exit. (Bug #23743373, Bug #82113)
- Changes made with the Options File editor were committed to my.cnf correctly, but also generated an error. (Bug #23741731, Bug #82102)
- Stored procedures containing valid CASE statements reported syntax errors when created or edited. (Bug #23617646, Bug #81932)
- Graphs in the performance dashboard reported negative values when the server instance was stopped and restarted during the analysis. (Bug #23103677, Bug #81067)
- The Migration Wizard successfully migrated the schema, but failed to migrate the data, when the data source was SQL Anywhere 16 using ODBC. (Bug #22987681, Bug #79140)
- Selecting too many tables when attempting to reverse engineer an EER diagram caused MySQL Workbench to fail and exit. This fix sets the permitted threshold to 1000 objects and displays a warning message when the number of objects exceeds the threshold. (Bug #22828056, Bug #80516)
- The import operation failed to import valid CSV files. (Bug #22817059, Bug #80472)
- New connections configured with the Standard TCP/IP over SSH connection method failed and caused MySQL Workbench to become unresponsive or to exit. (Bug #22728573, Bug #80359)
- EER diagram tables were locked to a fixed location in the window for some .mwb files. This fix enables users to unlock the tables within the diagram and to persist those changes by first changing the size of the diagram (click Model, Diagram Properties and Size) and then saving the file. (Bug #22722596, Bug #71533)
- Performance reports generated by the Export button did not enclose in quotes and escape any string values in the CSV file, making it difficult to read the output when the strings contained commas. (Bug #22700858)
- Check for Updates from the Help menu failed to detect new releases. (Bug #22578656, Bug #80074)
- The Filter Rows value set in the Result Grid of a query was not reapplied when the query was changed or refreshed. (Bug #22566018, Bug #80050)
- When running large queries over an SSH tunnel, MySQL Workbench became unresponsive. (Bug #22494755, Bug #79840)
- The Export Data operation emitted an unhandled exception when the user connecting to the server lacked privileges on the mysql schema, but had full privileges on the database identified by the operation. (Bug #22478388, Bug #79807)
- Adding or editing fields in the Table Templates window for a user-defined template caused MySQL Workbench to fail and exit. (Bug #22449752, Bug #79721)
- Data exported from the Inserts tab of a table in an EER diagram generated invalid JSON syntax. (Bug #22381735, Bug #79673)
- Some GRANT statements were parsed incorrectly. (Bug #22370783)
- The Audit Inspector failed to initialize in MySQL Workbench when the locations of the audit log file and data directory were different. (Bug #22277384)
- GEOMETRY table data failed to export properly into CSV file format and failed to export at all into JSON file format (with an error). (Bug #22269646)
- Stopping a query before it finished executing often caused MySQL Workbench to stop working. (Bug #22071120, Bug #78881)
- The placeholder row (last row of the Result Grid with NULL values) was hidden when new rows were inserted and applied. (Bug #22065173, Bug #78294)
- Saving a reverse-engineered model caused MySQL Workbench to fail and exit. (Bug #21980722, Bug #78357)
- The cost and data process information added to "EXPLAIN JSON" in MySQL Server 5.7.2 can now be viewed in Workbench. (Bug #21848024)
- The autocomplete feature did not offer suggestions as expected. The CTRL+SPACEBAR keyboard shortcut can be used to activate this feature. (Bug #21685267, Bug #78185)
- Some help text was hidden from the Schema Editor in the EER Diagram. (Bug #21630661, Bug #78021)
- When MySQL Workbench performed a copy-back restore operation, it reported incorrectly to the mysqlbackup log that a copy-back-and-apply-log operation was performed. (Bug #21496475)
- The require_secure_transport system variable that was added in MySQL Server 5.7.8 is now supported and can be modified using MySQL Workbench. This variable enables administrators to require all client connections to the server to be made using some form of secure transport. (Bug #21484632)
- A dialog showing the wait time of an attempted connection now displays earlier for improved visibility. (Bug #21264710)
- Some routine database operations caused MySQL Workbench to fail and exit intermittently. (Bug #21231450, Bug #77286)
- The slash character (/) when used in the name of a new connection separated a group from the real connection name by default without first notifying the user. This fix gives the user an option to keep the slash character and create a connection group or to replace all slash characters in the connection name with underscore characters. (Bug #21158191, Bug #77175)
- In a query, UNION and UNION ALL statements that contained data from different tables or different databases returned data in the Result Grid that could be edited and applied to the wrong table. This fix returns read-only data that cannot be edited directly for such queries. (Bug #21046384, Bug #76964)
- The identifier quote character (`) was missing from the DROP statement when an attempt was made to drop the existing trigger on a database with an illegal character in the name. A syntax error resulted. (Bug #20978108, Bug #76869)
- The property values of a table in an EER diagram could not be edited from the Properties Editor. (Bug #20930134)
- Stored procedures containing valid query syntax produced syntax errors. (Bug #20929172, Bug #76761)
- Some characters could not be inserted into cells of the result grid and displayed the following text-truncation error message: Inserted data has been truncated as the control's limit was reached. Please use the value editor instead for editing such large text data. (Bug #20927915, Bug #76760)
- SQL Editor did not permit the use of DUAL in a derived-table subquery. (Bug #20800341)
- When the resultset grid in SQL Editor was set to a font type and size that exceeded the default row height, the output from a query hid a portion the row content instead of increasing the row height to accommodate the font value. (Bug #20794106, Bug #76520)
- The binlog_group_commit_sync_delay and binlog_group_commit_sync_no_delay_count options that were added in MySQL Server 5.7.5 are now supported, and can be modified using Workbench. (Bug #20712947)
- Russian language connection names failed to load and display properly in the home screen. (Bug #20697403, Bug #76015)
- The innodb_page_size MySQL Server system variable can now be changed to either 32k or 64k in Workbench, in addition to the current options. Support for these larger innodb_page_size values was added in MySQL Server 5.7.6. The default value in MySQL 5.7 is 16k. (Bug #20661249)
- Executing the current statement of a query by using the CTRL+ALT+ENTER keyboard shortcut (Vertical Text Output) partially or fully hid the output. (Bug #20573658, Bug #75959)
- When closing a tab in the SQL Editor, the focus always returned to the first tab regardless of the number of tabs open. This fix returns focus to the preceding tab (to the left) of the closed tab. (Bug #20351753, Bug #75490)
- A valid server connection was required before a script or model file could be viewed or edited. (Bug #20326028, Bug #75452)
- Starting MySQL Workbench from the command line with an optional argument of a script or model file required the absolute (or fully qualified) path name of the file. (Bug #20268606, Bug #75305)
- SQL Editor identified syntax errors in valid statements that executed properly. (Bug #20116982, Bug #74183)
- Font sizes were increased in the Home screen for improved readability. (Bug #19982157, Bug #74721)
- The MySQL Table Editor did not display the name of a selected table within an EER diagram when the editor was first opened. (Bug #19693466, Bug #74102)
- Because the sys schema is installed by default as of MySQL server 5.7.7, MySQL Workbench now checks for and uses it. Otherwise, MySQL Workbench (as it has since 6.1) provides the option to install it

MySQL Workbench 6.3.8 (64-bit)
- Change log not available for this version

MySQL Workbench 6.3.7 (64-bit)
Functionality Added or Changed:
- The Default target MySQL version model preference is now an open text field instead of a dropdown select box. For example, rather than choosing a version such as "5.7", you can now enter a specific version such as 5.7.12.

Bugs Fixed:
- A typo was fixed on the Configure Server Management page.
- On OS X, after creating a new model, and new diagram, right-clicking on the empty diagram background would freeze Workbench.
- Executing Data Import/Restore would emit an unhandled exception with Import from Self-Contained File enabled.
- On Linux, the Table Data Export wizard failed to complete the export process.
- The MySQL Enterprise Backup Restore functionality could emit an unhandled exception under some circumstances.
- Editing a remote MySQL options file via the Options File management tool would emit an unhandled exception after clicking Apply.
- Exporting data to JSON was exporting NULL values as NULL instead of null, thus breaking the JSON output.
- Under Users and Privileges, Workbench did not allow hyphens for host names in the "limit to hosts matching" field.
- When viewing the code for an existing view (SQL to create the view), hexadecimal values were truncated.
- Migrating a MySQL source to a MySQL target database would fail for tables that had generated columns, as the target server rejected attempts to insert data into generated columns.
- Selecting "5.7" from Default target MySQL version did not take into account changes to newer versions, as 5.7 behaved like 5.7.0 instead of a newer version. For example, it was not possible to use the JSON data type for variables inside the stored procedure editor as JSON was added in MySQL 5.7.7.
- The Schema filter was slow (poor performance) when a lot (1000+) of schemas were present.
- The database migration wizard database field was described as "Leave blank to select it later" but this text was updated to read as "Cannot be blank" because it is a required field
- The generated SQL generated by the forward engineering wizard would incorrectly output "VIRTUALCOMMENT" instead of "VIRTUAL COMMENT".
- An new option is available to specify a path to the SSH configuration and/or known hosts file. This option overwrites the defaults.
- Workbench's Alter Table functionality did not behave correctly when a column was defined using a TIMESTAMP with fractional seconds, such as TIMESTAMP(1). In this case, some columns would be hidden from the editor.
- Under Reverse Engineering, the information provided in the wild card description to select objects contained a typo.
- After successfully executing the database migration wizard, executing it a second time required Workbench to be restarted.
- When executing Data Export using a remote MySQL connection, the error resulting from a missing mysqldump binary was unclear.
- The PostgreSQL migration wizard could fail to migrate PostgreSQL databases that were generated with tryton.
- The Dashboard and Server Status reported different Select per second values. The Server Status page reported incorrect (inflated by about 3x) values
- The PostgreSQL migration wizard could fail with an "pg_catalog.pg_enum does not exist" error.
- The Workbench interface would incorrectly orient itself to display as Right-To-Left (RTL) when a system's language is set to a RTL language, despite Workbench not being translated to that language.
- Attempting to test custom connection details (a connection not yet created by Workbench) caused Workbench to fail and exit. The Test Connection functionality only functioned for existing or new connections.
- The "Limit to Hosts Matching" field in the user manager would incorrectly report a "Host name contains incorrect characters" error if the host named contained numeric characters.
- Import and export to JSON format failed if the table had column names that were keywords such as key or value.
- The Alter Table functionality did not detect a default value change from no default value to an empty string. In other words, adding a default value of "" resulted in Workbench reporting "No changes detected".
- The DBMS connection keep-alive interval option did not function properly. As a result, Workbench could lose the connection and result in errors similar to "Error Code: 2013. Lost connection to MySQL server during query".
- All generated paths now will use "/" as the directory separator in order to avoid the "s" being interpreted as a space, such as "C:pathtocertsserver-cert.pem" for generated SSL certificates.
- Importing CSV data with from a properly UTF-8 encoded source would sometimes fail, and instead could result with errors such as "'ascii' codec can't encode character u'xcf' at position 29: ordinal not in range(128)".
- With Fabric, Workbench cached the topology information and did not update it when the topology changed, like when switching to a new master.
- Code completion has been further improved to only show relevant details, such as if a table is referenced in the FROM clause then only show columns from that table and not all from the default schema, and entries have been reordered to show columns first (only preceded by keywords).
- Some stored procedure definitions were incorrectly reported as having invalid syntax.
- Executing Alter Stored Procedure with a user lacking SELECT privileges would crash MySQL Workbench
- With the MySQL Firewall plugin enabled, having a user name containing a single quote character (rare, but not illegal) the queries would fail and produce an error in the Users and Privileges area of Workbench. These checks are now properly escaped.
- With the validate_password plugin enabled, when Workbench attempted to check the strength of a new password by sending a query to the server, the password was not properly escaped in this query. In such cases, the password was incorrectly reported as a strong or weak password. The associated "SELECT VALIDATE_PASSWORD_STRENGTH" query is now properly escaped.
- Some internal Workbench queries failed to execute with sql_mode set to ANSI_QUOTES.
- The Total Time field within the Recent Activity grid of the Online Backup / MySQL Enterprise Backup section of Workbench showed an incorrect duration value.
- With MySQL Server 5.5 and lower, executing Alter Table on tables with partitions would fail with an error similar to "Syntax error: 'PARTITION' (identifier) is not valid input at this position".
- MySQL Workbench lacked a CentOS profile, so could fail to make remote connections to a CentOS machine.
- After opening the stored procedure editor from the object browser, clicking Execute would execute a query that did not take into account the IN parameters.
- On Windows, the "DEFAULT NULL" value could unintentionally be removed from the "Alter Table" window when clicking on it.
- The Database Migration migration link on the home page was not functioning immediately after a successful migration.
- Several grammar and spelling corrections were implemented into the GUI.
- Under certain circumstances, sub-queries were reported as syntax errors
- Several SQL Server 2014 database migration improvements.
- While modeling, pressing the Enter key while editing a document's properties would close the document properties window instead of adding a new line
- When copying tables, Workbench makes one connection at the start to disable triggers, makes a separate connection to do the data copy, then returns to the first connection to re-enable triggers. If the copy takes longer than the server's wait_timeout, the first connection timed out.
- The Driver sends Unicode data as UTF-8 advanced database migration option that is available when using an ODBC driver is now disabled by default. Also, connections could hang when this option was enabled.
- Executing Delete Row(s) after selecting more than six rows from the results grid would not delete all of the selected rows.
- Adding a DATETIME with precision (such as DATETIME(3)) from the Table Editor would eventually get reverted to DATETIME (without precision).
- The search (magnifying glass) icon in the schema search field was misplaced after the left sidebar was resized.
- Workbench will now prompt to continue the execution of operations containing loops in stored procedures, instead of just canceling it after ~200 executions.
- The Performance Schema installation procedure in Workbench failed to check user privileges before attempting the installation. For example, if the user had all privileges except "ALTER ROUTINE", it would update sys.version but fail to complete the installation, and also fail to back out thereby leaving the sys.version as current but none of the functions were updated.
- On Linux and OS X, the Options File viewer shortened (cut) long option names in the GUI, although editing their values changed the correct options.
- MySQL connections were leaked when connecting and disconnecting to MySQL databases. It leaked one connection per re-connect to a database.
- A large database caused the size reported under the Schema Inspector to wrap around and display a negative number.
- From the Options File management feature, clicking Discard with the Advanced tab open would always revert the thread_handling option value to "one-thread-per-connection" even if it was set to "no threads".
- The print preview icon dialog was missing the Workbench icon.
- Changes to the modeling Appearance font preference did not save properly, or have an effect.
- On Windows, the Query Stats graph would not render with MySQL Server 5.7.
- The Query Stats information tab was populated even when the Performance Schema was disabled.
- The Toggle whether execution of SQL script should continue after failed statements button was updated to better indicate when the option is enabled or disabled.
- On Windows, after closing and reopening Workbench with several SQL Editor tabs open, the tabs names were hash values (instead of MySQL connection names) if the connection names contained non-standard text.
- In the Table Editor, if a column has NN checked, and NN is then unchecked, then a default NULL value is automatically added to the CREATE TABLE statement when Apply is clicked. The column then shows a default value of NULL in the Table Editor.
- If a setting is (incorrectly) defined twice in my.ini, Workbench separates its values with a newline ("n"). For example, if sort_buffer_size is defined twice, Workbench displays it as "sort_buffer_size=256Kn256K". Workbench now follows MySQL Server behavior, and uses the last defined option.
- The cursor could seemingly disappear after executing a query, as it could remain at its last position when the query started to execute. (Bug #19703074, Bug #74128)
- The model Page setup... functionality was not always preserved when choosing a size for printing.

MySQL 5.7.19 (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

MySQL 5.7.19 (64-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

MySQL 5.6.36 (32-bit) 查看版本資訊

更新時間: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

MySQL 5.7.18 (32-bit) 查看版本資訊

更新時間: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)

MySQL 5.6.36 (64-bit) 查看版本資訊

更新時間: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

MySQL 5.7.18 (64-bit) 查看版本資訊

更新時間: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)

MySQL 5.7.17 (32-bit) 查看版本資訊

更新時間:2017-04-10
更新細節: