MySQL Community Edition is a freely downloadable version of the world's most popular open source database that is supported by an active community of open source developers and enthusiasts.
MySQL delivers enterprise features, including:
- Partitioning to improve performance and management of very large database environments
- Row-based/Hybrid Replication for improved replication security
- Event Scheduler to create and schedule jobs that perform various database tasks
- XPath Support
- Dynamic General/Slow Query Log
- Performance/Load Testing Utility (mysqlslap)
- Improved! Full Text Search (faster, new dev templates)
- Improved! Archive engine (better compression, more features)
- Improved! User session and problem SQL identification
- Improved! MySQL embedded library (libmysqld)
- Additional INFORMATION_SCHEMA objects
- Faster data import operations (parallel file load)
- ACID Transactions to build reliable and secure business critical applications
- Stored Procedures to improve developer productivity
- Triggers to enforce complex business rules at the database level
- Views to ensure sensitive information is not compromised
- Information Schema to provide easy access to metadata
- Pluggable Storage Engine Architecture for maximum flexibility
- Archive Storage Engine for historical and audit data
# Bugs fixed:
* InnoDB Storage Engine: If the server crashed while an XA transaction was prepared but not yet committed, the transaction could remain in the system after restart, and cause a subsequent shutdown to hang.
* InnoDB Storage Engine: Similar problem to the foreign key error in bug #11831040 / 60196 / 60909, but with a different root cause and occurring on Mac OS X. With the setting lower_case_table_names=2, inserts into InnoDB tables covered by foreign key constraints could fail after a server restart.
* Partitioning: The internal get_partition_set() function did not take into account the possibility that a key specification could be NULL in some cases.
* Partitioning: When executing a row-ordered retrieval index merge, the partitioning handler used memory from from that allocated for the table, rather than that allocated to the query, causing table object memory not to be freed until the table was closed.
* Replication: A spurious error malformed binlog: it does not contain any Format_description_log_event... was generated when mysqlbinlog was invoked using --base64-output=decode-row and --start-position=pos, where pos is a point in the binary log past the format description log event. However, there is nothing unsafe about not printing the format description log event, so the error has been removed for this case.
* Replication: Typographical errors appeared in the text of several replication error messages. (The word “position” was misspelled as “postion”.)
* Assignments to NEW.var_name within triggers, where var_name had a BLOB or TEXT type, were not properly handled and produced incorrect results.
* XA COMMIT could fail to clean up the error state if it discovered that the current XA transaction had to be rolled back. Consequently, the next XA transaction could raise an assertion when it checked for proper cleanup of the previous transaction.
* An internal client macro reference was removed from the client_plugin.h header file. This reference made the file unusable.
* The server consumed memory for repeated invocation of some stored procedures, which was not released until the connection terminated.
* The server did not check for certain invalid out of order sequences of XA statements, and these sequences raised an assertion.
* With the conversion from GNU autotools to CMake for configuring MySQL, the USE_SYMDIR preprocessor symbol was omitted. This caused failure of symbolic links (described at Section 18.104.22.168, “Using Symbolic Links”).
* The incorrect max_length value for YEAR values could be used in temporary result tables for UNION, leading to incorrect results.
* In Item_func_in::fix_length_and_dec(), a Valgrind warning for uninitialized values was corrected.
* In ROUND() calculations, a Valgrind warning for uninitialized memory was corrected.
* Valgrind warnings caused by comparing index values to an uninitialized field were corrected.
* LOAD DATA INFILE errors could leak I/O cache memory.
* For LOAD DATA INFILE, multibyte character sequences could be pushed onto a stack too small to accommodate them.
* Internal Performance Schema header files were unnecessarily installed publicly.
* On Linux, the mysql client built using the bundled libedit did not read ~/.editrc.
* The optimizer sometimes incorrectly processed HAVING clauses for queries that did not also have an ORDER BY clause.
* PROCEDURE ANALYZE() could leak memory for NULL results, and could return incorrect results if used with a LIMIT clause.
* With DISTINCT CONCAT(col,...) returned incorrect results when the arguments to CONCAT() were columns with an integer data type declared with a display width narrower than the values in the column. (For example, if an INT(1) column contain 1111.)