User:Kartik chopade/sandbox

Overview[edit source] MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-brewed lexical analyzer.[18] MySQL works on many system platforms, including AIX, BSDi, FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, macOS, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also exists.[19]

The MySQL server software itself and the client libraries use dual-licensing distribution. They are offered under GPL version 2,[20] beginning from 28 June 2000[21] (which in 2009 has been extended with a FLOSS License Exception)[22] or to use a proprietary license.[23]

Support can be obtained from the official manual.[24] Free support additionally is available in different IRC channels and forums. Oracle offers paid support via its MySQL Enterprise products. They differ in the scope of services and in price. Additionally, a number of third party organisations exist to provide support and services, including MariaDB and Percona.

MySQL has received positive reviews, and reviewers noticed it "performs extremely well in the average case" and that the "developer interfaces are there, and the documentation (not to mention feedback in the real world via Web sites and the like) is very, very good".[25] It has also been tested to be a "fast, stable and true multi-user, multi-threaded sql database server".[26]

History[edit source] MySQL was created by a Swedish company, MySQL AB, founded by David Axmark, Allan Larsson and Michael "Monty" Widenius. Original development of MySQL by Widenius and Axmark began in 1994.[27] The first version of MySQL appeared on 23 May 1995. It was initially created for personal usage from mSQL based on the low-level language ISAM, which the creators considered too slow and inflexible. They created a new SQL interface, while keeping the same API as mSQL. By keeping the API consistent with the mSQL system, many developers were able to use MySQL instead of the (proprietarily licensed) mSQL antecedent.[citation needed][dubious – discuss]

Milestones[edit source] Additional milestones in MySQL development included:

First internal release on 23 May 1995 Version 3.19: End of 1996, from www.tcx.se Version 3.20: January 1997 Windows version was released on 8 January 1998 for Windows 95 and NT Version 3.21: production release 1998, from www.mysql.com Version 3.22: alpha, beta from 1998 Version 3.23: beta from June 2000, production release 22 January 2001[28] Version 4.0: beta from August 2002, production release March 2003 (unions). Version 4.01: beta from August 2003, Jyoti[clarification needed][citation needed] adopts MySQL for database tracking Version 4.1: beta from June 2004, production release October 2004 (R-trees and B-trees, subqueries, prepared statements). Version 5.0: beta from March 2005, production release October 2005 (cursors, stored procedures, triggers, views, XA transactions). The developer of the Federated Storage Engine states that "The Federated Storage Engine is a proof-of-concept storage engine",[29] but the main distributions of MySQL version 5.0 included it and turned it on by default. Documentation of some of the short-comings appears in "MySQL Federated Tables: The Missing Manual".[30] Sun Microsystems acquired MySQL AB in 2008.[31] Version 5.1: production release 27 November 2008 (event scheduler, partitioning, plugin API, row-based replication, server log tables) Version 5.1 contained 20 known crashing and wrong result bugs in addition to the 35 present in version 5.0 (almost all fixed as of release 5.1.51).[32] MySQL 5.1 and 6.0-alpha showed poor performance when used for data warehousing – partly due to its inability to utilize multiple CPU cores for processing a single query.[33] Oracle acquired Sun Microsystems on 27 January 2010.[34][35][36] The day Oracle announced the purchase of Sun, Michael "Monty" Widenius forked MySQL, launching MariaDB, and took a swath of MySQL developers with him.[37] MySQL Server 5.5 was generally available (as of December 2010). Enhancements and features include: The default storage engine is InnoDB, which supports transactions and referential integrity constraints. Improved InnoDB I/O subsystem[38] Improved SMP support[39] Semisynchronous replication. SIGNAL and RESIGNAL statement in compliance with the SQL standard. Support for supplementary Unicode character sets utf16, utf32, and utf8mb4. New options for user-defined partitioning. MySQL Server 6.0.11-alpha was announced[40] on 22 May 2009 as the last release of the 6.0 line. Future MySQL Server development uses a New Release Model. Features developed for 6.0 are being incorporated into future releases. The general availability of MySQL 5.6 was announced in February 2013. New features included performance improvements to the query optimizer, higher transactional throughput in InnoDB, new NoSQL-style memcached APIs, improvements to partitioning for querying and managing very large tables, TIMESTAMP column type that correctly stores milliseconds, improvements to replication, and better performance monitoring by expanding the data available through the PERFORMANCE_SCHEMA.[41] The InnoDB storage engine also included support for full-text search and improved group commit performance. The general availability of MySQL 5.7 was announced in October 2015.[42] MySQL Server 8.0.0-dmr (Milestone Release) was announced 12 September 2016.[43] Release history[edit source] Release	General Availability	Latest minor version	Latest release 5.1	2008-11-14[44]	5.1.73[45]	2013-12-03 5.5	2010-12-03[46]	5.5.57	2017-05-02 5.6	2013-02-05[47]	5.6.37	2017-04-15 5.7	2015-10-21[48]	5.7.19	2017-07-17 8.0	N/A	8.0.3 rc[49]	2017-09-21 Legend:Old versionOlder version, still supportedLatest versionLatest preview version Legal disputes and acquisitions[edit source] On 15 June 2001, NuSphere sued MySQL AB, TcX DataKonsult AB and its original authors Michael ("Monty") Widenius and David Axmark in U.S District Court in Boston for "breach of contract, tortious interference with third party contracts and relationships and unfair competition".[50][51]

