Jump to content

MySQL: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverted edit by TheTrueRavenReaper (talk) to last version by CmdrDan
 
Line 1: Line 1:
{{short description|SQL database engine software}}
{{Infobox_Software|
{{Use dmy dates|date=November 2020}}
name = MySQL
{{Infobox software
|logo = <br>[[Image:MySQL.png|200px]]
| title =
|caption =
|developer = [[MySQL AB]]
| name = MySQL
| logo = MySQL logo.svg
|latest_release_version = 5.0.18
| logo size = 100px
|latest_release_date = [[December 30]], [[2005]]
| logo alt =
|operating_system = [[Cross-platform]]
| logo caption =
|genre = [[RDBMS]]
| screenshot = Mysql-screenshot.PNG
|license = [[GPL]] or [http://www.mysql.com/company/legal/licensing/commercial-license.html Commercial License]
| screenshot size =
|website = [http://www.mysql.com www.mysql.com]
| screenshot alt =
| caption = [[Screenshot]] of the default MySQL command-line banner and prompt
| collapsible =
| author = [[MySQL AB]]
| developer = [[Oracle Corporation]]
| released = {{Start date and age|1995|05|23|df=yes}}
| latest release version = <!-- If you update [[Template:MySQL version]], it will automatically update this page and [[List of content management systems]]--> {{MySQL version}}
| latest release date = {{MySQL version|releasedate}}
| programming language = [[C (programming language)|C]], [[C++]]<ref>{{cite web |url=http://www.ohloh.net/p/mysql/analyses/latest |title=MySQL: Project Summary |work=Ohloh |publisher=Black Duck Software |access-date=17 September 2012 |archive-date=7 July 2012 |archive-url=https://web.archive.org/web/20120707023450/http://www.ohloh.net/p/mysql/analyses/latest |url-status=dead }}</ref>
| operating system = [[Linux]], [[Solaris (operating system)|Solaris]], [[macOS]], [[Microsoft Windows|Windows]], [[FreeBSD]]<ref>{{cite web|url=http://www.mysql.com/support/supportedplatforms/database.html |title=Supported Platforms: MySQL Database |publisher=Oracle |access-date=24 March 2014}}</ref>
| platform =
| size =
| language = [[English language|English]]
| genre = [[Relational database management system|RDBMS]]
| license = [[GNU General Public License|GPLv2]] or [[Proprietary software|proprietary]]<ref>{{cite web|url=http://www.mysql.com/downloads/ |title=Downloads |publisher=MySQL |access-date=2014-08-03}}</ref>
| standard =
}}
}}
[[Image:Monty-Widenius-David-Axmark-MySQL-2003-05-09.jpg|thumb|200px|David Axmark (left) and Michael "Monty" Widenius, Founders of MySQL AB, at a conference]]
'''MySQL''' is a [[Thread (computer science)|multithread]]ed, [[multi-user]], [[SQL]] (Structured Query Language) Database Management System ([[DBMS]]) with an estimated six million installations. [[MySQL AB]] makes MySQL available as [[free software]] under the [[GNU General Public License]] (GPL), but they also [[dual license|dual-license]] it under traditional [[proprietary software|proprietary]] licensing arrangements for cases where the intended use is incompatible with the GPL.


'''MySQL''' ({{IPAc-en|ˌ|m|aɪ|ˌ|ɛ|s|ˌ|k|juː|ˈ|ɛ|l}})<ref name="whatismysql">{{cite web|url=https://dev.mysql.com/doc/refman/8.0/en/what-is-mysql.html|title=What is MySQL?|work=MySQL 8.0 Reference Manual|publisher=Oracle Corporation|access-date=2020-04-03|quote=The official way to pronounce "MySQL" is "My Ess Que Ell" (not "my sequel"), but we do not mind if you pronounce it as "my sequel" or in some other localized way.}}</ref> is an [[Open-source software|open-source]] [[relational database management system]] (RDBMS).<ref name="whatismysql" /><ref>{{cite web|url=http://db-engines.com/en/ranking/relational+dbms|title=DB-Engines Ranking of Relational DBMS|website=DB-Engines|publisher=solidIT consulting & software development GmbH|access-date=2020-04-03}}</ref> Its name is a combination of "My", the name of co-founder [[Michael Widenius]]'s daughter My,<ref>{{cite web|url=https://dev.mysql.com/doc/refman/8.0/en/history.html|title=History of MySQL|work=MySQL 8.0 Reference Manual|publisher=Oracle Corporation|access-date=2020-04-03|quote=MySQL is named after co-founder Monty Widenius's daughter, My.}}</ref> and "SQL", the acronym for [[Structured Query Language]]. A [[relational database]] organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an [[operating system]] to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.
Unlike projects such as [[Apache HTTP Server|Apache]], where the software is developed by a public community, and the copyright to the codebase is owned by its individual authors, MySQL is owned and sponsored by a single for-profit firm, the [[Sweden|Swedish]] company [[MySQL AB]], which holds the copyright to most of the codebase<!-- Doesn't hold the rights to some fluff like InnoDB-->. The company develops and [[Software maintenance|maintains]] the system, selling support and [[service]] [[contract]]s, as well as [[proprietary software|proprietary]]-licensed copies of MySQL, and employing people all over the world who collaborate via the [[Internet]]. Two Swedes and a [[Finland|Finn]] founded MySQL AB: [[David Axmark]], [[Allan Larsson]], and [[Michael (Monty) Widenius|Michael "Monty" Widenius]].


MySQL is [[free and open-source software]] under the terms of the [[GNU General Public License]], and is also available under a variety of [[proprietary software|proprietary]] licenses. MySQL was owned and sponsored by the [[Sweden|Swedish]] company [[MySQL AB]], which was bought by [[Sun Microsystems]] (now [[Oracle Corporation]]).<ref name="sunacquire">{{cite press release |title=Sun Microsystems Announces Completion of MySQL Acquisition; Paves Way for Secure, Open Source Platform to Power the Network Economy |publisher=Sun Microsystems |date=26 February 2008 |url=http://www.sun.com/aboutsun/pr/2008-02/sunflash.20080226.1.xml |access-date=17 September 2012 |archive-url=https://web.archive.org/web/20080228025123/http://www.sun.com/aboutsun/pr/2008-02/sunflash.20080226.1.xml |archive-date=28 February 2008}}</ref> In 2010, when [[Acquisition of Sun Microsystems by Oracle Corporation|Oracle acquired Sun]], Widenius [[Fork (software development)|forked]] the [[open-source]] MySQL project to create [[MariaDB]].<ref>{{Cite web|last=Pearce|first=Rohan|date=2013-03-28|title=Dead database walking: MySQL's creator on why the future belongs to MariaDB|url=https://www.computerworld.com/article/3463901/dead-database-walking-mysql-s-creator-on-why-the-future-belongs-to-mariadb.html|url-status=dead|archive-url=https://web.archive.org/web/20200703115804/https://www.computerworld.com/article/3463901/dead-database-walking-mysql-s-creator-on-why-the-future-belongs-to-mariadb.html|archive-date=2020-07-03|access-date=2020-04-03|website=[[Computerworld]]|language=en|quote=The day the Sun purchase was announced, Widenius responded [...] — he forked MySQL, launching MariaDB [...]}}</ref>
==Programming languages==
There are [[application programming interface|API]]s available that allow applications written in numerous [[programming language|programming languages]] to access MySQL databases, including: [[C programming language|C]], [[C++]], [[C Sharp|C#]], [[Eiffel programming language|Eiffel]], [[Smalltalk programming language|Smalltalk]], [[Java programming language|Java]] (with a native Java driver implementation), [[Lisp programming language|Lisp]], [[Perl]], [[PHP]], [[Python programming language|Python]], [[Ruby programming language|Ruby]], [[REALbasic]] and [[Tcl]]; each of these uses a specific API. An [[ODBC]] interface called [[MyODBC]] allows additional programming languages that support the [[ODBC]] interface to communicate with a MySQL database, such as [[Active Server Pages|ASP]]. MySQL is mostly implemented in [[ANSI]] C, and, that being a common "lingua franca" for system libraries, tends to use that as its "native" language.


MySQL has stand-alone clients that allow users to interact directly with a MySQL database using SQL, but more often, MySQL is used with other programs to implement applications that need relational database capability. MySQL is a component of the [[LAMP (software bundle)|LAMP]] [[web application]] [[software stack]] (and [[List of AMP packages|others]]), which is an acronym for ''[[Linux]], [[Apache HTTP Server|Apache]], MySQL, [[Perl]]/[[PHP]]/[[Python (programming language)|Python]]''. MySQL is used by many database-driven web applications, including [[Drupal]], [[Joomla]], [[phpBB]], and [[WordPress]].<ref>{{cite web|url=https://archive.nytimes.com/www.nytimes.com/external/idg/2010/03/08/08idg-wordpress-guns-for-web-content-management-duties-87311.html|title=WordPress Guns for Web Content Management Duties|quote=WordPress, created in 2003, uses a variety of open-source programs and open standards, such as PHP, MySQL, JavaScript, HTML and CSS.|first=Joab|last=Jackson|website=[[The New York Times]]|date=March 8, 2010|access-date=August 24, 2023|language=en-US}}</ref> MySQL is also used by many popular [[website]]s, including [[Facebook]],<ref>{{cite web|url=http://blog.facebook.com/blog.php?post=7899307130|title=Keeping Up|last=Sobel|first=Jason|date=2007-12-21|work=The Facebook Blog|publisher=Facebook|url-status=dead|archive-url=https://web.archive.org/web/20090618191723/http://blog.facebook.com/blog.php?post=7899307130|archive-date=2009-06-18|access-date=2009-06-18|quote=[...] Facebook's data is stored in MySQL database servers [...]}}</ref><ref>{{Cite web|url=https://engineering.fb.com/core-data/myrocks-a-space-and-write-optimized-mysql-database/|title=MyRocks: A space- and write-optimized MySQL database|last=Matsunobu|first=Yoshinori|date=2016-08-31|website=Facebook Engineering|language=en-US|url-status=live|archive-url=https://web.archive.org/web/20200307113840/https://engineering.fb.com/core-data/myrocks-a-space-and-write-optimized-mysql-database/|archive-date=2020-03-07|access-date=2020-03-07|quote=At Facebook we use MySQL to manage many petabytes of data, along with the InnoDB storage engine [...]}}</ref> [[Flickr]],<ref>{{Cite web|url=http://code.flickr.net/2010/02/08/using-abusing-and-scaling-mysql-at-flickr/|title=Using, Abusing and Scaling MySQL at Flickr|last=Elliott-McCrea|first=Kellan|date=2010-02-08|website=code.flickr.com|access-date=2020-04-03|quote=[...] at Flickr, MySQL is our hammer, and we use it for nearly everything. It's our federated data store, our key-value store, and our document store.}}</ref> [[MediaWiki]],<ref>{{Cite web|url=https://www.mediawiki.org/wiki/Manual:MySQL|title=Manual:MySQL|website=www.mediawiki.org|publisher=MediaWiki, The Free Wiki Engine|access-date=2020-04-03|quote=The MySQL and MariaDB database engines are the most commonly-used database backends for MediaWiki.}}</ref> [[Twitter]],<ref>{{Cite web|url=https://blog.twitter.com/engineering/en_us/topics/infrastructure/2017/the-infrastructure-behind-twitter-scale.html|title=The Infrastructure Behind Twitter: Scale|last=Hashemi|first=Mazdak|date=2017-01-19|website=blog.twitter.com|language=en-us|access-date=2020-04-03|quote=SQL: This includes MySQL, PostgreSQL and Vertica. MySQL/PosgreSQL are used where we need strong consistency [...]}}</ref> and [[YouTube]].<ref>{{cite book|author1=Mehta, Chintan|author2=K Bhavsar, Ankit|author3=Oza, Hetal|author4=Shah, Subhash |date= February 15, 2018 |title=MySQL 8 Administrator's Guide: Effective Guide to Administering High-performance MySQL 8 Solutions|url=https://books.google.com/books?id=EJdMDwAAQBAJ&dq=%22YouTube%22+%2B+%22MySQL%22&pg=PA32|publisher=[[Packt Publishing]]|page=32|isbn=9781788393843}}</ref>
==Uses==
MySQL is popular for [[web application|web applications]] like [[MediaWiki]] and [[PHP-Nuke]] and acts as the database component of the [[LAMP (software bundle)|LAMP]] platform (Linux-Apache-MySQL-PHP/Perl/Python). Its popularity as a web application is closely tied to the popularity of [[PHP]], which is often combined with MySQL and nicknamed the ''Dynamic Duo''. It is easy to find many references that combine the two in websites and books (''PHP and MySQL for Dummies'', ''PHP and MySQL Bible'', ''Beginning PHP and MySQL'', etc.) The claim made in many books is that MySQL is easier to learn and use than many other database applications. An example from the ''Dummies'' book is that you can quit MySQL with an obvious command of either ''exit'' or ''quit'', although this is true for many other database applications.


==Administration==
==Overview==
MySQL is written in [[C (programming language)|C]] and [[C++]]. Its SQL parser is written in [[yacc]], but it uses a home-brewed [[Lexical analysis|lexical analyzer]].<ref>{{cite web |date=4 March 2009 |title=MySQL Internals Manual |url=http://dev.mysql.com/doc/internals/en/index.html |access-date=8 June 2009 |website=dev.mysql.com }}</ref> MySQL works on many [[system platform]]s, including [[AIX operating system|AIX]], [[BSD/OS|BSDi]], [[FreeBSD]], [[HP-UX]], [[ArcaOS]], [[eComStation]], [[IBM i]], [[IRIX]], [[Linux]], [[macOS]], [[Microsoft Windows]], [[NetBSD]], [[Novell NetWare]], [[OpenBSD]], [[OpenSolaris]], [[OS/2]] Warp, [[QNX]], [[Solaris (operating system)|Oracle Solaris]], [[Symbian]], [[SunOS]], [[SCO OpenServer]], SCO [[UnixWare]], Sanos and [[Tru64 UNIX|Tru64]]. A port of MySQL to [[OpenVMS]] also exists.<ref>{{cite web |date=2011-03-30 |title=MySQL for OpenVMS |url=http://www.vmsmysql.org/ |url-status=dead |access-date=2014-01-16 |publisher=vmsmysql.org |archive-date=12 May 2014 |archive-url=https://web.archive.org/web/20140512060500/http://www.vmsmysql.org/ }}</ref>
To administer MySQL databases one can use the included [[Command line|command-line]] tool (commands: <code>mysql</code> and <code>mysqladmin</code>). Also downloadable from the MySQL site are [[Graphical user interface|GUI]] administration tools: [[MySQL Administrator]] and [http://mysql.com/products/tools/query-browser MySQL Query Browser].


The MySQL server software itself and the client libraries use [[dual license|dual-licensing]] distribution. They are offered under [[GNU General Public License|GPL]] version 2, or a proprietary license.<ref>{{Cite web |date=July 2010 |title=Commercial License for OEMs, ISVs and VARs |url=https://www.mysql.com/about/legal/licensing/oem/ |access-date=2020-04-03 |website=www.mysql.com |quote=Oracle provides its MySQL database server [...] under a dual license model [...] Oracle makes its MySQL database server [...] available under the GPLv2 [...]}}</ref>
A widespread and popular alternative, written in [[PHP]], is the free software web application [[phpMyAdmin]].


Support can be obtained from the official manual.<ref>{{Cite web |url=http://dev.mysql.com/doc/refman/5.5/en/index.html |title=MySQL Support Manual, MySQL Developers |access-date=4 February 2012 |archive-date=4 February 2012 |archive-url=https://web.archive.org/web/20120204041451/http://dev.mysql.com/doc/refman/5.5/en/index.html |url-status=dead }}</ref> 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.
==Program specifications==
===Platforms===
MySQL works on many different [[system platform|platforms]]&mdash;including [[AIX operating system|AIX]], [[BSDi]], [[FreeBSD]], [[HP-UX]], <!-- it needs the glibc so hence GNU/ -->[[Linux|GNU/Linux]], [[Mac OS X]], [[NetBSD]], [[Novell NetWare]], [[OpenBSD]], [[OS/2]] Warp, [[QNX]], [[Silicon Graphics|SGI]] [[IRIX]], [[Solaris Operating Environment|Solaris]], [[SunOS]], [[SCO OpenServer]], [[UnixWare|SCO UnixWare]], [[Tru64]], [[Windows 95]], [[Windows 98]], [[Windows NT]], [[Windows 2000]], [[Windows XP]] and more recent versions of [[Microsoft Windows|Windows]]. A port of MySQL to [[OpenVMS]] is available [http://www.pi-net.dyndns.org/anonymous/kits/ here].


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".<ref>{{cite web|url=http://review.techworld.com/applications/346/mysql-50-open-source-database/ |title=Review of MySQL Server 5.0|archiveurl=https://web.archive.org/web/20120521204519/http://review.techworld.com/applications/346/mysql-50-open-source-database/ |archivedate=21 May 2012 |website= Techworld.com |date=November 2005}}</ref> It has also been tested to be a "fast, stable and true multi-user, multi-threaded SQL database server".<ref>{{Cite web|url=https://community.linuxmint.com/software/view/mysql-server|title=MySQL Database Server (Metapackage Depending On The Latest Version)|website=community.linuxmint.com}}</ref>
===The latest production version===
As of [[October]] [[2005]], MySQL offers production version 5.0.16. It includes the following features:
*A broad subset of ANSI SQL 99, as well as extensions
*Cross-platform support
*[[Stored procedure]]s
*[[Database trigger|Trigger]]s
*[[Cursor (databases)|Cursor]]s
*updatable [[View (database)|View]]s
*True VARCHAR support
*INFORMATION_SCHEMA
*Strict mode
*X/Open XA distributed transaction processing (DTP) support; two phase commit as part of this, using Oracle's [[InnoDB]] engine
*Independent storage engines ([[MyISAM]] for read speed, InnoDB for transactions and referential integrity, Archive for storing historical data in little space)
*Transactions with the InnoDB, BDB and Cluster storage engines; savepoints with InnoDB
*[[Secure Sockets Layer|SSL]] support
*Query [[caching]]
*Sub-[[Select (SQL)|SELECT]]s (or nested SELECTs)
*Replication with one master per slave, many slaves per master, no automatic support for multiple masters per slave.
*Full-text [[indexing]] and searching using MyISAM engine
*Embedded database library
*Full [[Unicode]] support
*[[ACID]] compliance using the InnoDB, [[Berkeley DB|BDB]] and Cluster engines
*Shared-nothing clustering through [[MySQL Cluster]]


==History==
===Future releases===
[[File:Monty-Widenius-David-Axmark-MySQL-2003-05-09.jpg|thumb|right|David Axmark (left) and Michael "Monty" Widenius, founders of MySQL AB, in 2003]]
The [http://dev.mysql.com/doc/refman/5.1/en/roadmap.html MySQL 5.1 roadmap] outlines support for:
*[[partition_(database)|Partitioning]]
*Online [[backup]] for all storage engines
*Fail-safe replication
*Column-level constraints


MySQL was created by a Swedish company, [[MySQL AB]], founded by [[Swedes]] [[David Axmark]], Allan Larsson and [[Finns|Finnish]] [[Michael Widenius|Michael "Monty" Widenius]].
[[Foreign key]] support for all storage engines will likely be released with MySQL 5.2 (although it has been present since version 3.23 for [[InnoDB]]).
Original development of MySQL by Widenius and Axmark began in 1994.<ref>{{cite web|url=http://www.opensourcereleasefeed.com/interview/show/five-questions-with-michael-widenius-founder-and-original-developer-of-mysql |archive-url=https://web.archive.org/web/20090313160628/http://www.opensourcereleasefeed.com/interview/show/five-questions-with-michael-widenius-founder-and-original-developer-of-mysql |archive-date=2009-03-13 |title=Five Questions With Michael Widenius – Founder And Original Developer of MySQL |publisher=opensourcereleasefeed.com |access-date=13 October 2012}}</ref> 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.<ref>{{cite web |last=Pachev |first=Sasha |title=MySQL History and Architecture |url=https://www.oreilly.com/library/view/understanding-mysql-internals/0596009577/ch01.html |access-date=5 December 2020 |website=www.oreilly.com |language=en-US}}</ref>


===Distinguishing features===
===Milestones===
Additional milestones in MySQL development included:
The following features are implemented by MySQL but not by some other [[RDBMS]]es:
* 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<ref>{{cite web|url=http://www.mysql.com/news/article-54.html |archive-url=https://web.archive.org/web/20010815175526/http://www.mysql.com/news/article-54.html |archive-date=15 August 2001 |title=MySQL 3.23 Declared Stable}}</ref>
* Version 4.0: beta from August 2002, production release March 2003 ([[Set operations (SQL)|unions]]).
* Version 4.1: beta from June 2004, production release October 2004 ([[R-tree]]s and [[B-tree]]s, subqueries, prepared statements).
* Version 5.0: beta from March 2005, production release October 2005 (cursors, stored procedures, triggers, views, [[Database transaction|XA transactions]]).
** The developer of the Federated Storage Engine states that "The Federated Storage Engine is a [[proof of concept|proof-of-concept]] storage engine",<ref>{{cite web|url=http://capttofu.livejournal.com/5798.html |title=Capttofu: FederatedX Pluggable Storage Engine Released! |publisher=Capttofu.livejournal.com |access-date=3 April 2009 |url-status=dead |archive-url=https://web.archive.org/web/20110813040439/http://capttofu.livejournal.com/5798.html |archive-date=13 August 2011}}</ref> 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".<ref>{{cite web |date=8 October 2006 |title=MySQL Federated Tables: The Missing Manual |url=http://www.oreillynet.com/pub/a/databases/2006/08/10/mysql-federated-tables.html |url-status=dead |access-date=1 February 2012 |publisher=O'Reilly Media |archive-date=13 August 2006 |archive-url=https://web.archive.org/web/20060813161552/http://www.oreillynet.com/pub/a/databases/2006/08/10/mysql-federated-tables.html }}</ref>
* [[Sun Microsystems]] acquired MySQL AB in 2008.<ref>{{cite web |last=Arrington |first=Michael |date=2008-01-16 |title=Sun Picks Up MySQL For $1 Billion; Open Source Is A Legitimate Business Model |url=https://techcrunch.com/2008/01/16/sun-picks-up-mysql-for-1-billion-open-source-is-a-legitimate-business-model/ |access-date=13 October 2012 |website=www.techcrunch.com}}</ref>
* Version 5.1: production release 27 November 2008 (event scheduler, [[Partition (database)|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)''.<ref>{{cite web |url=http://www.planetmysql.org/entry.php?id=16232 |title=Archives – Oops, we did it again (MySQL 5.1 released as GA with crashing bugs) |publisher=Planet MySQL |date=29 November 2008 |access-date=5 February 2013 |url-status=dead |archive-url=https://web.archive.org/web/20081230032718/http://www.planetmysql.org/entry.php?id=16232 |archive-date=30 December 2008}}</ref>
** MySQL 5.1 and 6.0-alpha showed poor performance when used for [[data warehousing]]{{snd}} partly due to its inability to utilize multiple CPU cores for processing a single query.<ref>{{cite web |author=Zaitsev |first=Peter |date=2008-04-10 |title=TPC-H Run on MySQL 5.1 and 6.0 |url=http://www.mysqlperformanceblog.com/2008/04/10/tpc-h-run-on-mysql-51-and-60/ |access-date=8 June 2009 |website=MySQL Performance Blog}}</ref>
* Oracle acquired Sun Microsystems on 27 January 2010.<ref>{{cite press release|url=http://www.oracle.com/us/corporate/press/044428 |title=Oracle Completes Acquisition of Sun|publisher=Oracle |date=27 January 2010 |access-date=1 February 2012}}</ref><ref>{{cite web |title=Overview and Frequently Asked Questions |url=https://www.oracle.com/us/assets/038563.pdf |url-status=dead |access-date=8 February 2016 |archive-date=11 February 2016 |archive-url=https://web.archive.org/web/20160211190401/https://www.oracle.com/us/assets/038563.pdf }}</ref><ref>{{cite news |last=Krill |first=Paul |date=27 January 2010 |title=Oracle's ambitious plans for integrating Sun's technology |work=InfoWorld |url=http://www.infoworld.com/article/2627785/m-a/oracle-s-ambitious-plans-for-integrating-sun-s-technology.html |access-date=2018-05-08}}</ref>
* The day Oracle announced the purchase of Sun, Michael "Monty" Widenius forked MySQL, launching [[MariaDB]], and took a swath of MySQL developers with him.<ref name="dead">{{cite news |last=Pearce |first=Rohan |date=28 March 2013 |title=Dead database walking: MySQL's creator on why the future belongs to MariaDB |work=[[Computerworld]] |url=https://www2.computerworld.com.au/article/457551/dead_database_walking_mysql_creator_why_future_belongs_mariadb/ |access-date=2020-10-02 |archive-date=3 October 2020 |archive-url=https://web.archive.org/web/20201003111459/https://www2.computerworld.com.au/article/457551/dead_database_walking_mysql_creator_why_future_belongs_mariadb/ |url-status=dead }}</ref>
[[File:Geir Høydalsvik at Percona Live Europe 2018 3.jpg|thumb|right|Geir Høydalsvik, current Senior Software Development Director for MySQL at Oracle in 2018]]
* MySQL Server 5.5 was generally available ({{as of|2010|12|lc=on}}). Enhancements and features include:
** The default storage engine is [[InnoDB]], which supports transactions and referential integrity constraints.
** Improved InnoDB I/O subsystem<ref>{{cite web|url=http://dev.mysql.com/doc/refman/5.5/en/innodb-io-changes.html|title=InnoDB I/O Subsystem Changes|publisher=dev.mysql.com|access-date=1 February 2012|url-status=dead|archive-url=https://web.archive.org/web/20120210005904/http://dev.mysql.com/doc/refman/5.5/en/innodb-io-changes.html|archive-date=10 February 2012}}</ref>
** Improved [[Symmetric multiprocessing|SMP]] support<ref>{{cite web |url=http://dev.mysql.com/doc/refman/5.5/en/smp-improvements.html |title=Scalability Improvements |publisher=dev.mysql.com |access-date=1 February 2012 |url-status=dead |archive-url=https://web.archive.org/web/20120210005914/http://dev.mysql.com/doc/refman/5.5/en/smp-improvements.html |archive-date=10 February 2012}}</ref>
** Semisynchronous replication.
** SIGNAL and RESIGNAL statement in compliance with the SQL standard.
** Support for supplementary Unicode character sets utf16, utf32, and utf8mb4.{{efn|name=utf8mb4}}
** New options for user-defined partitioning.
* MySQL Server 6.0.11-alpha was announced<ref>{{cite web |title=MySQL Lists: packagers: MySQL 6.0.11 Alpha has been released! |url=http://lists.mysql.com/packagers/418 |url-status=dead |access-date=1 February 2012 |website= |publisher=Lists.mysql.com |archive-date=23 March 2012 |archive-url=https://web.archive.org/web/20120323235154/http://lists.mysql.com/packagers/418 }}</ref> 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&nbsp;5.6 was announced in February 2013.<ref>{{Cite web |url=http://www.oracle.com/us/corporate/press/1904335 |title=Oracle Announces General Availability of MySQL 5.6 |access-date=13 June 2018 |archive-date=13 June 2018 |archive-url=https://web.archive.org/web/20180613191021/http://www.oracle.com/us/corporate/press/1904335 |url-status=dead }}</ref> 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, {{mono|TIMESTAMP}} column type that correctly stores milliseconds, improvements to replication, and better performance monitoring by expanding the data available through the {{mono|PERFORMANCE_SCHEMA}}.<ref>{{cite web|url=http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html|title=What's New in MySQL 5.6|publisher=MySQL Developer Zone|access-date=21 April 2011|url-status=dead|archive-url=https://web.archive.org/web/20110423052507/http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html|archive-date=23 April 2011}}</ref> The InnoDB storage engine also included support for full-text search and improved group commit performance.
* The general availability of MySQL&nbsp;5.7 was announced in October 2015.<ref>{{cite web |title=Oracle Announces General Availability of MySQL 5.7 |url=https://www.oracle.com/corporate/pressrelease/mysql-5-7-ga-101915.html |url-status=dead |access-date=1 November 2015 |publisher=Oracle |archive-date=23 January 2016 |archive-url=https://web.archive.org/web/20160123022325/https://www.oracle.com/corporate/pressrelease/mysql-5-7-ga-101915.html }}</ref> As of MySQL 5.7.8, August 2015,<ref>{{Cite web |title=MySQL :: MySQL 5.7 Release Notes :: Changes in MySQL 5.7.8 (2015-08-03, Release Candidate) |url=https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-8.html#mysqld-5-7-8-json |access-date=10 October 2019 |website=dev.mysql.com}}</ref> MySQL supports a native [[JSON]] data type defined by RFC 7159.<ref>{{Cite journal|url=https://dev.mysql.com/doc/refman/5.7/en/json.html|title=MySQL :: MySQL 5.7 Reference Manual :: 11.6 The JSON Data Type|website=dev.mysql.com|year=2014 |doi=10.17487/RFC7159 |access-date=10 October 2019|rfc=7159|editor-last1=Bray |editor-first1=T |last1=Bray |first1=T. |doi-access=free }}</ref>
* MySQL Server 8.0 was announced in April 2018,<ref>{{Cite web|url=https://blogs.oracle.com/mysql/announcing-general-availability-of-mysql-80|title=Announcing General Availability of MySQL 8.0|first=Mike|last=Frank|website=blogs.oracle.com|access-date=10 October 2019}}</ref> including NoSQL Document Store, atomic and crash safe DDL sentences and [[JSON]] Extended syntax, new functions, such as JSON table functions, improved sorting, and partial updates. Previous MySQL Server 8.0.0-dmr (Milestone Release) was announced 12 September 2016.<ref>{{cite web|url=http://lists.mysql.com/announce/1106 |title=8.0.0-dmr (Milestone Release) |access-date=12 September 2016}}</ref>
* MySQL was declared DBMS of the year 2019 from the [[DB-Engines ranking]]<ref>{{cite web |last=Gelbmann |first=Matthias |date=2020-01-03 |title=MySQL is the DBMS of the Year 2019 |url=https://db-engines.com/en/blog_post/83 |access-date=7 January 2020 |website=db-engines.com |publisher=DB-Engines}}</ref>


=== Release history ===
*Multiple storage engines ([[MyISAM]], Merge, [[InnoDB]], [[Berkeley DB|BDB]], Memory/heap, Cluster, Federated, Archive, [[Comma-separated values|CSV]], Blackhole and Example in 5.x), letting you choose the one which is most effective for each table in the application.
{| class="wikitable sortable"
*Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.
|-
! Release
! General availability
! Latest minor version
! Latest release
! End of support<ref>{{Cite web|url=http://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf|title=Oracle Lifetime Support Policy|access-date=10 October 2019}}</ref><ref>{{Cite web|url=https://dev.mysql.com/blog-archive/introducing-mysql-innovation-and-long-term-support-lts-versions/|title= Introducing MySQL Innovation and Long-Term Support (LTS) versions |access-date=16 October 2023}}</ref>
|-
| {{Version |o |5.1 LTS}}
| {{Start date and age|df=yes|2008|11|14}}<ref>{{cite web|url=https://docs.oracle.com/cd/E17952_01/mysql-5.1-en/faqs-general.html|title=A.1 MySQL 5.1 FAQ: General|website=docs.oracle.com|access-date=2 August 2017|archive-date=9 February 2023|archive-url=https://web.archive.org/web/20230209011159/https://docs.oracle.com/cd/E17952_01/mysql-5.1-en/faqs-general.html|url-status=dead}}</ref>
| style="text-align:center" | 5.1.73<ref>{{cite web|url=https://docs.oracle.com/cd/E17952_01/mysql-5.1-relnotes-en/news-5-1-73.html|title=2 Changes in MySQL 5.1.73 (2013-12-03)|website=docs.oracle.com|access-date=2020-04-28|archive-date=30 November 2020|archive-url=https://web.archive.org/web/20201130230511/https://docs.oracle.com/cd/E17952_01/mysql-5.1-relnotes-en/news-5-1-73.html|url-status=dead}}</ref>
| 2013-12-03
| Dec 2013
|-
| {{Version |o |5.5 LTS}}
| {{Start date and age|df=yes|2010|12|03}}<ref>{{cite web|url=https://dev.mysql.com/doc/relnotes/mysql/5.5/en/|title=MySQL: MySQL 5.5 Release Notes|website=dev.mysql.com|access-date=15 January 2018}}</ref>
| style="text-align:center" | 5.5.62<ref>{{cite web|url=https://docs.oracle.com/cd/E17952_01/mysql-5.5-relnotes-en/news-5-5-62.html|title=2 Changes in MySQL 5.5.62 (2018-10-22, General availability)|website=docs.oracle.com|access-date=2020-04-28|archive-date=30 November 2020|archive-url=https://web.archive.org/web/20201130230510/https://docs.oracle.com/cd/E17952_01/mysql-5.5-relnotes-en/news-5-5-62.html|url-status=dead}}</ref>
| 2018-10-22
| Dec 2018
|-
| {{Version |o |5.6 LTS}}
| {{Start date and age|df=yes|2013|02|05}}<ref>{{cite web|url=https://dev.mysql.com/doc/relnotes/mysql/5.6/en/|title=MySQL: MySQL 5.6 Release Notes|website=dev.mysql.com|access-date=15 January 2018}}</ref>
| style="text-align:center" | 5.6.51<ref>{{Cite web|url=https://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-51.html|title=MySQL :: MySQL 5.6 Release Notes :: Changes in MySQL 5.6.51 (2021-01-20, General Availability)|website=dev.mysql.com|access-date=2021-03-04|archive-date=20 January 2021|archive-url=https://web.archive.org/web/20210120032943/https://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-51.html|url-status=dead}}</ref>
| 2021-01-20
| Feb 2021
|-
| {{Version |o |5.7 LTS}}
| {{Start date and age|df=yes|2015|10|21}} <ref>{{cite web|url=https://dev.mysql.com/doc/relnotes/mysql/5.7/en/|title=MySQL: MySQL 5.7 Release Notes|website=dev.mysql.com|access-date=15 January 2018}}</ref>
| style="text-align:center" | 5.7.44<ref>{{Cite web |title=Changes in MySQL 5.7.44 (2023-10-25, General Availability) |url=https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-44.html |access-date=2023-10-25 |website=dev.mysql.com}}</ref>
| 2023-10-25
| Oct 2023
|-
| {{Version |co |8.0 LTS}}
| {{Start date and age|df=yes|2018|04|19}} <ref>{{Cite web|url=https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/|title=What's New in MySQL 8.0? (Generally Available)|first=Geir|last=Hoydalsvik|date=19 April 2018|access-date=10 October 2019|archive-date=26 August 2021|archive-url=https://web.archive.org/web/20210826120020/https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/|url-status=dead}}</ref>
| style="text-align:center; white-space:nowrap" | 8.0.40<ref>{{Cite web |title=MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.40 (2024-10-15, General Availability) |url=https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-40.html |access-date=2024-11-15 |website=dev.mysql.com}}</ref>
| 2024-10-15
| Apr 2026
|-
| {{Version |o |8.1 IR}}
| {{Start date and age|df=yes|2023|07|18}}<ref>{{Cite web|url=https://dev.mysql.com/doc/refman/8.1/en/mysql-nutshell.html|title=What Is New in MySQL 8.1| date=18 July 2023|access-date=16 October 2023}}</ref>
| style="text-align:center" | 8.1.0<ref>{{Cite web|url=https://dev.mysql.com/doc/relnotes/mysql/8.1/en/news-8-1-0.html|title= Changes in MySQL 8.1.0 (2023-07-18, Innovation Release)| date=18 July 2023|access-date=16 October 2023}}</ref>
| 2023-07-18
| Oct 2023
|-
| {{Version |o |8.2 IR}}
| {{Start date and age|df=yes|2023|10|25}}<ref>{{Cite web|url=https://dev.mysql.com/doc/refman/8.2/en/mysql-nutshell.html|title=What Is New in MySQL 8.2| date=25 October 2023|access-date=26 October 2023}}</ref>
| style="text-align:center" | 8.2.0<ref>{{Cite web|url=https://dev.mysql.com/doc/relnotes/mysql/8.2/en/news-8-2-0.html|title= Changes in MySQL 8.2.0 (2023-08-25, Innovation Release)| date=25 October 2023|access-date=26 October 2023}}</ref>
| 2023-10-25
| Jan 2024
|-
| {{Version |o |8.3 IR}}
| {{Start date and age|df=yes|2024|01|16}}<ref>{{Cite web|url=https://dev.mysql.com/doc/refman/8.3/en/mysql-nutshell.html|title=What Is New in MySQL 8.3| date=16 January 2024|access-date=16 January 2024}}</ref>
| style="text-align:center" | 8.3.0<ref>{{Cite web|url=https://dev.mysql.com/doc/relnotes/mysql/8.3/en/news-8-3-0.html|title= Changes in MySQL 8.3.0 (2024-01-16, Innovation Release)| date=16 January 2024|access-date=16 January 2024}}</ref>
| 2024-01-16
| Apr 2024
|-
| {{Version |c |8.4 LTS}}
| {{Start date and age|df=yes|2024|04|30}} <ref>{{Cite web|url=https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html|title=What Is New in MySQL 8.4 since MySQL 8.0(Generally Available)|first=Geir|last=Hoydalsvik|date=30 April 2024|access-date=30 April 2024}}</ref>
| style="text-align:center; white-space:nowrap" | 8.4.3<ref>{{Cite web |title=MySQL :: MySQL 8.4 Release Notes :: Changes in MySQL 8.4.3 (2024-10-15, General Availability) |url=https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-3.html |access-date=2024-11-15 |website=dev.mysql.com}}</ref>
| 2024-10-15
| Apr 2032
|-
| {{Version |o |9.0 IR}}
| {{Start date and age|df=yes|2024|07|01}} <ref>{{Cite web|url=https://dev.mysql.com/doc/refman/9.0/en/mysql-nutshell.html|title=What Is New in MySQL 9.0|date=1 June 2024|access-date=1 June 2024}}</ref>
| style="text-align:center; white-space:nowrap" | 9.0.1<ref>{{Cite web |title=MySQL :: MySQL 9.0 Release Notes :: Changes in MySQL 9.0.1 (2024-07-23, General Availability) |url=https://dev.mysql.com/doc/relnotes/mysql/9.0/en/news-9-0-1.html |access-date=2024-07-01 |website=dev.mysql.com}}</ref>
| 2024-07-23
| Oct 2024
|-
| {{Version |cp |9.1 IR}}
| {{Start date and age|df=yes|2024|10|15}} <ref>{{Cite web|url=https://dev.mysql.com/doc/refman/9.1/en/mysql-nutshell.html|title=What Is New in MySQL 9.1|date=15 October 2024|access-date=17 October 2024}}</ref>
| style="text-align:center; white-space:nowrap" | 9.1.0<ref>{{Cite web |title=MySQL :: MySQL 9.1 Release Notes :: Changes in MySQL 9.1.0 (2024-10-15, Innovation Release) |url=https://dev.mysql.com/doc/relnotes/mysql/9.1/en/news-9-1-0.html |access-date=2024-10-17 |website=dev.mysql.com}}</ref>
| 2024-10-15
| Jan 2025
|-
| colspan="5" | <small>{{Version |l |show=111110}} '''LTS''' = ''Long-Term Support'', '''IR''' = ''Innovation Release''</small>
|}


Work on version 6 stopped after the Sun Microsystems acquisition. The MySQL Cluster product uses version 7. The decision was made to jump to version 8 as the next major version number.<ref>{{cite web|url=https://opensource.com/article/17/2/mysql-8-coming|title=MySQL 8 is coming|website=opensource.com|access-date=27 April 2018}}</ref>
===Source code specifics===
MySQL is written in a mixture of [[C_programming_language|C]] and [[C++]]. The SQL parser uses [[yacc]] and home-brewed [[Lex programming tool|lexer]]. A document describing some of the internal structures of the code and the coding guidelines is available from the MySQL web site.


===Legal disputes and acquisitions===
==Support==
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".<ref>{{cite mailing list |url=http://no.spam.ee/~tonu/mysql/tombasil.txt |title=Eyewitness account: "Monty Widenius, International Fugitive" |date=4 September 2001 |access-date=16 September 2012 |mailing-list=MySQL Life |last=Basil |first=Tom |url-status=dead |archive-url=https://web.archive.org/web/20131004214013/http://no.spam.ee/~tonu/mysql/tombasil.txt |archive-date=4 October 2013}}</ref><ref>{{cite web |url=http://mysql.com/news/article-75.html |title=FAQ on MySQL vs. NuSphere Dispute |date=13 July 2001 |publisher=MySQL AB |access-date=16 September 2012 |archive-url=https://web.archive.org/web/20010717185237/http://mysql.com/news/article-75.html |archive-date=17 July 2001}}</ref>
Via MySQL Network MySQL AB offers support itself, including 24/7 30 minute response time, with the support team having direct access to the developers as necessary to handle problems. In addition it hosts forums and mailing lists and employees and other users are often available in several IRC channels providing assistance.


In 2002, MySQL AB sued Progress NuSphere for [[Copyright infringement|copyright]] and [[trademark infringement]] in [[U.S. District Court for the District of Massachusetts|United States district court]]. NuSphere had allegedly violated MySQL AB's copyright by linking MySQL's GPL'ed code with NuSphere Gemini table without being in compliance with the license.<ref>{{cite web |url=http://www.fsf.org/press/mysql-affidavit.html|archive-url=https://web.archive.org/web/20050207084821/http://www.fsf.org/press/mysql-affidavit.html|archive-date=2005-02-07|title=Affidavit of Eben Moglen on Progress Software vs. MySQL AB Preliminary Injunction Hearing}}</ref> After a preliminary hearing before [[Patti B. Saris|Judge Patti Saris]] on 27 February 2002, the parties entered settlement talks and eventually settled.<ref>{{cite court |litigants=Progress Software Corporation v. MySQL AB |vol=195 |reporter=F. Supp. 2d |opinion=328 |court=D. Mass. |year=2002 |url=https://scholar.google.com/scholar_case?case=13584730711160488510 |access-date=16 September 2012}}</ref> After the hearing, [[Free Software Foundation|FSF]] commented that "Judge Saris made clear that she sees the GNU GPL to be an enforceable and binding license."<ref>{{cite press release |title=Judge Saris defers GNU GPL Questions for Trial in MySQL vs. Progress Software |publisher=Free Software Foundation |date=1 March 2002 |url=https://www.gnu.org/press/2002-03-01-pi-MySQL.html |access-date=16 September 2012}}</ref>
==Licensing==
Both the MySQL server software itself and the client libraries are distributed under a dual-licensing format. Users may choose the [[GNU General Public License]] [http://www.mysql.com/products/licensing/opensource-license.html], or they may choose a [[proprietary software|proprietary license]]


In October 2005, Oracle Corporation acquired [[Innobase]] OY, the [[Finland|Finnish]] company that developed the third-party InnoDB storage engine that allows MySQL to provide such functionality as transactions and [[foreign key]]s. After the acquisition, an Oracle [[News release|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.<ref>{{cite press release |title=Oracle Announces the Acquisition of Open Source Software Company, Innobase |publisher=Oracle |date=7 October 2005 |url=http://www.oracle.com/us/corporate/press/016679_EN |access-date=16 September 2012 |archive-url=https://web.archive.org/web/20110720225615/http://www.oracle.com/us/corporate/press/016679_EN |archive-date=20 July 2011 |url-status=live}}</ref> During the MySQL Users Conference in April 2006, MySQL AB issued a press release that confirmed that MySQL AB and Innobase OY agreed to a "multi-year" extension of their licensing agreement.<ref>{{cite press release |title=MySQL to Promote New Open Source DB Engines from its Partners and Dev Community |publisher=MySQL AB |date=26 April 2006 |url=http://www.businesswire.com/news/home/20060426005579/en/MySQL-AB-Promote-Open-Source-Database-Engines |access-date=16 September 2012 |archive-url=https://web.archive.org/web/20110623190958/http://www.mysql.com/news-and-events/generate-article.php?id=2006_21 |archive-date=23 June 2011|url-status=live}}</ref>
Some users have independently continued to develop an earlier version of the client libraries, which was distributed under the less-restrictive [[Lesser General Public License]]. [http://packages.debian.org/testing/libs/libmysqlclient10]


In February 2006, Oracle Corporation acquired [[Sleepycat Software]],<ref>{{cite web |url=http://www.informationweek.com/software/showArticle.jhtml?articleID=180200853 |title=Oracle Buys Sleepycat, Is JBoss Next? |last=Babcock |first=Charles |date=14 February 2006 |work=InformationWeek |publisher=CPM Media |access-date=16 September 2012 |archive-date=15 May 2011 |archive-url=https://web.archive.org/web/20110515023408/http://www.informationweek.com/software/showArticle.jhtml?articleID=180200853 |url-status=dead }}</ref> 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.<ref>{{cite web |url=http://dev.mysql.com/doc/refman/5.1/en/news-5-1-12.html |title=Changes in MySQL 5.1.12 |date=24 October 2006 |work=MySQL 5.1 Reference Manual |publisher=MySQL AB |access-date=16 September 2012 |url-status=dead |archive-url=https://web.archive.org/web/20121020222957/http://dev.mysql.com/doc/refman/5.1/en/news-5-1-12.html |archive-date=20 October 2012}}</ref>
==Pronunciation==
"MySQL" is officially pronounced as "My Ess Queue Ell" {{IPA|[ma&#618; &#603;s kju&#720; &#603;l]}}, not "My sequel" {{IPA|[ma&#618; si&#720;kw&#601;l]}} [http://dev.mysql.com/doc/mysql/en/What-is.html#IDX25]. However, the company doesn't mind if others use either the "My sequel" form or other local variations if they are preferred by the speaker.


In January 2008, Sun Microsystems bought MySQL AB for $1 billion.<ref>{{cite press release|title=Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World's Most Popular Open Source Database |publisher=Sun Microsystems |date=16 January 2008 |url=http://www.businesswire.com/news/home/20080116005349/en/Sun-Microsystems-Announces-Agreement-Acquire-MySQL-Developer |archive-url=https://web.archive.org/web/20110718044718/http://mysql.com/news-and-events/sun-to-acquire-mysql.html |archive-date=18 July 2011 |access-date=16 September 2012 |url-status=dead}}</ref>
The "My" portion of the name comes from the name of Monty's child, spelled "My" but pronounced in the local language as "Me".


In April 2009, Oracle Corporation entered into an agreement to purchase Sun Microsystems,<ref>{{cite press release |title=Oracle to Buy Sun |publisher=Sun Microsystems |date=20 April 2009 |url=http://www.businesswire.com/news/home/20090420005760/en/Oracle-Buy-Sun |access-date=16 September 2012 |archive-url=https://web.archive.org/web/20090422033454/http://www.sun.com/aboutsun/pr/2009-04/sunflash.20090420.1.xml |archive-date=22 April 2009|url-status=live}}</ref> 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.<ref>{{cite news |title=Oracle wins U.S. approval to buy Sun Microsystems |last1=Thomasch |first1=Paul |last2=Finkle |first2=Jim |date=20 August 2009 |url=https://www.reuters.com/article/sun-oracle/update-1-oracle-wins-u-s-approval-to-buy-sun-microsystems-idUSN2053486920090820 |work=Reuters |access-date=2 March 2020 }}</ref> On 14 December 2009, Oracle pledged to continue to enhance MySQL<ref>{{cite web |url=http://news.cnet.com/8301-1001_3-10414686-92.html |title=Oracle pledges to play well with MySQL |last=Whitney |first=Lance |date=14 December 2009 |website=CNET |archive-url=https://web.archive.org/web/20160312052010/http://www.cnet.com/news/oracle-pledges-to-play-well-with-mysql/|archive-date=12 March 2016|access-date=16 September 2012}}</ref> as it had done for the previous four years.
The "SQL" portion uses the fully spelled-out pronunciation of the [[Acronym and initialism|initialisation]], S-Q-L, not the "sequel" pronunciation, which conflicts with the earlier IBM database of that name.[http://www.faqs.org/docs/ppbook/c1164.htm]


A movement against Oracle's acquisition of MySQL AB, to "Save MySQL"<ref>{{cite web |title=Help saving MySQL |url=http://monty-says.blogspot.com/2009/12/help-saving-mysql.html |last=Michael |first=Widenius |date=12 December 2009 |work=Monty Says |publisher=Google |access-date=16 September 2012}}</ref> from Oracle was started by one of the MySQL AB 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, some Free Software [[opinion leadership|opinion leaders]] (including [[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.<ref>{{cite web |url=https://www.softwarefreedom.org/news/2009/dec/04/software-freedom-law-center-submits-opinion-oracle/ |title=The Software Freedom Law Center Submits an Opinion on the Oracle/Sun Merger to the EC |date=2009-12-04 |website=www.softwarefreedom.org |publisher=Software Freedom Law Center |access-date=2018-02-01 }}</ref><ref>{{cite web |url=https://www.infoworld.com/article/2630216/database/many-open-sourcers-back-an-oracle-takeover-of-mysql.html |title=Many open-sourcers back an Oracle takeover of MySQL |last=Lai |first=Eric |date=2009-10-28 |website=www.infoworld.com |publisher=InfoWorld |access-date=2018-02-01 }}</ref><ref>{{cite web |url=http://jan.wildeboer.net/2010/01/why-i-will-not-sign-the-mysql-petition/ |title=Why I will not sign the MySQL petition |last=Wildeboer |first=Jan |date=2010-01-05 |website=jan.wildeboer.net |access-date=2018-02-01 }}</ref> 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 the [[United States Department of Justice|US Department of Justice]], at the request of Oracle, pressured the EU to approve the merger unconditionally.<ref>{{cite web |url=http://www.pcworld.com/article/239132/wikileaks_cable_offers_new_insights_into_oraclesun_deal.html |title=Wikileaks Cable Offers New Insights into Oracle-Sun Deal |last=Kanaracus |first=Chris |date=30 August 2011 |work=[[PC World]] |access-date=16 September 2012}}</ref> The European Commission eventually unconditionally approved Oracle's acquisition of MySQL AB on 21 January 2010.<ref>{{cite press release |title=Mergers: Commission clears Oracle's proposed acquisition of Sun Microsystems |publisher=European Union |date=21 January 2010 |url=http://europa.eu/rapid/pressReleasesAction.do?reference=IP/10/40 |access-date=16 September 2012}}</ref>
The Swedish (MySQL AB is a Swedish company) word "Myskväll" (cozy evening, or even My's evening, "Mys kväll") is pronounced in a similar way but this might be a coincidence. Nevertheless this pronunciation is quite usual in Sweden.


In January 2010, before Oracle's acquisition of MySQL AB, Monty Widenius started a GPL-only [[Fork (software development)|fork]], [[MariaDB]]. MariaDB is based on the same code base as MySQL server 5.5 and aims to maintain compatibility with Oracle-provided versions.<ref>{{Cite web|url=https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/|title=MariaDB versus MySQL - Compatibility|website=MariaDB KnowledgeBase|access-date=2020-04-03|quote=MariaDB versions function as a "drop-in replacement" for the equivalent MySQL version, with some limitations.}}</ref>
==Criticisms of MySQL==
Early versions of MySQL included few standard [[relational database management system]] (RDMS) features, and the current production version still lacks many properties found in other SQL RDBMSs. This has led some database experts, such as [[Christopher J. Date|Chris Date]] and [[Fabian Pascal]], to criticize MySQL as falling short of being an RDBMS.


==Features==
Many of the early criticisms have been remedied in later versions of the software, including the lack of transactions and relational integrity constraints. These are features necessary to support the "[[ACID|ACID properties]]" for relational databases, which allow the DBMS to ensure that client applications cannot interfere with one another or insert inconsistent values. [http://www.service-architecture.com/database/articles/acid_properties.html] Other criticisms include MySQL's divergence from the SQL standard on the subject of treatment of NULL values and default values. Its handling of dates allows storing a date with a day beyond the last day of a month with less than 31 days, and arithmetic operations are vulnerable to either integer overflow or floating point truncation ([http://sql-info.de/mysql/gotchas.html]). These values are treated according to the SQL standards in MySQL version 5 through the use of special [http://dev.mysql.com/doc/mysql/en/server-sql-mode.html SQL Modes].
MySQL is offered under two different editions: the [[Open-source software|open source]] MySQL Community Server<ref>{{Cite web|url=https://www.mysql.com/products/community/|title=MySQL Community Edition|website=www.mysql.com|access-date=2020-04-03|quote=MySQL Community Edition is the freely downloadable version [...]. It is available under the GPL license [...]}}</ref> and the proprietary [[MySQL Enterprise|Enterprise Server]].<ref>{{cite web | url=http://www.mysql.com/products/which-edition.html | title=Which Should I Use: MySQL Enterprise or MySQL Community Server? | publisher=MySQL AB | access-date=8 April 2009 | url-status=dead | archive-url=https://web.archive.org/web/20090409055908/http://www.mysql.com/products/which-edition.html | archive-date=9 April 2009}}</ref> MySQL Enterprise Server is differentiated by a series of proprietary extensions which install as server plugins, but otherwise shares the version numbering system and is built from the same code base.


Major features as available in MySQL 5.6:
Earlier versions of the MySQL manual included claims that certain missing features (considered essential for SQL-compliant RDBMSs) were useless or even harmful, and that users were better off without them. One section, entitled "Reasons NOT to use Foreign Keys constraints" (sic), advised users that relational-integrity checking was difficult to use and complicated a database application, and that its only useful purpose was to allow client software to diagram the relationships between database tables. [http://sunsite.univie.ac.at/textbooks/mysql/manual.html#Broken_Foreign_KEY] Another section claimed that a DBMS lacking transactions can provide as reliable of data-integrity assurances as one supporting them&mdash;conflating the issue of transactional integrity with that of saving data when the database server loses power. [http://sunsite.univie.ac.at/textbooks/mysql/manual.html#IDX340] Since these claims contradicted basic principles of [[relational database]] design, they caused MySQL to be ridiculed by some database experts. Regardless of whether they were right or not, these claims are omitted in more recent versions of the manual. MySQL today allows some support for previously-dismissed features of relational integrity checking and transactions.
* A broad subset of [[SQL:1999|ANSI SQL 99]], as well as extensions
* Cross-platform support
* [[Stored procedure]]s, using a procedural language that closely adheres to [[SQL/PSM]]<ref name="HarrisonFeuerstein2008">{{cite book|author1=Guy Harrison|author2=Steven Feuerstein|title=MySQL Stored Procedure Programming|url=https://books.google.com/books?id=YpeP0ok0cO4C&pg=PT75|year=2008|publisher=O'Reilly Media|isbn=978-0-596-10089-6|page=49}}</ref>
* [[Database trigger|Triggers]]
* [[Cursor (databases)|Cursors]]
* Updatable [[View (SQL)|views]]
* Online [[Data Definition Language]] (DDL) when using the InnoDB Storage Engine.
* [[Information schema]]
* Performance Schema that collects and aggregates statistics about server execution and query performance for monitoring purposes.<ref>{{cite web | url=https://www.datadoghq.com/blog/monitoring-rds-mysql-performance-metrics/ | title=Monitoring RDS MySQL performance metrics | publisher=[[Datadog]] | date=2015-10-20 | access-date=14 December 2015}}</ref>
* A set of SQL Mode options to control [[Run time (program lifecycle phase)|runtime]] behavior, including a strict mode to better adhere to SQL standards.
* [[X/Open XA]] [[distributed transaction processing]] (DTP) support; [[Two-phase commit protocol|two phase commit]] as part of this, using the default [[InnoDB]] storage engine
* Transactions with [[savepoint]]s when using the default InnoDB Storage Engine. The NDB Cluster Storage Engine also supports transactions.
* [[ACID]] compliance when using InnoDB and NDB Cluster Storage Engines<ref>{{cite web |url=http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_acid | archive-url=https://web.archive.org/web/20101225160519/http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_acid | url-status=dead | archive-date=25 December 2010 | title=MySQL :: InnoDB 1.1 for MySQL 5.5 User's Guide :: C InnoDB Glossary :: ACID | access-date=5 January 2011 }}</ref>
* [[Secure Sockets Layer|SSL]] support
* Query [[cache (computing)|caching]]
* Sub-[[Select (SQL)|SELECTs]] (i.e. nested SELECTs)
* Built-in [[Database replication|replication]] support
** Asynchronous replication: [[Master/slave (technology)|master-slave]] from one master to many slaves<ref>{{cite web|url=http://dev.mysql.com/doc/refman/5.6/en/replication.html|title=Replication|publisher=MySQL|url-status=dead|access-date=3 May 2013|archive-date=6 May 2013|archive-url=https://web.archive.org/web/20130506041941/http://dev.mysql.com/doc/refman/5.6/en/replication.html}}</ref><ref>{{Cite web|url=https://mariadb.com/kb/en/library/high-availability-performance-tuning-mariadb-replication/|title=MariaDB Replication|website=MariaDB KnowledgeBase|access-date=2019-03-09}}</ref> or many masters to one slave<ref>{{Cite web|url=https://dev.mysql.com/doc/refman/5.7/en/replication-multi-source.html|title=MySQL :: MySQL 5.7 Reference Manual :: 16.1.4 MySQL Multi-Source Replication|website=dev.mysql.com|access-date=2019-03-09}}</ref>
** Semi synchronous replication: Master to slave replication where the master waits on replication<ref>{{Cite web|url=https://dev.mysql.com/doc/refman/5.7/en/replication-semisync.html|title=MySQL :: MySQL 5.7 Reference Manual :: 16.3.9 Semisynchronous Replication|website=dev.mysql.com|access-date=2019-03-09}}</ref><ref>{{Cite web|url=https://mariadb.com/kb/en/library/semisynchronous-replication/|title=Semisynchronous Replication|website=MariaDB KnowledgeBase|access-date=2019-03-09}}</ref>
** Synchronous replication: [[Multi-master replication]] is provided in [[MySQL Cluster]].<ref>{{cite web|url=http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-replication-multi-master.html|title=MySQL Cluster Replication: Multi-Master and Circular Replication|publisher=MySQL}}</ref>
** [[Virtual synchrony|Virtual Synchronous]]: Self managed groups of MySQL servers with multi master support can be done using: Galera Cluster<ref>{{cite web|url=https://blogs.oracle.com/mysqlf/entry/mysql_university_mysql_galera_multi|title=MySQL University: MySQL Galera Multi-Master Replication|date=2010-02-09|publisher=[[Oracle Corporation]]|access-date=3 May 2013|archive-date=12 December 2013|archive-url=https://web.archive.org/web/20131212022901/https://blogs.oracle.com/mysqlf/entry/mysql_university_mysql_galera_multi|url-status=dead}}</ref> or the built in Group Replication plugin<ref>{{Cite web|url=https://dev.mysql.com/doc/refman/8.0/en/group-replication.html|title=MySQL :: MySQL 8.0 Reference Manual :: 18 Group Replication|website=dev.mysql.com|access-date=2019-03-09}}</ref>
* Full-text [[Index (database)|indexing]] and searching{{efn|Initially, it was a MyISAM-only feature; supported by InnoDB since the release of MySQL 5.6.}}
* Embedded database library
* [[Unicode]] support{{efn|name=utf8mb4|Prior to MySQL 5.5.3, [[UTF-8]] and [[UTF-16/UCS-2|UCS-2]] encoded strings are limited to the [[Basic Multilingual Plane|BMP]]; MySQL 5.5.3 and later use utf8mb4 for full Unicode support.}}
* Partitioned tables with pruning of partitions in optimizer
* [[Shared-nothing]] clustering through [[MySQL Cluster]]
* Multiple storage engines, allowing one to choose the one that is most effective for each table in the application.{{efn|In MySQL 5.0, storage engines must be compiled in; since MySQL 5.1, storage engines can be dynamically loaded at [[Run time (program lifecycle phase)|run time]].}}
* Native storage engines [[InnoDB]], [[MyISAM]], Merge, Memory (heap), [[MySQL Federated|Federated]], Archive, [[Comma-separated values|CSV]], Blackhole, NDB Cluster.
* Commit grouping, gathering multiple transactions from multiple connections together to increase the number of commits per second.


The developers release minor updates of the MySQL Server approximately every two months. The sources can be obtained from MySQL's website or from MySQL's [[GitHub]] repository, both under the GPL license.
When the beta version of MySQL 5.0 was released in [[March 2005]], David Axmark, a co-founder of MySQL, said that "People have been criticising MySQL since we started for not having stored procedures, triggers and views," and "We're fixing 10 years of criticism in one release." [http://news.zdnet.co.uk/software/applications/0,39020384,39192964,00.htm] MySQL 5.0's [[13 October]] build 5.0.15 was released for production use on [[24 October]] [[2005]], after more than two million downloads in the 5.0 beta cycle.


===Limitations===
Critics find MySQL's popularity surprising in the light of the existence of other open source database projects with comparable performance and in closer compliance to the SQL standards. MySQL advocates reply that the program serves its purpose for its users, who are willing to accept the program's limitations (which decrease with every major revision) in exchange for speed, simplicity and rapid development. Another, perhaps simpler, explanation for MySQL's popularity is that it is often included as a default component in low-end commercial web hosting plans, so that for application developers (mostly using PHP and Perl) MySQL is the only DBMS choice unless they want to operate their own web hosts.
When using some storage engines other than the default of InnoDB, MySQL does not comply with the full [[SQL]] standard for some of the implemented functionality, including foreign key references.<ref>{{cite web
|url=https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html
|title=13.1.20.5 FOREIGN KEY Constraints
|publisher=MySQL
|access-date=10 March 2021}}</ref> Check constraints are parsed but ignored by all storage engines before MySQL version 8.0.15.<ref>{{cite web
|url=http://bugs.mysql.com/bug.php?id=3464
|title=Bug #3464 Constraints: support CHECK
|publisher=MySQL
|date=14 April 2004
|access-date=11 April 2015}}</ref><ref>{{Cite web|url=https://dev.mysql.com/doc/refman/8.0/en/create-table.html|title=MySQL 8.0 Reference Manual: CREATE TABLE Syntax |website=MySQL Reference Manual|publisher=Oracle|access-date=2018-05-07}}</ref>


Up until MySQL 5.7, triggers are limited to one per action / timing, meaning that at most one trigger can be defined to be executed after an {{mono|INSERT}} operation, and one before {{mono|INSERT}} on the same table.<ref name="dev.mysql.com">{{cite web
Some users have also criticized MySQL AB's position on the licensing of the software. A few open source projects, such as [[Asterisk PBX]], have reduced support for MySQL because of licensing difficulties. Further, there was some controversy generated regarding the distribution of GPL'd MySQL library files with other open source applications (the biggest controversy arising with PHP, which has a license incompatible with the GPL). This was later resolved when MySQL made an exception for inclusion in open source projects.
|url=http://dev.mysql.com/doc/refman/5.6/en/create-trigger.html
|title=CREATE TRIGGER Syntax
|publisher=MySQL
|access-date=11 April 2015}}</ref>
No triggers can be defined on views.<ref name="dev.mysql.com"/>


Before MySQL 8.0.28, inbuilt functions like {{mono|UNIX_TIMESTAMP()}} would return {{mono|0}} after 03:14:07 [[UTC]] on [[Year 2038 problem|19 January 2038]].<ref>{{cite web
In September 2005, MySQL AB and the highly controversial company [[SCO_Group|SCO]] joined forces for "joint certification, marketing, sales, training and business development work for a commercial version of the database for SCO's new OpenServer 6 version of Unix". Various MySQL employees gave what appeared to be the company's position, that it was committed to serving end users of the database, regardless of their operating system choice, that the company would leave it to the courts to resolve the SCO licensing controversy and that other common open source databases have also been ported to and support OpenServer users.
|url=https://bugs.mysql.com/bug.php?id=12654
|title=MySQL Bugs: #12654: 64-bit unix timestamp is not supported in MySQL functions
|publisher=MySQL
|date=2005-08-18
|access-date=2017-10-06
}}</ref> In 2017, an attempt to solve the problem was submitted, but was not used for the final solution that was shipped in 2022.<ref>{{cite web
|url=https://github.com/mysql/mysql-server/pull/130
|title=Allow dates beyond 2038 by dveeden · Pull Request #130 · mysql/mysql-server
|publisher=GitHub, Inc.
|date=2017-03-22
|access-date=2017-10-06
}}</ref><ref>{{Cite web |title=MySQL Bugs: #12654: 64-bit unix timestamp is not supported in MySQL functions |url=https://bugs.mysql.com/bug.php?id=12654 |access-date=2023-08-29 |website=bugs.mysql.com}}</ref><ref>{{Cite web |title=MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.28 (2022-01-18, General Availability) |url=https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-28.html |access-date=2023-08-29 |website=dev.mysql.com}}</ref>


===Deployment===
In October 2005, [[Oracle Corporation]] acquired InnoDB Oy Inc, the company responsible for the [[InnoDB]] storage engine that allows MySQL to provide such functionality as transactions and foreign keys. This will presumably lead to changes in the arrangements in its availability as, according to the [http://www.oracle.com/innodb/index.html press release], the contracts that make the company's software available to [[MySQL AB]] come up for renewal (and presumably renegotiation) some time in 2006.
MySQL can be built and installed manually from source code, but it is more commonly installed from a binary package unless special customizations are required. On most [[Linux distribution]]s, the [[package management system]] can download and install MySQL with minimal effort, though further configuration is often required to adjust security and optimization settings.


[[File:LAMP software bundle.svg|thumb|400px|[[LAMP (software bundle)|LAMP]] software bundle, displayed here together with [[Squid (software)|Squid]].]]
==Trivia==
*The dolphin symbol in the MySQL [[logo]] was given the [[Swati language|Swazi]] name ''Sakila'' in [[October 2002]] after a naming contest. [http://www.mysql.com/news-and-events/news/article_116.html]
*MySQL was first released internally on [[May 23]], [[1995]]


Though MySQL began as a low-end alternative to more powerful proprietary databases, it has gradually evolved to support higher-scale needs as well. It is still most commonly used in small to medium scale single-server deployments, either as a component in a [[LAMP (software bundle)|LAMP]]-based web application or as a standalone database server. Much of MySQL's appeal originates in its relative simplicity and ease of use, which is enabled by an ecosystem of open source tools such as [[phpMyAdmin]].
==Prominent users==
In the medium range, MySQL can be scaled by deploying it on more powerful hardware, such as a multi-processor server with gigabytes of memory.
*[[Yahoo!]] for some data management functions

*[[Cox Communications]], the fourth largest cable-television provider in the United States, has more than 3,600 tables and two billion rows of data in their databases and handles approximately four million inserts every two hours.
There are, however, limits to how far performance can scale on a single server ('scaling up'), so on larger scales, multi-server MySQL ('scaling out') deployments are required to provide improved performance and reliability. A typical high-end configuration can include a powerful master database which handles data write operations and is [[Database replication|replicated]] to multiple slaves that handle all read operations.<ref>{{cite web |title = The future of replication in MySQL |publisher = Facebook |url= https://www.facebook.com/note.php?note_id=126049465932 |access-date =2009-12-09 }}</ref> The master server continually pushes binlog events to connected slaves so in the event of failure a slave can be promoted to become the new master, minimizing downtime. Further improvements in performance can be achieved by caching the results from database queries in memory using [[memcached]], or breaking down a database into smaller chunks called [[Shard (database architecture)|shards]] which can be spread across a number of distributed server clusters.<ref>{{cite web |title=Database Sharding |publisher=Code Futures |url = http://www.codefutures.com/dbshards-cloud/|access-date = 2009-12-09 |url-status=dead |archive-url = https://web.archive.org/web/20100116031912/http://codefutures.com/dbshards-cloud/|archive-date=16 January 2010}}</ref>
*[[Sabre (computer system)|Sabre]], and its travel reservation system [[Travelocity]]

*[http://www.ljfind.com LJFind search engine] well over 110 000 000 livejournal posts and 4 000 000 regular users stored and indexed for full text searching
==={{anchor|HA}}High availability software===
*[[LiveJournal]], around [http://www.alexa.com/data/details/traffic_details?&compare_sites=&y=p&q=&url=livejournal.com 300 million page views] per day
Oracle MySQL offers a high availability solution with a mix of tools including the MySQL router and the MySQL shell. They are based on Group Replication, open source tools.<ref>{{Cite web|url=https://www.mysql.com/products/enterprise/high_availability.html|title=MySQL :: MySQL Enterprise High Availability|website=www.mysql.com|access-date=2019-03-09}}</ref>
*[[Amazon.com]] for many in-house projects

*[[Slashdot]], the poster child of high-traffic sites, with around [http://www.alexa.com/data/details/traffic_details?&compare_sites=&y=p&q=&url=slashdot.org 50 million page views] per day.
MariaDB offers a similar offer in terms of products.<ref>{{Cite web|url=https://mariadb.com/kb/en/library/replication-cluster-multi-master/|title=High Availability & Performance Tuning|website=MariaDB KnowledgeBase|access-date=2019-03-09}}</ref>
*2005 MySQL Application of the Year winners:

**[[CNET|CNET Networks]]
===Cloud deployment===
**[[Friendster]], more than 85 million dynamic page views per day, able to support more than 1.5 billion MySQL queries per day
{{Main article|Cloud database}}
**[[Wikipedia]], more than 200 million queries and 1.2 million updates per day with peak loads of 11,000 queries per second

MySQL can also be run on [[cloud computing]] platforms such as [[Microsoft Azure]], [[Amazon Elastic Compute Cloud]], Oracle Cloud Infrastructure.<ref>{{Cite web |url=https://cloud.oracle.com/en_US/infrastructure/compute |title=Oracle Cloud Infrastructure |access-date=18 January 2018 |archive-date=18 January 2018 |archive-url=https://web.archive.org/web/20180118185219/https://cloud.oracle.com/en_US/infrastructure/compute |url-status=dead }}</ref> Some common deployment models for MySQL on the cloud are:

; Virtual machine image
: In this implementation, cloud users can upload a [[Virtual machine image|machine image]] of their own with MySQL installed, or use a ready-made machine image with an optimized installation of MySQL on it, such as the one provided by Amazon EC2.<ref>{{cite web |url = http://aws.amazon.com/articles/1663 |title = Running MySQL on Amazon EC2 with EBS (Elastic Block Store) |website =[[Amazon Web Services]] |access-date=5 February 2013 }}</ref>

; MySQL as a service
: Some cloud platforms offer MySQL "as a service". In this configuration, application owners do not have to install and maintain the MySQL database on their own. Instead, the database service provider takes responsibility for installing and maintaining the database, and application owners pay according to their usage.<ref name="readwriteweb">{{cite web | first=Klint |last=Finley |url=http://www.readwriteweb.com/cloud/2011/01/7-cloud-based-database-service.php | title = 7 Cloud-Based Database Services |website = [[ReadWriteWeb]] | access-date =2011-11-09 | url-status=dead | archive-url = https://web.archive.org/web/20111109084453/http://www.readwriteweb.com/cloud/2011/01/7-cloud-based-database-service.php |archive-date=2011-11-09}}</ref> Notable cloud-based MySQL services are the [[Amazon Relational Database Service]]; Oracle MySQL HeatWave Database Service,<ref>{{Cite web|url=http://oracle.com/mysql|title=Oracle MySQL HeatWave Database Service}}</ref> Azure Database for MySQL,<ref>{{Cite web|url=https://azure.microsoft.com/en-us/services/mysql/|title=Azure Database for MySQL - Managed MySQL Database &#124; Microsoft Azure|website=azure.microsoft.com}}</ref> [[Rackspace]]; [[HP Converged Cloud]]; [[Heroku]] and [[Jelastic]]. In this model the database service provider takes responsibility for maintaining the host and database.

==User interfaces==
===Graphical user interfaces===
A [[graphical user interface]] (GUI) is a type of interface that allows users to interact with electronic devices or programs through graphical icons and visual indicators such as secondary notation, as opposed to text-based interfaces, typed command labels or text navigation.

Third-party proprietary and free graphical administration applications (or "front ends") are available that integrate with MySQL and enable users to work with database structure and data visually.

[[File:The MySQL Workbench startup screen.png|thumb|right|[[MySQL Workbench]] running on macOS]]

====MySQL Workbench====
{{main|MySQL Workbench}}
[[MySQL Workbench]] is the integrated environment for MySQL. It was developed by MySQL AB, and enables users to graphically administer MySQL databases and visually design database structures.

MySQL Workbench is available in three editions, the regular [[Free and open source software|free and open source]] ''Community Edition'' which may be downloaded from the MySQL website, and the proprietary ''Standard Edition'' which extends and improves the feature set of the Community Edition, and the MySQL Cluster CGE.<ref>{{Cite web|url=https://www.mysql.com/products/|title = MySQL :: MySQL Products}}</ref><ref>{{Cite web|url=https://www.mysql.com/products/community/|title = MySQL :: MySQL Community Edition}}</ref>

====Other GUI tools====
* [[Adminer]]
* [[Database Workbench]]
* [[DBeaver]]
* [[DBEdit]]
* [[HeidiSQL]]
* [[LibreOffice Base]]
* [[Navicat]]
* [[OpenOffice.org]] Base
* [[phpMyAdmin]]
* [[SQLBuddy]]
* [[SQLyog]]
* [[Toad (software)|Toad for MySQL]]
* [[Webmin]]

===Command-line interfaces===
A [[command-line interface]] is a means of interacting with a computer program where the user issues commands to the program by typing in successive lines of text (command lines). MySQL ships with many [[command line]] tools, from which the main interface is the {{Mono|mysql}} client.<ref name="mysql – The MySQL Command-Line Tool">{{Cite web |url=http://dev.mysql.com/doc/refman/5.6/en/mysql.html |title=mysql — The MySQL Command-Line Tool, MySQL Reference Manual |access-date=17 June 2015 |archive-date=17 June 2015 |archive-url=https://web.archive.org/web/20150617191142/http://dev.mysql.com/doc/refman/5.6/en/mysql.html |url-status=dead }}</ref><ref name="mysqladmin - the MySQL command-line tool">{{Cite web |url=http://dev.mysql.com/doc/refman/5.5/en/mysqladmin.html |title=mysqladmin – the MySQL command-line tool, MySQL Reference Manual |access-date=18 January 2013 |archive-date=12 January 2013 |archive-url=https://web.archive.org/web/20130112203324/http://dev.mysql.com/doc/refman/5.5/en/mysqladmin.html |url-status=dead }}</ref>

MySQL Utilities is a set of utilities designed to perform common maintenance and administrative tasks. Originally included as part of the MySQL Workbench, the utilities are a stand-alone download available from Oracle.

Percona Toolkit is a cross-platform toolkit for MySQL, developed in [[Perl]].<ref>{{cite web|url=http://www.percona.com/software/percona-toolkit |title=Percona Toolkit|publisher=Percona |access-date=26 March 2014}}</ref> Percona Toolkit can be used to prove replication is working correctly, fix corrupted data, automate repetitive tasks, and speed up servers. Percona Toolkit is included with several [[Linux]] distributions such as [[CentOS]] and [[Debian]], and packages are available for [[Fedora Linux|Fedora]] and [[Ubuntu]] as well. Percona Toolkit was originally developed as Maatkit, but as of late 2011, Maatkit is no longer developed.

MySQL shell is a tool for interactive use and administration of the MySQL database. It supports JavaScript, Python or SQL modes and it can be used for administration and access purposes.<ref>{{Cite web|url=https://dev.mysql.com/downloads/shell/|title=MySQL :: Download MySQL Shell|website=dev.mysql.com|access-date=2019-03-09}}</ref>

==Application programming interfaces==
Many [[programming language]]s with language-specific [[API]]s include [[library (computing)|libraries]] for accessing MySQL databases. These include MySQL Connector/Net for [[List of CLI languages|.NET/CLI Languages]],<ref>{{cite web|url=https://dev.mysql.com/doc/connector-net/en/ |title=MySQL Connector/NET Developer Guide |date=2020-09-09|access-date=2020-09-20|website=mysql.com}}</ref> and the JDBC driver for Java.<ref>{{cite web |url=https://dev.mysql.com/doc/connector-j/8.0/en/ |title=MySQL Connector/J Developer Guide |date=2020-09-18 |access-date=2020-09-20 |website=mysql.com |archive-date=18 September 2020 |archive-url=https://web.archive.org/web/20200918080220/https://dev.mysql.com/doc/connector-j/8.0/en/ |url-status=dead }}</ref>

In addition, an [[ODBC]] interface called [[MySQL Connector/ODBC]] allows additional programming languages that support the ODBC interface to communicate with a MySQL database, such as [[Active Server Pages|ASP]] or [[Adobe ColdFusion|ColdFusion]]. The [[HTSQL]]{{snd}} [[URL]]-based query method also ships with a MySQL adapter, allowing direct interaction between a MySQL database and any web client via structured URLs. Other drivers exists for languages like [[Python (programming language)|Python]]<ref>{{Cite web|url=https://dev.mysql.com/downloads/connector/python/|title=MySQL :: Download Connector/Python|website=dev.mysql.com|access-date=2019-03-09}}</ref> or [[Node.js]].<ref>{{Cite web|url=https://dev.mysql.com/downloads/connector/nodejs/|title=MySQL :: Download Connector/Node.js|website=dev.mysql.com|access-date=2019-03-09}}</ref>

==Project forks==
A variety of MySQL [[Fork (software development)|forks]] exist, including the following.

=== Current ===
; MariaDB
: [[MariaDB]] is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. The fork has been led by the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle.<ref name="dead" />
; Percona Server for MySQL
: [[Percona Server for MySQL]], forked by [[Percona]], aims to retain close compatibility to the official MySQL releases.<ref>{{cite web|url=http://www.percona.com/software/percona-server/faq|publisher=Percona|work=Frequently Asked Questions|title=How is it related to other MySQL forks?|access-date=6 June 2015|archive-url=https://web.archive.org/web/20150415051416/http://www.percona.com/software/percona-server/faq|archive-date=15 April 2015|url-status=dead}}</ref> Also included in Percona Server for MySQL is [[XtraDB]], Percona's fork of the [[InnoDB|InnoDB Storage Engine]].<ref name="pcw1">{{cite web | url=http://www.pcworld.com/article/2054060/percona-challenges-oracle-with-alternate-mysql-release.html | title=Percona challenges Oracle with alternate MySQL release | work=PC World | access-date=12 February 2015}}</ref>

=== Abandoned ===
; Drizzle
: [[Drizzle (database server)|Drizzle]] was a free software/open source relational database management system (DBMS) that was forked from the now-defunct 6.0 development branch of the MySQL DBMS.<ref name="Clark 2011">{{cite web | last=Clark | first=Jack | title=MySQL fork Drizzle gets general release | website=ZDNet | date=2011-03-17 | url=https://www.zdnet.com/home-and-office/networking/mysql-fork-drizzle-gets-general-release/ | access-date=2016-01-03}}</ref> Like MySQL, Drizzle had a [[client/server]] architecture and uses [[SQL]] as its primary [[command language]]. Drizzle was distributed under version 2 and 3 of the [[GNU General Public License]] (GPL) with portions, including the protocol drivers and [[Database replication|replication]] messaging under the [[BSD licenses|BSD]] license.
; WebScaleSQL
: [[WebScaleSQL]] was a software branch of MySQL 5.6, and was announced on 27 March 2014 by Facebook, Google, LinkedIn and Twitter as a joint effort to provide a centralized development structure for extending MySQL with new features specific to its large-scale deployments, such as building large replicated databases running on server farms. Thus, WebScaleSQL opened a path toward deduplicating the efforts each company had been putting into maintaining its own branch of MySQL, and toward bringing together more developers. By combining the efforts of these companies and incorporating various changes and new features into MySQL, WebScaleSQL aimed at supporting the deployment of MySQL in large-scale environments.<ref>{{cite news
| url = https://www.zdnet.com/article/webscalesql-mysql-for-facebook-sized-databases/
| title = WebScaleSQL: MySQL for Facebook-sized databases
| date = 28 March 2013 | access-date = 1 April 2014
| author = Steven J. Vaughan-Nichols | work = [[ZDNet]]
}}</ref><ref>{{cite magazine
| url = https://www.wired.com/2014/03/webscalesql/
| title = Google and Facebook Team Up to Modernize Old-School Databases
| date = 27 March 2013 | access-date = 1 April 2014
| author = Klint Finley | magazine = [[Wired (magazine)|Wired]]
}}</ref> The project's source code is licensed under version 2 of the GNU General Public License, and is hosted on [[GitHub]].<ref name="theregister-20140327">{{cite web
| url = https://www.theregister.co.uk/2014/03/27/webscalesql_launch/
| title = Forkin' 'L! Facebook, Google and friends create WebScaleSQL from MySQL 5.6
| date = 27 March 2013 | access-date = 1 April 2014
| author = Jack Clark | website = [[The Register]]
}}</ref><ref name="webscalesql-faq">{{Cite web
| url = http://webscalesql.org/faq.html
| title = Frequently Asked Questions
| date = 27 March 2014 | access-date = 1 April 2014
| website = webscalesql.org
}}</ref>
; OurDelta
: The OurDelta distribution, created by the Australian company Open Query (later acquired by Catalyst IT Australia), had two versions: 5.0, which was based on MySQL, and 5.1, which was based on MariaDB. It included patches developed by Open Query and by other notable members of the MySQL community including Jeremy Cole and Google. Once the patches were incorporated into the MariaDB mainline, OurDelta's objectives were achieved and OurDelta passed on its build and packaging toolchain to Monty Program (now MariaDB Plc).<ref>{{cite web |url=https://openquery.com.au/products/ourdelta |title=OurDelta |website=openquery.com.au |date=22 August 2017 |access-date=20 August 2021 }}</ref>


==See also==
==See also==
{{Portal|Free and open-source software}}
<!-- {{wikibookspar||Using MySQL}} -->
*[[List of relational database management systems]]
* [[Comparison of database administration tools]]
*[[Comparison of relational database management systems]]
* [[Comparison of MySQL database engines]]
* [[Comparison of relational database management systems]]
*[[MySQL Cluster]]
*[[ODBC]]
*[[LAMP (software bundle)|LAMP]] / [[WAMP]]


==External links==
== Notes ==
{{Notelist}}
*[http://www.mysql.com MySQL Website]
*[http://www.freesql.org FreeSQL - A free MySQL host.]
*Documentation:
**[http://dev.mysql.com/doc/mysql/en/index.html MySQL Manual]
**[http://dev.mysql.com/doc/mysql/en/roadmap.html MySQL Roadmap]
**[http://hashmysql.org/index.php?title=Main_Page #mysql channel] documentation wiki
**[http://sql-info.de/mysql/gotchas.html MySQL Gotchas] description of many features in MySQL, which work as advertised, but not as those used to other databases may expect
*Third party tools
**[http://www.phpMyAdmin.net phpMyAdmin] administration tool
**[http://jeremy.zawodny.com/mysql/mytop/ mytop] monitoring tool for unix-like operating systems
**[http://www.fabforce.net/dbdesigner4 fabFORCE.net DBDesigner 4]
**[http://www.pi-net.dyndns.org/anonymous/kits/#mysql MySQL for OpenVMS]
**[http://www.ems-hitech.com/mymanager MySQL Manager]
**[http://www.phpMyBackupPro.net phpMyBackupPro] MySQL database backup tool
**[http://passcracking.ru passcracking.ru] free MySQL hash cracking by database
*Press
**[http://www.databasejournal.com/features/mysql/article.php/2210771 2003 Database Journal roadmap] of MySQL's expected feature development
**[http://www.databasejournal.com/features/mysql/ Database Journal articles on MySQL]
**[http://www.mysql.databasecorner.com/ Database Corner articles on MySQL]
*Guides
**How To: [http://www.sematopia.com/?p=28 Install Apache, PHP, PEAR, MySQL & phpMyAdmin for Windows XP]
**[http://magooswisewords.com/MagoosBook/MySQL/mysql_01.htm Magoo's MySQL Quickstart Guide]
**[http://www.web-hosting-heaven.com/28348.php MYSQL Web Hosting]
**[http://www.tizag.com/mysqlTutorial/ Tizag's Beginner MySQL & PHP Tutorial]
**[http://www.cgisecurity.com/database/mysql/ CGISecurity Collection of Guides and Articles]
**[http://www.chauy.com/category/mysql-tutorials/ MySQL Tutorials]
*Blogs
**[http://planetmysql.org PlanetMySQL] PlanetMySQL.org (MySQL Community Blogs)
**[http://mysqldatabaseadministration.blogspot.com/ MySQL] MySQL Database Administration Blog


== References ==
{{Reflist}}


==External links==
{{Commons category-inline}}
{{Wikibooks}}
* {{Official website|http://www.mysql.com/}}
* [http://www.oracle.com/us/products/mysql/index.html MySQL] at [[Oracle Corporation|Oracle]]


{{MySQL}}
{{Sun Microsystems}}
{{Oracle}}
{{Oracle FOSS}}


{{Authority control}}
[[Category:Database management systems]]
[[Category:Free software]]
[[Category:SQL]]


[[ca:MySQL]]
[[Category:MySQL| ]]
[[Category:1995 software]]
[[cs:MySQL]]
[[Category:Client-server database management systems]]
[[da:MySQL]]
[[Category:Cross-platform software]]
[[de:MySQL]]
[[Category:Free database management systems]]
[[es:MySQL]]
[[Category:Oracle software]]
[[eo:MySQL]]
[[Category:Relational database management software for Linux]]
[[fr:MySQL]]
[[Category:Relational database management systems]]
[[ko:MySQL]]
[[Category:Sun Microsystems software]]
[[hr:MySQL]]
[[Category:Software using the GPL license]]
[[id:MySQL]]
[[it:MySQL]]
[[Category:Drupal]]
[[he:MySQL]]
[[Category:WordPress]]
[[Category:Open source projects]]
[[ku:MySQL]]
[[lt:MySQL]]
[[hu:MySQL]]
[[nl:MySQL]]
[[ja:MySQL]]
[[no:MySQL]]
[[pl:MySQL]]
[[pt:MySQL]]
[[ru:MySQL]]
[[sk:MySQL]]
[[sr:MySQL]]
[[fi:MySQL]]
[[sv:MySQL]]
[[th:MySQL]]
[[vi:MySQL]]
[[tr:MySQL]]
[[uk:MySQL]]
[[zh:MySQL]]

Latest revision as of 00:30, 28 December 2024

Original author(s)MySQL AB
Developer(s)Oracle Corporation
Initial release23 May 1995; 29 years ago (1995-05-23)
Stable release
9.1.0[1] Edit this on Wikidata / 15 October 2024; 2 months ago (15 October 2024)
Repository
Written inC, C++[2]
Operating systemLinux, Solaris, macOS, Windows, FreeBSD[3]
Available inEnglish
TypeRDBMS
LicenseGPLv2 or proprietary[4]
Websitewww.mysql.com Edit this on Wikidata

MySQL (/ˌmˌɛsˌkjuːˈɛl/)[5] is an open-source relational database management system (RDBMS).[5][6] Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My,[7] and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

MySQL is free and open-source software under the terms of the GNU General Public License, and is also available under a variety of proprietary licenses. MySQL was owned and sponsored by the Swedish company MySQL AB, which was bought by Sun Microsystems (now Oracle Corporation).[8] In 2010, when Oracle acquired Sun, Widenius forked the open-source MySQL project to create MariaDB.[9]

MySQL has stand-alone clients that allow users to interact directly with a MySQL database using SQL, but more often, MySQL is used with other programs to implement applications that need relational database capability. MySQL is a component of the LAMP web application software stack (and others), which is an acronym for Linux, Apache, MySQL, Perl/PHP/Python. MySQL is used by many database-driven web applications, including Drupal, Joomla, phpBB, and WordPress.[10] MySQL is also used by many popular websites, including Facebook,[11][12] Flickr,[13] MediaWiki,[14] Twitter,[15] and YouTube.[16]

Overview

[edit]

MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-brewed lexical analyzer.[17] MySQL works on many system platforms, including AIX, BSDi, FreeBSD, HP-UX, ArcaOS, eComStation, IBM i, 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.[18]

The MySQL server software itself and the client libraries use dual-licensing distribution. They are offered under GPL version 2, or a proprietary license.[19]

Support can be obtained from the official manual.[20] 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.

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".[21] It has also been tested to be a "fast, stable and true multi-user, multi-threaded SQL database server".[22]

History

[edit]
David Axmark (left) and Michael "Monty" Widenius, founders of MySQL AB, in 2003

MySQL was created by a Swedish company, MySQL AB, founded by Swedes David Axmark, Allan Larsson and Finnish Michael "Monty" Widenius. Original development of MySQL by Widenius and Axmark began in 1994.[23] 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.[24]

Milestones

[edit]

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[25]
  • Version 4.0: beta from August 2002, production release March 2003 (unions).
  • 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",[26] 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".[27]
  • Sun Microsystems acquired MySQL AB in 2008.[28]
  • 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).[29]
    • 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.[30]
  • Oracle acquired Sun Microsystems on 27 January 2010.[31][32][33]
  • The day Oracle announced the purchase of Sun, Michael "Monty" Widenius forked MySQL, launching MariaDB, and took a swath of MySQL developers with him.[34]
Geir Høydalsvik, current Senior Software Development Director for MySQL at Oracle in 2018
  • 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[35]
    • Improved SMP support[36]
    • Semisynchronous replication.
    • SIGNAL and RESIGNAL statement in compliance with the SQL standard.
    • Support for supplementary Unicode character sets utf16, utf32, and utf8mb4.[a]
    • New options for user-defined partitioning.
  • MySQL Server 6.0.11-alpha was announced[37] 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.[38] 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.[39] 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.[40] As of MySQL 5.7.8, August 2015,[41] MySQL supports a native JSON data type defined by RFC 7159.[42]
  • MySQL Server 8.0 was announced in April 2018,[43] including NoSQL Document Store, atomic and crash safe DDL sentences and JSON Extended syntax, new functions, such as JSON table functions, improved sorting, and partial updates. Previous MySQL Server 8.0.0-dmr (Milestone Release) was announced 12 September 2016.[44]
  • MySQL was declared DBMS of the year 2019 from the DB-Engines ranking[45]

Release history

[edit]
Release General availability Latest minor version Latest release End of support[46][47]
Old version, no longer maintained: 5.1 LTS 14 November 2008; 16 years ago (2008-11-14)[48] 5.1.73[49] 2013-12-03 Dec 2013
Old version, no longer maintained: 5.5 LTS 3 December 2010; 14 years ago (2010-12-03)[50] 5.5.62[51] 2018-10-22 Dec 2018
Old version, no longer maintained: 5.6 LTS 5 February 2013; 11 years ago (2013-02-05)[52] 5.6.51[53] 2021-01-20 Feb 2021
Old version, no longer maintained: 5.7 LTS 21 October 2015; 9 years ago (2015-10-21) [54] 5.7.44[55] 2023-10-25 Oct 2023
Old version, yet still maintained: 8.0 LTS 19 April 2018; 6 years ago (2018-04-19) [56] 8.0.40[57] 2024-10-15 Apr 2026
Old version, no longer maintained: 8.1 IR 18 July 2023; 17 months ago (2023-07-18)[58] 8.1.0[59] 2023-07-18 Oct 2023
Old version, no longer maintained: 8.2 IR 25 October 2023; 14 months ago (2023-10-25)[60] 8.2.0[61] 2023-10-25 Jan 2024
Old version, no longer maintained: 8.3 IR 16 January 2024; 11 months ago (2024-01-16)[62] 8.3.0[63] 2024-01-16 Apr 2024
Current stable version: 8.4 LTS 30 April 2024; 8 months ago (2024-04-30) [64] 8.4.3[65] 2024-10-15 Apr 2032
Old version, no longer maintained: 9.0 IR 1 July 2024; 6 months ago (2024-07-01) [66] 9.0.1[67] 2024-07-23 Oct 2024
Latest preview version of a future release: 9.1 IR 15 October 2024; 2 months ago (2024-10-15) [68] 9.1.0[69] 2024-10-15 Jan 2025
Legend:
Old version, not maintained
Old version, still maintained
Latest version
Latest preview version
Future release
LTS = Long-Term Support, IR = Innovation Release

Work on version 6 stopped after the Sun Microsystems acquisition. The MySQL Cluster product uses version 7. The decision was made to jump to version 8 as the next major version number.[70]

[edit]

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".[71][72]

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

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.[76] During the MySQL Users Conference in April 2006, MySQL AB issued a press release that confirmed that MySQL AB and Innobase OY agreed to a "multi-year" extension of their licensing agreement.[77]

In February 2006, Oracle Corporation acquired Sleepycat Software,[78] 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.[79]

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

In April 2009, Oracle Corporation entered into an agreement to purchase Sun Microsystems,[81] 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.[82] On 14 December 2009, Oracle pledged to continue to enhance MySQL[83] as it had done for the previous four years.

A movement against Oracle's acquisition of MySQL AB, to "Save MySQL"[84] from Oracle was started by one of the MySQL AB 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, some Free Software opinion leaders (including 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.[85][86][87] 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 the US Department of Justice, at the request of Oracle, pressured the EU to approve the merger unconditionally.[88] The European Commission eventually unconditionally approved Oracle's acquisition of MySQL AB on 21 January 2010.[89]

In January 2010, before Oracle's acquisition of MySQL AB, 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.[90]

Features

[edit]

MySQL is offered under two different editions: the open source MySQL Community Server[91] and the proprietary Enterprise Server.[92] MySQL Enterprise Server is differentiated by a series of proprietary extensions which install as server plugins, but otherwise shares the version numbering system and is built from the same code base.

Major features as available in MySQL 5.6:

The developers release minor updates of the MySQL Server approximately every two months. The sources can be obtained from MySQL's website or from MySQL's GitHub repository, both under the GPL license.

Limitations

[edit]

When using some storage engines other than the default of InnoDB, MySQL does not comply with the full SQL standard for some of the implemented functionality, including foreign key references.[104] Check constraints are parsed but ignored by all storage engines before MySQL version 8.0.15.[105][106]

Up until MySQL 5.7, triggers are limited to one per action / timing, meaning that at most one trigger can be defined to be executed after an INSERT operation, and one before INSERT on the same table.[107] No triggers can be defined on views.[107]

Before MySQL 8.0.28, inbuilt functions like UNIX_TIMESTAMP() would return 0 after 03:14:07 UTC on 19 January 2038.[108] In 2017, an attempt to solve the problem was submitted, but was not used for the final solution that was shipped in 2022.[109][110][111]

Deployment

[edit]

MySQL can be built and installed manually from source code, but it is more commonly installed from a binary package unless special customizations are required. On most Linux distributions, the package management system can download and install MySQL with minimal effort, though further configuration is often required to adjust security and optimization settings.

LAMP software bundle, displayed here together with Squid.

Though MySQL began as a low-end alternative to more powerful proprietary databases, it has gradually evolved to support higher-scale needs as well. It is still most commonly used in small to medium scale single-server deployments, either as a component in a LAMP-based web application or as a standalone database server. Much of MySQL's appeal originates in its relative simplicity and ease of use, which is enabled by an ecosystem of open source tools such as phpMyAdmin. In the medium range, MySQL can be scaled by deploying it on more powerful hardware, such as a multi-processor server with gigabytes of memory.

There are, however, limits to how far performance can scale on a single server ('scaling up'), so on larger scales, multi-server MySQL ('scaling out') deployments are required to provide improved performance and reliability. A typical high-end configuration can include a powerful master database which handles data write operations and is replicated to multiple slaves that handle all read operations.[112] The master server continually pushes binlog events to connected slaves so in the event of failure a slave can be promoted to become the new master, minimizing downtime. Further improvements in performance can be achieved by caching the results from database queries in memory using memcached, or breaking down a database into smaller chunks called shards which can be spread across a number of distributed server clusters.[113]

High availability software

[edit]

Oracle MySQL offers a high availability solution with a mix of tools including the MySQL router and the MySQL shell. They are based on Group Replication, open source tools.[114]

MariaDB offers a similar offer in terms of products.[115]

Cloud deployment

[edit]

MySQL can also be run on cloud computing platforms such as Microsoft Azure, Amazon Elastic Compute Cloud, Oracle Cloud Infrastructure.[116] Some common deployment models for MySQL on the cloud are:

Virtual machine image
In this implementation, cloud users can upload a machine image of their own with MySQL installed, or use a ready-made machine image with an optimized installation of MySQL on it, such as the one provided by Amazon EC2.[117]
MySQL as a service
Some cloud platforms offer MySQL "as a service". In this configuration, application owners do not have to install and maintain the MySQL database on their own. Instead, the database service provider takes responsibility for installing and maintaining the database, and application owners pay according to their usage.[118] Notable cloud-based MySQL services are the Amazon Relational Database Service; Oracle MySQL HeatWave Database Service,[119] Azure Database for MySQL,[120] Rackspace; HP Converged Cloud; Heroku and Jelastic. In this model the database service provider takes responsibility for maintaining the host and database.

User interfaces

[edit]

Graphical user interfaces

[edit]

A graphical user interface (GUI) is a type of interface that allows users to interact with electronic devices or programs through graphical icons and visual indicators such as secondary notation, as opposed to text-based interfaces, typed command labels or text navigation.

Third-party proprietary and free graphical administration applications (or "front ends") are available that integrate with MySQL and enable users to work with database structure and data visually.

MySQL Workbench running on macOS

MySQL Workbench

[edit]

MySQL Workbench is the integrated environment for MySQL. It was developed by MySQL AB, and enables users to graphically administer MySQL databases and visually design database structures.

MySQL Workbench is available in three editions, the regular free and open source Community Edition which may be downloaded from the MySQL website, and the proprietary Standard Edition which extends and improves the feature set of the Community Edition, and the MySQL Cluster CGE.[121][122]

Other GUI tools

[edit]

Command-line interfaces

[edit]

A command-line interface is a means of interacting with a computer program where the user issues commands to the program by typing in successive lines of text (command lines). MySQL ships with many command line tools, from which the main interface is the mysql client.[123][124]

MySQL Utilities is a set of utilities designed to perform common maintenance and administrative tasks. Originally included as part of the MySQL Workbench, the utilities are a stand-alone download available from Oracle.

Percona Toolkit is a cross-platform toolkit for MySQL, developed in Perl.[125] Percona Toolkit can be used to prove replication is working correctly, fix corrupted data, automate repetitive tasks, and speed up servers. Percona Toolkit is included with several Linux distributions such as CentOS and Debian, and packages are available for Fedora and Ubuntu as well. Percona Toolkit was originally developed as Maatkit, but as of late 2011, Maatkit is no longer developed.

MySQL shell is a tool for interactive use and administration of the MySQL database. It supports JavaScript, Python or SQL modes and it can be used for administration and access purposes.[126]

Application programming interfaces

[edit]

Many programming languages with language-specific APIs include libraries for accessing MySQL databases. These include MySQL Connector/Net for .NET/CLI Languages,[127] and the JDBC driver for Java.[128]

In addition, an ODBC interface called MySQL Connector/ODBC allows additional programming languages that support the ODBC interface to communicate with a MySQL database, such as ASP or ColdFusion. The HTSQL – URL-based query method also ships with a MySQL adapter, allowing direct interaction between a MySQL database and any web client via structured URLs. Other drivers exists for languages like Python[129] or Node.js.[130]

Project forks

[edit]

A variety of MySQL forks exist, including the following.

Current

[edit]
MariaDB
MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL. The fork has been led by the original developers of MySQL, who forked it due to concerns over its acquisition by Oracle.[34]
Percona Server for MySQL
Percona Server for MySQL, forked by Percona, aims to retain close compatibility to the official MySQL releases.[131] Also included in Percona Server for MySQL is XtraDB, Percona's fork of the InnoDB Storage Engine.[132]

Abandoned

[edit]
Drizzle
Drizzle was a free software/open source relational database management system (DBMS) that was forked from the now-defunct 6.0 development branch of the MySQL DBMS.[133] Like MySQL, Drizzle had a client/server architecture and uses SQL as its primary command language. Drizzle was distributed under version 2 and 3 of the GNU General Public License (GPL) with portions, including the protocol drivers and replication messaging under the BSD license.
WebScaleSQL
WebScaleSQL was a software branch of MySQL 5.6, and was announced on 27 March 2014 by Facebook, Google, LinkedIn and Twitter as a joint effort to provide a centralized development structure for extending MySQL with new features specific to its large-scale deployments, such as building large replicated databases running on server farms. Thus, WebScaleSQL opened a path toward deduplicating the efforts each company had been putting into maintaining its own branch of MySQL, and toward bringing together more developers. By combining the efforts of these companies and incorporating various changes and new features into MySQL, WebScaleSQL aimed at supporting the deployment of MySQL in large-scale environments.[134][135] The project's source code is licensed under version 2 of the GNU General Public License, and is hosted on GitHub.[136][137]
OurDelta
The OurDelta distribution, created by the Australian company Open Query (later acquired by Catalyst IT Australia), had two versions: 5.0, which was based on MySQL, and 5.1, which was based on MariaDB. It included patches developed by Open Query and by other notable members of the MySQL community including Jeremy Cole and Google. Once the patches were incorporated into the MariaDB mainline, OurDelta's objectives were achieved and OurDelta passed on its build and packaging toolchain to Monty Program (now MariaDB Plc).[138]

See also

[edit]

Notes

[edit]
  1. ^ a b Prior to MySQL 5.5.3, UTF-8 and UCS-2 encoded strings are limited to the BMP; MySQL 5.5.3 and later use utf8mb4 for full Unicode support.
  2. ^ Initially, it was a MyISAM-only feature; supported by InnoDB since the release of MySQL 5.6.
  3. ^ In MySQL 5.0, storage engines must be compiled in; since MySQL 5.1, storage engines can be dynamically loaded at run time.

References

[edit]
  1. ^ "Changes in MySQL 9.1.0 (2024-10-15, Innovation Release)". 15 October 2024. Retrieved 16 October 2024.
  2. ^ "MySQL: Project Summary". Ohloh. Black Duck Software. Archived from the original on 7 July 2012. Retrieved 17 September 2012.
  3. ^ "Supported Platforms: MySQL Database". Oracle. Retrieved 24 March 2014.
  4. ^ "Downloads". MySQL. Retrieved 3 August 2014.
  5. ^ a b "What is MySQL?". MySQL 8.0 Reference Manual. Oracle Corporation. Retrieved 3 April 2020. The official way to pronounce "MySQL" is "My Ess Que Ell" (not "my sequel"), but we do not mind if you pronounce it as "my sequel" or in some other localized way.
  6. ^ "DB-Engines Ranking of Relational DBMS". DB-Engines. solidIT consulting & software development GmbH. Retrieved 3 April 2020.
  7. ^ "History of MySQL". MySQL 8.0 Reference Manual. Oracle Corporation. Retrieved 3 April 2020. MySQL is named after co-founder Monty Widenius's daughter, My.
  8. ^ "Sun Microsystems Announces Completion of MySQL Acquisition; Paves Way for Secure, Open Source Platform to Power the Network Economy" (Press release). Sun Microsystems. 26 February 2008. Archived from the original on 28 February 2008. Retrieved 17 September 2012.
  9. ^ Pearce, Rohan (28 March 2013). "Dead database walking: MySQL's creator on why the future belongs to MariaDB". Computerworld. Archived from the original on 3 July 2020. Retrieved 3 April 2020. The day the Sun purchase was announced, Widenius responded [...] — he forked MySQL, launching MariaDB [...]
  10. ^ Jackson, Joab (8 March 2010). "WordPress Guns for Web Content Management Duties". The New York Times. Retrieved 24 August 2023. WordPress, created in 2003, uses a variety of open-source programs and open standards, such as PHP, MySQL, JavaScript, HTML and CSS.
  11. ^ Sobel, Jason (21 December 2007). "Keeping Up". The Facebook Blog. Facebook. Archived from the original on 18 June 2009. Retrieved 18 June 2009. [...] Facebook's data is stored in MySQL database servers [...]
  12. ^ Matsunobu, Yoshinori (31 August 2016). "MyRocks: A space- and write-optimized MySQL database". Facebook Engineering. Archived from the original on 7 March 2020. Retrieved 7 March 2020. At Facebook we use MySQL to manage many petabytes of data, along with the InnoDB storage engine [...]
  13. ^ Elliott-McCrea, Kellan (8 February 2010). "Using, Abusing and Scaling MySQL at Flickr". code.flickr.com. Retrieved 3 April 2020. [...] at Flickr, MySQL is our hammer, and we use it for nearly everything. It's our federated data store, our key-value store, and our document store.
  14. ^ "Manual:MySQL". www.mediawiki.org. MediaWiki, The Free Wiki Engine. Retrieved 3 April 2020. The MySQL and MariaDB database engines are the most commonly-used database backends for MediaWiki.
  15. ^ Hashemi, Mazdak (19 January 2017). "The Infrastructure Behind Twitter: Scale". blog.twitter.com. Retrieved 3 April 2020. SQL: This includes MySQL, PostgreSQL and Vertica. MySQL/PosgreSQL are used where we need strong consistency [...]
  16. ^ Mehta, Chintan; K Bhavsar, Ankit; Oza, Hetal; Shah, Subhash (15 February 2018). MySQL 8 Administrator's Guide: Effective Guide to Administering High-performance MySQL 8 Solutions. Packt Publishing. p. 32. ISBN 9781788393843.
  17. ^ "MySQL Internals Manual". dev.mysql.com. 4 March 2009. Retrieved 8 June 2009.
  18. ^ "MySQL for OpenVMS". vmsmysql.org. 30 March 2011. Archived from the original on 12 May 2014. Retrieved 16 January 2014.
  19. ^ "Commercial License for OEMs, ISVs and VARs". www.mysql.com. July 2010. Retrieved 3 April 2020. Oracle provides its MySQL database server [...] under a dual license model [...] Oracle makes its MySQL database server [...] available under the GPLv2 [...]
  20. ^ "MySQL Support Manual, MySQL Developers". Archived from the original on 4 February 2012. Retrieved 4 February 2012.
  21. ^ "Review of MySQL Server 5.0". Techworld.com. November 2005. Archived from the original on 21 May 2012.
  22. ^ "MySQL Database Server (Metapackage Depending On The Latest Version)". community.linuxmint.com.
  23. ^ "Five Questions With Michael Widenius – Founder And Original Developer of MySQL". opensourcereleasefeed.com. Archived from the original on 13 March 2009. Retrieved 13 October 2012.
  24. ^ Pachev, Sasha. "MySQL History and Architecture". www.oreilly.com. Retrieved 5 December 2020.
  25. ^ "MySQL 3.23 Declared Stable". Archived from the original on 15 August 2001.
  26. ^ "Capttofu: FederatedX Pluggable Storage Engine Released!". Capttofu.livejournal.com. Archived from the original on 13 August 2011. Retrieved 3 April 2009.
  27. ^ "MySQL Federated Tables: The Missing Manual". O'Reilly Media. 8 October 2006. Archived from the original on 13 August 2006. Retrieved 1 February 2012.
  28. ^ Arrington, Michael (16 January 2008). "Sun Picks Up MySQL For $1 Billion; Open Source Is A Legitimate Business Model". www.techcrunch.com. Retrieved 13 October 2012.
  29. ^ "Archives – Oops, we did it again (MySQL 5.1 released as GA with crashing bugs)". Planet MySQL. 29 November 2008. Archived from the original on 30 December 2008. Retrieved 5 February 2013.
  30. ^ Zaitsev, Peter (10 April 2008). "TPC-H Run on MySQL 5.1 and 6.0". MySQL Performance Blog. Retrieved 8 June 2009.
  31. ^ "Oracle Completes Acquisition of Sun" (Press release). Oracle. 27 January 2010. Retrieved 1 February 2012.
  32. ^ "Overview and Frequently Asked Questions" (PDF). Archived from the original (PDF) on 11 February 2016. Retrieved 8 February 2016.
  33. ^ Krill, Paul (27 January 2010). "Oracle's ambitious plans for integrating Sun's technology". InfoWorld. Retrieved 8 May 2018.
  34. ^ a b Pearce, Rohan (28 March 2013). "Dead database walking: MySQL's creator on why the future belongs to MariaDB". Computerworld. Archived from the original on 3 October 2020. Retrieved 2 October 2020.
  35. ^ "InnoDB I/O Subsystem Changes". dev.mysql.com. Archived from the original on 10 February 2012. Retrieved 1 February 2012.
  36. ^ "Scalability Improvements". dev.mysql.com. Archived from the original on 10 February 2012. Retrieved 1 February 2012.
  37. ^ "MySQL Lists: packagers: MySQL 6.0.11 Alpha has been released!". Lists.mysql.com. Archived from the original on 23 March 2012. Retrieved 1 February 2012.
  38. ^ "Oracle Announces General Availability of MySQL 5.6". Archived from the original on 13 June 2018. Retrieved 13 June 2018.
  39. ^ "What's New in MySQL 5.6". MySQL Developer Zone. Archived from the original on 23 April 2011. Retrieved 21 April 2011.
  40. ^ "Oracle Announces General Availability of MySQL 5.7". Oracle. Archived from the original on 23 January 2016. Retrieved 1 November 2015.
  41. ^ "MySQL :: MySQL 5.7 Release Notes :: Changes in MySQL 5.7.8 (2015-08-03, Release Candidate)". dev.mysql.com. Retrieved 10 October 2019.
  42. ^ Bray, T. (2014). Bray, T (ed.). "MySQL :: MySQL 5.7 Reference Manual :: 11.6 The JSON Data Type". dev.mysql.com. doi:10.17487/RFC7159. RFC 7159. Retrieved 10 October 2019.
  43. ^ Frank, Mike. "Announcing General Availability of MySQL 8.0". blogs.oracle.com. Retrieved 10 October 2019.
  44. ^ "8.0.0-dmr (Milestone Release)". Retrieved 12 September 2016.
  45. ^ Gelbmann, Matthias (3 January 2020). "MySQL is the DBMS of the Year 2019". db-engines.com. DB-Engines. Retrieved 7 January 2020.
  46. ^ "Oracle Lifetime Support Policy" (PDF). Retrieved 10 October 2019.
  47. ^ "Introducing MySQL Innovation and Long-Term Support (LTS) versions". Retrieved 16 October 2023.
  48. ^ "A.1 MySQL 5.1 FAQ: General". docs.oracle.com. Archived from the original on 9 February 2023. Retrieved 2 August 2017.
  49. ^ "2 Changes in MySQL 5.1.73 (2013-12-03)". docs.oracle.com. Archived from the original on 30 November 2020. Retrieved 28 April 2020.
  50. ^ "MySQL: MySQL 5.5 Release Notes". dev.mysql.com. Retrieved 15 January 2018.
  51. ^ "2 Changes in MySQL 5.5.62 (2018-10-22, General availability)". docs.oracle.com. Archived from the original on 30 November 2020. Retrieved 28 April 2020.
  52. ^ "MySQL: MySQL 5.6 Release Notes". dev.mysql.com. Retrieved 15 January 2018.
  53. ^ "MySQL :: MySQL 5.6 Release Notes :: Changes in MySQL 5.6.51 (2021-01-20, General Availability)". dev.mysql.com. Archived from the original on 20 January 2021. Retrieved 4 March 2021.
  54. ^ "MySQL: MySQL 5.7 Release Notes". dev.mysql.com. Retrieved 15 January 2018.
  55. ^ "Changes in MySQL 5.7.44 (2023-10-25, General Availability)". dev.mysql.com. Retrieved 25 October 2023.
  56. ^ Hoydalsvik, Geir (19 April 2018). "What's New in MySQL 8.0? (Generally Available)". Archived from the original on 26 August 2021. Retrieved 10 October 2019.
  57. ^ "MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.40 (2024-10-15, General Availability)". dev.mysql.com. Retrieved 15 November 2024.
  58. ^ "What Is New in MySQL 8.1". 18 July 2023. Retrieved 16 October 2023.
  59. ^ "Changes in MySQL 8.1.0 (2023-07-18, Innovation Release)". 18 July 2023. Retrieved 16 October 2023.
  60. ^ "What Is New in MySQL 8.2". 25 October 2023. Retrieved 26 October 2023.
  61. ^ "Changes in MySQL 8.2.0 (2023-08-25, Innovation Release)". 25 October 2023. Retrieved 26 October 2023.
  62. ^ "What Is New in MySQL 8.3". 16 January 2024. Retrieved 16 January 2024.
  63. ^ "Changes in MySQL 8.3.0 (2024-01-16, Innovation Release)". 16 January 2024. Retrieved 16 January 2024.
  64. ^ Hoydalsvik, Geir (30 April 2024). "What Is New in MySQL 8.4 since MySQL 8.0(Generally Available)". Retrieved 30 April 2024.
  65. ^ "MySQL :: MySQL 8.4 Release Notes :: Changes in MySQL 8.4.3 (2024-10-15, General Availability)". dev.mysql.com. Retrieved 15 November 2024.
  66. ^ "What Is New in MySQL 9.0". 1 June 2024. Retrieved 1 June 2024.
  67. ^ "MySQL :: MySQL 9.0 Release Notes :: Changes in MySQL 9.0.1 (2024-07-23, General Availability)". dev.mysql.com. Retrieved 1 July 2024.
  68. ^ "What Is New in MySQL 9.1". 15 October 2024. Retrieved 17 October 2024.
  69. ^ "MySQL :: MySQL 9.1 Release Notes :: Changes in MySQL 9.1.0 (2024-10-15, Innovation Release)". dev.mysql.com. Retrieved 17 October 2024.
  70. ^ "MySQL 8 is coming". opensource.com. Retrieved 27 April 2018.
  71. ^ Basil, Tom (4 September 2001). "Eyewitness account: "Monty Widenius, International Fugitive"". MySQL Life (Mailing list). Archived from the original on 4 October 2013. Retrieved 16 September 2012.
  72. ^ "FAQ on MySQL vs. NuSphere Dispute". MySQL AB. 13 July 2001. Archived from the original on 17 July 2001. Retrieved 16 September 2012.
  73. ^ "Affidavit of Eben Moglen on Progress Software vs. MySQL AB Preliminary Injunction Hearing". Archived from the original on 7 February 2005.
  74. ^ Progress Software Corporation v. MySQL AB, 195 F. Supp. 2d 328 (D. Mass. 2002).
  75. ^ "Judge Saris defers GNU GPL Questions for Trial in MySQL vs. Progress Software" (Press release). Free Software Foundation. 1 March 2002. Retrieved 16 September 2012.
  76. ^ "Oracle Announces the Acquisition of Open Source Software Company, Innobase" (Press release). Oracle. 7 October 2005. Archived from the original on 20 July 2011. Retrieved 16 September 2012.
  77. ^ "MySQL to Promote New Open Source DB Engines from its Partners and Dev Community" (Press release). MySQL AB. 26 April 2006. Archived from the original on 23 June 2011. Retrieved 16 September 2012.
  78. ^ Babcock, Charles (14 February 2006). "Oracle Buys Sleepycat, Is JBoss Next?". InformationWeek. CPM Media. Archived from the original on 15 May 2011. Retrieved 16 September 2012.
  79. ^ "Changes in MySQL 5.1.12". MySQL 5.1 Reference Manual. MySQL AB. 24 October 2006. Archived from the original on 20 October 2012. Retrieved 16 September 2012.
  80. ^ "Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World's Most Popular Open Source Database" (Press release). Sun Microsystems. 16 January 2008. Archived from the original on 18 July 2011. Retrieved 16 September 2012.
  81. ^ "Oracle to Buy Sun" (Press release). Sun Microsystems. 20 April 2009. Archived from the original on 22 April 2009. Retrieved 16 September 2012.
  82. ^ Thomasch, Paul; Finkle, Jim (20 August 2009). "Oracle wins U.S. approval to buy Sun Microsystems". Reuters. Retrieved 2 March 2020.
  83. ^ Whitney, Lance (14 December 2009). "Oracle pledges to play well with MySQL". CNET. Archived from the original on 12 March 2016. Retrieved 16 September 2012.
  84. ^ Michael, Widenius (12 December 2009). "Help saving MySQL". Monty Says. Google. Retrieved 16 September 2012.
  85. ^ "The Software Freedom Law Center Submits an Opinion on the Oracle/Sun Merger to the EC". www.softwarefreedom.org. Software Freedom Law Center. 4 December 2009. Retrieved 1 February 2018.
  86. ^ Lai, Eric (28 October 2009). "Many open-sourcers back an Oracle takeover of MySQL". www.infoworld.com. InfoWorld. Retrieved 1 February 2018.
  87. ^ Wildeboer, Jan (5 January 2010). "Why I will not sign the MySQL petition". jan.wildeboer.net. Retrieved 1 February 2018.
  88. ^ Kanaracus, Chris (30 August 2011). "Wikileaks Cable Offers New Insights into Oracle-Sun Deal". PC World. Retrieved 16 September 2012.
  89. ^ "Mergers: Commission clears Oracle's proposed acquisition of Sun Microsystems" (Press release). European Union. 21 January 2010. Retrieved 16 September 2012.
  90. ^ "MariaDB versus MySQL - Compatibility". MariaDB KnowledgeBase. Retrieved 3 April 2020. MariaDB versions function as a "drop-in replacement" for the equivalent MySQL version, with some limitations.
  91. ^ "MySQL Community Edition". www.mysql.com. Retrieved 3 April 2020. MySQL Community Edition is the freely downloadable version [...]. It is available under the GPL license [...]
  92. ^ "Which Should I Use: MySQL Enterprise or MySQL Community Server?". MySQL AB. Archived from the original on 9 April 2009. Retrieved 8 April 2009.
  93. ^ Guy Harrison; Steven Feuerstein (2008). MySQL Stored Procedure Programming. O'Reilly Media. p. 49. ISBN 978-0-596-10089-6.
  94. ^ "Monitoring RDS MySQL performance metrics". Datadog. 20 October 2015. Retrieved 14 December 2015.
  95. ^ "MySQL :: InnoDB 1.1 for MySQL 5.5 User's Guide :: C InnoDB Glossary :: ACID". Archived from the original on 25 December 2010. Retrieved 5 January 2011.
  96. ^ "Replication". MySQL. Archived from the original on 6 May 2013. Retrieved 3 May 2013.
  97. ^ "MariaDB Replication". MariaDB KnowledgeBase. Retrieved 9 March 2019.
  98. ^ "MySQL :: MySQL 5.7 Reference Manual :: 16.1.4 MySQL Multi-Source Replication". dev.mysql.com. Retrieved 9 March 2019.
  99. ^ "MySQL :: MySQL 5.7 Reference Manual :: 16.3.9 Semisynchronous Replication". dev.mysql.com. Retrieved 9 March 2019.
  100. ^ "Semisynchronous Replication". MariaDB KnowledgeBase. Retrieved 9 March 2019.
  101. ^ "MySQL Cluster Replication: Multi-Master and Circular Replication". MySQL.
  102. ^ "MySQL University: MySQL Galera Multi-Master Replication". Oracle Corporation. 9 February 2010. Archived from the original on 12 December 2013. Retrieved 3 May 2013.
  103. ^ "MySQL :: MySQL 8.0 Reference Manual :: 18 Group Replication". dev.mysql.com. Retrieved 9 March 2019.
  104. ^ "13.1.20.5 FOREIGN KEY Constraints". MySQL. Retrieved 10 March 2021.
  105. ^ "Bug #3464 Constraints: support CHECK". MySQL. 14 April 2004. Retrieved 11 April 2015.
  106. ^ "MySQL 8.0 Reference Manual: CREATE TABLE Syntax". MySQL Reference Manual. Oracle. Retrieved 7 May 2018.
  107. ^ a b "CREATE TRIGGER Syntax". MySQL. Retrieved 11 April 2015.
  108. ^ "MySQL Bugs: #12654: 64-bit unix timestamp is not supported in MySQL functions". MySQL. 18 August 2005. Retrieved 6 October 2017.
  109. ^ "Allow dates beyond 2038 by dveeden · Pull Request #130 · mysql/mysql-server". GitHub, Inc. 22 March 2017. Retrieved 6 October 2017.
  110. ^ "MySQL Bugs: #12654: 64-bit unix timestamp is not supported in MySQL functions". bugs.mysql.com. Retrieved 29 August 2023.
  111. ^ "MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.28 (2022-01-18, General Availability)". dev.mysql.com. Retrieved 29 August 2023.
  112. ^ "The future of replication in MySQL". Facebook. Retrieved 9 December 2009.
  113. ^ "Database Sharding". Code Futures. Archived from the original on 16 January 2010. Retrieved 9 December 2009.
  114. ^ "MySQL :: MySQL Enterprise High Availability". www.mysql.com. Retrieved 9 March 2019.
  115. ^ "High Availability & Performance Tuning". MariaDB KnowledgeBase. Retrieved 9 March 2019.
  116. ^ "Oracle Cloud Infrastructure". Archived from the original on 18 January 2018. Retrieved 18 January 2018.
  117. ^ "Running MySQL on Amazon EC2 with EBS (Elastic Block Store)". Amazon Web Services. Retrieved 5 February 2013.
  118. ^ Finley, Klint. "7 Cloud-Based Database Services". ReadWriteWeb. Archived from the original on 9 November 2011. Retrieved 9 November 2011.
  119. ^ "Oracle MySQL HeatWave Database Service".
  120. ^ "Azure Database for MySQL - Managed MySQL Database | Microsoft Azure". azure.microsoft.com.
  121. ^ "MySQL :: MySQL Products".
  122. ^ "MySQL :: MySQL Community Edition".
  123. ^ "mysql — The MySQL Command-Line Tool, MySQL Reference Manual". Archived from the original on 17 June 2015. Retrieved 17 June 2015.
  124. ^ "mysqladmin – the MySQL command-line tool, MySQL Reference Manual". Archived from the original on 12 January 2013. Retrieved 18 January 2013.
  125. ^ "Percona Toolkit". Percona. Retrieved 26 March 2014.
  126. ^ "MySQL :: Download MySQL Shell". dev.mysql.com. Retrieved 9 March 2019.
  127. ^ "MySQL Connector/NET Developer Guide". mysql.com. 9 September 2020. Retrieved 20 September 2020.
  128. ^ "MySQL Connector/J Developer Guide". mysql.com. 18 September 2020. Archived from the original on 18 September 2020. Retrieved 20 September 2020.
  129. ^ "MySQL :: Download Connector/Python". dev.mysql.com. Retrieved 9 March 2019.
  130. ^ "MySQL :: Download Connector/Node.js". dev.mysql.com. Retrieved 9 March 2019.
  131. ^ "How is it related to other MySQL forks?". Frequently Asked Questions. Percona. Archived from the original on 15 April 2015. Retrieved 6 June 2015.
  132. ^ "Percona challenges Oracle with alternate MySQL release". PC World. Retrieved 12 February 2015.
  133. ^ Clark, Jack (17 March 2011). "MySQL fork Drizzle gets general release". ZDNet. Retrieved 3 January 2016.
  134. ^ Steven J. Vaughan-Nichols (28 March 2013). "WebScaleSQL: MySQL for Facebook-sized databases". ZDNet. Retrieved 1 April 2014.
  135. ^ Klint Finley (27 March 2013). "Google and Facebook Team Up to Modernize Old-School Databases". Wired. Retrieved 1 April 2014.
  136. ^ Jack Clark (27 March 2013). "Forkin' 'L! Facebook, Google and friends create WebScaleSQL from MySQL 5.6". The Register. Retrieved 1 April 2014.
  137. ^ "Frequently Asked Questions". webscalesql.org. 27 March 2014. Retrieved 1 April 2014.
  138. ^ "OurDelta". openquery.com.au. 22 August 2017. Retrieved 20 August 2021.
[edit]

Media related to MySQL at Wikimedia Commons