MySQL AB - (Open Source)
MySQL is a successful open source database used in most web applications, e-commerce and online transaction processing.
MySQL is one of the world's most famous and used open source database. The software can be used to manage web applications, e-commerce and online transaction processing since MySQL database incorporates support those transactions. It is also commonly associated with PHP when it comes to managing websites.
With standard JDBC , ODBC, and Net, the developer can choose the programming language. MySQL has the advantage of working with almost all the popular operating systems and communicate easily with programming languages ​​such as C, C + +, VB, C #, PHP, Python, Ruby, Java, Perl, Eiffel, etc.MySQL replication allows you to create profitable applications. In addition, it enables the development of typologies replication complex and massive chain.Its reliability and robustness, performance, ease of use makes MySQL have more success than anticipated.
#Functionality added or changed:
* The InnoDB Plugin is included in MySQL releases, in addition to the built-in version of InnoDB that has been included in previous releases. This version of the InnoDB Plugin is 1.0.4 and is considered of Beta quality.
* Replication: With statement-based logging (SBL), repeatedly calling statements that are unsafe for SBL caused a warning message to be written to the error log for each statement, and there was no way to disable this behavior. Now the server logs messages about statements that are unsafe for statement-based logging only if the log_warnings variable is greater than 0. (Bug#46265)
* The undocumented TRANSACTIONAL and PAGE_CHECKSUM keywords were removed from the grammar. (Bug#45829)
* Previously, SELECT ... INTO OUTFILE dumped column values without character set conversion, which could produce data files that cannot be imported without error if different columns used different character sets. A consequence of this is that mysqldump ignored the --default-character-set option if the --tab option was given (which causes SELECT ... INTO OUTFILE to be used to dump data.)
INTO OUTFILE now can be followed by a CHARACTER SET clause indicating the character set to which dumped values should be converted. Also, mysqldump adds a CHARACTER SET clause to the SELECT ... INTO OUTFILE statement used to dump data, so that --default-character-set is no longer ignored if --tab is given.
Other changes are that SELECT ... INTO OUTFILE enforces that ENCLOSED BY and ESCAPED BY arguments must be a single character, and SELECT ... INTO OUTFILE and LOAD DATA INFILE produce warnings if non-ASCII field or line separators are specified. (Bug#30946)
* The MySQL euckr character set now can store extended codes [81...FE][41..5A,61..7A,81..FE], which makes euckr compatible with the Microsoft cp949 character set.
#Bugs fixed:
* Partitioning: Attempting to create a table using an invalid or inconsistent subpartition definition caused the server to crash. An example of such a statement is shown here:
CREATE TABLE t2 (s1 INT, s2 INT)
PARTITION BY LIST (s1) SUBPARTITION BY HASH (s2) SUBPARTITIONS 1
(
PARTITION p1 VALUES IN (1),
PARTITION p2 VALUES IN (2) (SUBPARTITION p3)
);
(Bug#46354)
* Partitioning: When using a debug build of MySQL, if a query against a partitioned table having an index on one or more DOUBLE columns used that index, the server failed with an assertion. (Bug#45816)
* Partitioning: A failed RENAME TABLE operation on a table with user-defined partitioning left the table in an unusable state, due to only some of the table files having been renamed. (Bug#30102)
* Replication: When a statement that changes a non-transactional table failed, the transactional cache was flushed, causing a mismatch between the execution and logging histories. Now we avoid flushing the transactional cache unless a COMMIT or ROLLBACK is issued. (Bug#46129)
* Replication: The internal function get_master_version_and_clock() (defined in sql/slave.cc) ignored errors and passed directly when queries failed, or when queries succeeded but the result retrieved was empty. Now this function tries to reconnect the master if a query fails due to transient network problems, and to fail otherwise. The I/O thread now prints a warning if the some system variables do not exist on master (in the event the master is a very old version of MySQQL, compared to the slave.) (Bug#45214)
* Replication: When using the MIXED logging format, after creating a temporary table and performing an update that switched the logging format to ROW, the format switch persisted following the update. This prevented any subsequent DDL statements on temporary tables from being written to the binary log until the temporary table was dropped. (Bug#43046) See also Bug#40013.
This regression was introduced by Bug#20499.
* Replication: If the --log-bin-trust-function-creators option is not enabled, CREATE FUNCTION requires one of the modifiers DETERMINISTIC, NO SQL, or READS SQL DATA. When using statement-based mode, the execution of a stored function should follow the same rules; however, only functions defined with DETERMINSTIC could actually be executed. In addition, the wrong error was generated (ER_BINLOG_ROW_RBR_TO_SBR instead of ER_BINLOG_UNSAFE_ROUTINE).
Now execution of stored functions is compatible with creation in this regard; when a stored function without one of the modifiers above is executed in STATEMENT mode, the correct error is raised, and functions defined using NO SQL, READS SQL DATA, or both (that is, without using DETERMINSTIC) can be excuted. (Bug#41166)
* The test suite was missing from RPM packages. (Bug#46834)
* Incorrect index optimization could lead to incorrect results or server crashes. (Bug#46454)
* The server printed warnings at startup about adjusting the value of the max_join_size system variable. (These were harmless, but might be seen by users as significant.) (Bug#46385)
* After an error such as a table-full condition, INSERT IGNORE could cause an assertion failure for debug builds. (Bug#46075)
* An optimization that moved an item from a subquery to an outer query could cause a server crash. (Bug#46051)
* Several Valgrind warnings were corrected. (Bug#46003, Bug#46034, Bug#46042)
* CREATE TABLE ... SELECT could cause a server crash if no default database was selected. (Bug#45998)
* For problems reading SSL files during SSL initialization, the server wrote error messages to stderr rather than to the error log. (Bug#45770)
* The vendor name change from MySQL AB to Sun Microsystems, Inc. in RPM packages was not handled gracefully when upgrading MySQL using an RPM package. (Bug#45534)
* A Windows Installation using the GUI installer would fail with:
MySQL Server 5.1 Setup Wizard ended prematurely
The wizard was interrupted before MySQL Server 5.1. could be completely installed. Your system has not been modified. To complete installation at another time, please run setup again. Click Finish to exit the wizard. This was due to an step in the MSI installer that could fail to execute correctly on some environments. (Bug#45418)
* Invalid memory reads could occur using the compressed client/server protocol. (Bug#45031)
* The mysql_real_connect() C API function only attempted to connect to the first IP address returned for a hostname. This could be a problem if a hostname mapped to multiple IP address and the server was not bound to the first one returned. Now mysql_real_connect() attempts to connect to all IPv4/6 addresses that a domain name maps to. (Bug#45017)
* Invalid input could cause invalid memory reads by the parser. (Bug#45010)
* Some files in an AIX tar file distribution unpacked with incorrect permissions. (Bug#44647)
* For debug builds, executing a stored procedure as a prepared statement could sometimes cause an assertion failure. (Bug#44521)
* Using mysql_stmt_execute() to call a stored procedure could cause a server crash. (Bug#44495)
* Creating a new instance after previously removing an instance would fail to complete the installation properly because the security settings could not be applied correctly. (Bug#44428)
* mysqlslap ignored the --csv option if it was given without an argument. (Bug#44412)
* Enabling the event scheduler from within the file specified by --init-file caused a server crash. (Bug#43587)
* The server did not always check the return value of calls to the hash_init() function. (Bug#43572)
* The table cache lock (LOCK_open) is now an adaptive mutex, which should improve performance in workloads where this lock is heavily contended. (Bug#43435)
* mysqladmin --count=X --sleep=Y incorrectly delayed Y seconds after the last iteration before exiting. (Bug#42639)
* A test for stack growth failed on some platforms, leading to server crashes. (Bug#42213)
* mysqladmin did not have enough space allocated for tracking all variables when using --vertical or --relative with extended-status. (Bug#40395)
* Partitioning a log table caused a server crash. (Bug#40281)
* When using quick access methods to search for rows in UPDATE and DELETE statements, there was no check whether a fatal error had already been sent to the client while evaluating the quick condition. Consequently, a false OK (following the error) was sent to the client, causing the error to be incorrectly transformed into a warning. (Bug#40113)
* SHOW PROCESSLIST could access freed memory of a stored procedure run in a concurrent session. (Bug#38816)
* During installation on Windows, the MySQL Instance Configuration Wizard window could be opened at a size too small to be usable. (Bug#38723)
* make_binary_distribution did not always generate correct distribution names. (Bug#37808)
* The server crashed when executing a prepared statement containing a duplicated MATCH() function call in the select list and ORDER BY clause; for example, SELECT MATCH(a) AGAINST('test') FROM t1 ORDER BY MATCH(a) AGAINST('test'). (Bug#37740)
* The output of mysqldump --tab for views included a DROP TABLE statement without the IF EXISTS qualifier. (Bug#37377)
* mysql_upgrade silently ignored the --basedir and --datadir options, which it accepts for backward compatibility. Now it prints a warning. (Bug#36558)
* mysqlimport was not always compiled correctly to enable thread support, which is required for the --use-threads option. (Bug#32991)
* mysqlcheck failed to fix table names when the --fix-table-names and --all-in-1 options were both specified. (Bug#31821)
* If the MySQL server was killed without the PID file being removed, attempts to stop the server with mysql.server stop waited 900 seconds before giving up. (Bug#31785)
* When performing an installation on Windows using the GUI installer, the installer would fail to wait long enough during installation for the MySQL service to be installed, which would cause the installation to fail and may cause security settings, such as the root password to not be applied correctly. (Bug#30525)
* mysql included extra spaces at the end of some result set lines. (Bug#29622)
* The mysql client inconsistently handled NUL bytes in column data in various output formats. (Bug#28203)
* mysqlimport did not correctly quote and escape table identifiers and file names. (Bug#28071)
* When installing the Windows service, using quotes around command-line configuration parameters could cause the quotes to incorrectly placed around the entire command-line option, and not just the value. (Bug#27535)
* If the mysql client was built with the readline library and the .inputrc file mapped Space to the magic-space function, it became impossible to enter spaces. (Bug#27439)
* If InnoDB reached its limit on the number of concurrent transactions (1023), it wrote a descriptive message to the error log but returned a misleading error message to the client, or an assertion failure occurred. (Bug#18828)