In 2002, MySQL AB sued Progress NuSphere for copyright and trademark infringement in United States district court. NuSphere had allegedly violated MySQL's copyright by linking MySQL's GPL'ed code with NuSphere Gemini table without being in compliance with the license.[52] After a preliminary hearing before Judge Patti Saris on 27 February 2002, the parties entered settlement talks and eventually settled.[53] After the hearing, FSF commented that "Judge Saris made clear that she sees the GNU GPL to be an enforceable and binding license."[54]

In October 2005, Oracle Corporation acquired Innobase OY, the Finnish company that developed the third-party InnoDB storage engine that allows MySQL to provide such functionality as transactions and foreign keys. After the acquisition, an Oracle press release mentioned that the contracts that make the company's software available to MySQL AB would be due for renewal (and presumably renegotiation) some time in 2006.[55] During the MySQL Users Conference in April 2006, MySQL issued a press release that confirmed that MySQL and Innobase OY agreed to a "multi-year" extension of their licensing agreement.[56]

In February 2006, Oracle Corporation acquired Sleepycat Software,[57] makers of the Berkeley DB, a database engine providing the basis for another MySQL storage engine. This had little effect, as Berkeley DB was not widely used, and was dropped (due to lack of use) in MySQL 5.1.12, a pre-GA release of MySQL 5.1 released in October 2006.[58]

In January 2008, Sun Microsystems bought MySQL for $1 billion.[59]

In April 2009, Oracle Corporation entered into an agreement to purchase Sun Microsystems,[60] then owners of MySQL copyright and trademark. Sun's board of directors unanimously approved the deal. It was also approved by Sun's shareholders, and by the U.S. government on 20 August 2009.[61] On 14 December 2009, Oracle pledged to continue to enhance MySQL[62] as it had done for the previous four years.

A movement against Oracle's acquisition of MySQL, to "Save MySQL"[63] from Oracle was started by one of the MySQL founders, Monty Widenius. The petition of 50,000+ developers and users called upon the European Commission to block approval of the acquisition. At the same time, several Free Software opinion leaders (including Eben Moglen, Pamela Jones of Groklaw, Jan Wildeboer and Carlo Piana, who also acted as co-counsel in the merger regulation procedure) advocated for the unconditional approval of the merger.[citation needed] As part of the negotiations with the European Commission, Oracle committed that MySQL server will continue until at least 2015 to use the dual-licensing strategy long used by MySQL AB, with proprietary and GPL versions available. The antitrust of the EU had been "pressuring it to divest MySQL as a condition for approval of the merger". But, as revealed by WikiLeaks, the US Department of Justice, at the request of Oracle, pressured the EU to approve the merger unconditionally.[64] The European Commission eventually unconditionally approved Oracle's acquisition of MySQL on 21 January 2010.[65]

In January 2009, before Oracle's acquisition of MySQL, Monty Widenius started a GPL-only fork, MariaDB. MariaDB is based on the same code base as MySQL server 5.5 and aims to maintain compatibility with Oracle-provided versions.[66]