MySQL (64-bit) 歷史版本列表
MySQL 64 位專為企業組織提供關鍵業務數據庫應用程序而設計。它為企業開發人員,數據庫管理員和 ISV 提供了一系列新的企業功能,以提高開發,部署和管理工業強度應用程序的效率.如果您需要 MySQL 數據庫的 GUI,可以下載 - NAVICAT(MySQL GUI)。它支持將 MySQL,MS SQL,MS Access,Excel,CSV,XML 或其他格式導入到 MySQL.MySQL... MySQL (64-bit) 軟體介紹更新時間:2011-05-08
更新細節:
What's new in this version:
Bugs fixed:
- InnoDB Storage Engine: Replication: Trying to update a column, previously set to NULL, of an InnoDB table with no primary key caused replication to fail with Can't find record in 'table' on the slave.
- InnoDB Storage Engine: The server could halt if InnoDB interpreted a very heavy I/O load for 15 minutes or more as an indication that the server was hung. This change fixes the logic that measures how long InnoDB threads were waiting, which formerly could produce false positives.
- InnoDB Storage Engine: With the setting lower_case_table_names=2, inserts into InnoDB tables covered by foreign key constraints could fail after a server restart.
- Replication: Using the --server-id option with mysqlbinlog could cause format description log events to be filtered out of the binary log, leaving mysqlbinlog unable to read the remainder of the log. Now such events are always read without regard to the value of this option.
- As part of the the fix for this problem, mysqlbinlog now also reads rotate log events without regard to the value of --server-id.
- On Windows, the server rejected client connections if no DNS server was available.
- mysql_upgrade did not properly upgrade the authentication_string column of the mysql.user table.
- InnoDB invoked some zlib functions without proper initialization.
- Comparison of a DATETIME stored program variable and NOW() led to an “Illegal mix of collations error” when character_set_connection was set to utf8. (Bug #60625, Bug #11926811)
- Selecting from a view for which the definition included a HAVING clause failed with an error:
* 1356: View '...' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
- CREATE TABLE syntax permits specification of a STORAGE {DEFAULT|DISK|MEMORY} option. However, this value was not written to the .frm file, so that a subsequent CREATE TABLE ... LIKE for the table did not include that option.
* Also, ALTER TABLE of a table that had a tablespace incorrectly destroyed the tablespace.
- The server permitted max_allowed_packet to be set lower than net_buffer_length, which does not make sense because max_allowed_packet is the upper limit on net_buffer_length values. Now a warning occurs and the value remains unchanged.
- A missing variable initialization for Item_func_set_user_var objects could cause an assertion to be raised.
- When the server was started with the --skip-innodb option, it initialized the have_innodb system variable to YES rather than DISABLED.
- In Item_func_month::val_str(), a Valgrind warning for a too-late NULL value check was corrected.
- In Item::get_date, a Valgrind warning for a missing NULL value check was corrected.
- In extract_date_time(), a Valgrind warning for a missing end-of-string check was corrected.
- In string context, the MIN() and MAX() functions did not take into account the unsignedness of a BIGINT UNSIGNED argument.
- In Item_func::val_decimal, a Valgrind warning for a missing NULL value check was corrected.
- In Item_func_str_to_date::val_str, a Valgrind warning for an uninitialized variable was corrected.
- An assertion could be raised in Item_func_int_val::fix_num_length_and_dec() due to overflow for geometry functions.
- With prepared statements, the server could attempt to send result set metadata after the table had been closed.
- With lower_case_table_names=2, resolution of objects qualified by database names could fail.
- SHOW EVENTS did not always show events from the correct database.
更新時間:2011-04-08
更新細節:
What's new in this version:
Bugs fixed:
- Partitioning: A problem with a previous fix for poor performance of INSERT ON DUPLICATE KEY UPDATE statements on tables having many partitions caused the handler function for reading a row from a specific index to fail to store the ID of the partition last used. This caused some statements to fail with Can't find record errors.
- An assertion was raised if an XA COMMIT was issued when an XA transaction had already encountered an error (such as a deadlock) that required the transaction to be rolled back.
- On some systems, debug builds of comp_err.c could fail due to an uninitialized variable.
- The server read one byte too many when trying to process an XML string lacking a closing quote (') or double quote (") character used as an argument for UpdateXML() or ExtractValue().
- Attempting to create a spatial index on a CHAR column longer than 31 bytes led to an assertion failure if the server was compiled with safemutex support.
- Aggregation followed by a subquery could produce an incorrect result.
- An incorrect character set pointer passed to my_strtoll10_mb2() caused an assertion to be raised.
- mysqldump did not quote database names in ALTER DATABASE statements in its output, which could cause an error at reload time for database names containing a dash.
- The MYSQL_HOME environment variable was being ignored.
- If a multiple-table update updated a row through two aliases and the first update physically moved the row, the second update failed to locate the row. This resulted in different errors depending on storage engine, although these errors did not accurately describe the problem:
- MyISAM: Got error 134 from storage engine
- InnoDB: Can't find record in 'tbl'
For MyISAM, which is nontransactional, the update executed first was performed but the second was not. In addition, for two equal multiple-table update statements, one could succeed and the other fail depending on whether the record actually moved, which is inconsistent.
Now such an update returns an error if it will update a table through multiple aliases, and perform an update that may physically more the row in at least one of these aliases.
- SHOW WARNINGS output following EXPLAIN EXTENDED could include unprintable characters.
- When CASE ... WHEN arguments had different character sets, 8-bit values could be referenced as utf16 or utf32 values, causing an assertion to be raised.
- Bitmap functions used in one thread could change bitmaps used by other threads, causing an assertion to be raised.
更新時間:2011-03-16
更新細節:
What's new in this version:
Bugs fixed:
- InnoDB Storage Engine: Raised the number of I/O requests that each AIO helper thread could process, from 32 to 256. The new limit applies to Linux and Unix platforms; the limit on Windows remains 32.
- InnoDB Storage Engine: InnoDB returned values for “rows examined” in the query plan that were higher than expected. NULL values were treated in an inconsistent way. The inaccurate statistics could trigger “false positives” in combination with the MAX_JOIN_SIZE setting, because the queries did not really examine as many rows as reported.
- Replication: When using the statement-based logging format, INSERT ON DUPLICATE KEY UPDATE and INSERT IGNORE statements affecting transactional tables that did not fail were not written to the binary log if they did not insert any rows. (With statement-based logging, all successful statements should be logged, whether they do or do not cause any rows to be changed.)
- Replication: Formerly, STOP SLAVE stopped the slave I/O thread first and then stopped the slave SQL thread; thus, it was possible for the I/O thread to stop after replicating only part of a transaction which the SQL thread was executing, in which case—if the transaction could not be rolled back safely—the SQL thread could hang.
Now, STOP SLAVE stops the slave SQL thread first and then stops the I/O thread; this guarantees that the I/O thread can fetch any remaining events in the transaction that the SQL thread is executing, so that the SQL thread can finish the transaction if it cannot be rolled back safely.
- DES_DECRYPT() could crash if the argument was not produced by DES_ENCRYPT().
- The server and client did not always properly negotiate authentication plugin names.
- --autocommit=ON did not work (it set the global autocommit value to 0, not 1).
- A query of the following form returned an incorrect result, where the values for col_name in the result set were entirely replaced with NULL values:
SELECT DISTINCT col_name ... ORDER BY col_name DESC;
- SHOW PRIVILEGES did not display a row for the PROXY privilege.
- SHOW PROFILE could truncate source file names or fail to show function names.
- DELETE or UPDATE statements could fail if they used DATE or DATETIME values with a year, month, or day part of zero.
- The ESCAPE clause for the LIKE operator allows only expressions that evaluate to a constant at execution time, but aggregate functions were not being rejected.
- Memory leaks detected by Valgrind, some of which could cause incorrect query results, were corrected.
- The DEFAULT_CHARSET and DEFAULT_COLLATION CMake options did not work.
- An OUTER JOIN query using WHERE column IS NULL could return an incorrect result.
- Starting the server with the --defaults-file=file_name option, where the file name had no extension, caused a server crash.
- Outer joins with an empty table could produce incorrect results.
- In debug builds, SUBSTRING_INDEX(FORMAT(...), FORMAT(...)) could cause a server crash.
- When mysqladmin was run with the --sleep and --count options, it went into an infinite loop executing the specified command.
- Some string manipulating SQL functions use a shared string object intended to contain an immutable empty string. This object was used by the SQL function SUBSTRING_INDEX() to return an empty string when one argument was of the wrong datatype. If the string object was then modified by the SQL function INSERT(), undefined behavior ensued.
- Parsing nested regular expressions could lead to recursion resulting in a stack overflow crash.
- The fix for Bug#25192 caused load_defaults() to add an argument separator to distinguish options loaded from configure files from those provided on the command line, whether or not the application needed it.
- The mysql client went into an infinite loop if the standard input was a directory.
- Outer joins on a unique key could return incorrect results.
- The expression const1 BETWEEN const2 AND field was optimized incorrectly and produced incorrect results.
- Some RPM installation scripts used a hardcoded value for the data directory, which could result in a failed installation for users who have a nonstandard data directory location. The same was true for other configuration values such as the PID file name.
- On FreeBSD and OpenBSD, the server incorrectly checked the range of the system date, causing legal values to be rejected.
- Sorting using ORDER BY AVG(DISTINCT decimal_col) caused a server crash or incorrect results.
- When using ExtractValue() or UpdateXML(), if the XML to be read contained an incomplete XML comment, MySQL read beyond the end of the XML string when processing, leading to a crash of the server.
- DATE_ADD() and DATE_SUB() return a string if the first argument is a string, but incorrectly returned a binary string. Now they return a character string with a collation of connection_collation.