fbpx
Wikipedia

MySQL

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 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
Screenshot of the default MySQL command-line banner and prompt
Original author(s)MySQL AB
Developer(s)Oracle Corporation
Initial release23 May 1995; 27 years ago (1995-05-23)
Stable release
8.0.31[1]  / 11 October 2022; 3 months ago (11 October 2022)
Repository
  • github.com/mysql/mysql-server
Written inC, C++[2]
Operating systemLinux, Solaris, macOS, Windows, FreeBSD[3]
Available inEnglish
TypeRDBMS
LicenseGPLv2 or proprietary[4]
Websitewww.mysql.com 

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. MySQL is also used by many popular websites, including Facebook,[10][11] Flickr,[12] MediaWiki,[13] Twitter,[14] and YouTube.[15]

Overview

MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-brewed lexical analyzer.[16] 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.[17]

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

Support can be obtained from the official manual.[19] 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".[20] It has also been tested to be a "fast, stable and true multi-user, multi-threaded SQL database server".[21]

History

 
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 Finland Swede Michael "Monty" Widenius. Original development of MySQL by Widenius and Axmark began in 1994.[22] 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.[23]

Milestones

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[24]
  • 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",[25] 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".[26]
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).[28]
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.[29]
  • Oracle acquired Sun Microsystems on 27 January 2010.[30][31][32]
  • The day Oracle announced the purchase of Sun, Michael "Monty" Widenius forked MySQL, launching MariaDB, and took a swath of MySQL developers with him.[33]
 
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[34]
    • Improved SMP support[35]
    • 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[36] 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.[37] 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.[38] 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.[39] As of MySQL 5.7.8, August 2015,[40] MySQL supports a native JSON data type defined by RFC 7159.[41]
  • MySQL Server 8.0 was announced in April 2018,[42] 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.[43]
  • MySQL was declared DBMS of the year 2019 from the DB-Engines ranking[44]

Release history

Release General availability Latest minor version Latest release End of support[45]
Old version, no longer maintained: 5.1 14 November 2008; 14 years ago (2008-11-14)[46] 5.1.73[47] 2013-12-03 Dec 2013
Old version, no longer maintained: 5.5 3 December 2010; 12 years ago (2010-12-03)[48] 5.5.62[49] 2018-10-22 Dec 2018
Old version, no longer maintained: 5.6 5 February 2013; 9 years ago (2013-02-05)[50] 5.6.51[51] 2021-01-20 Feb 2021
Older version, yet still maintained: 5.7 21 October 2015; 7 years ago (2015-10-21) [52] 5.7.40[53] 2022-10-11 Oct 2023
Current stable version: 8.0 19 April 2018; 4 years ago (2018-04-19) [54] 8.0.31[55] 2022-10-11 Apr 2026
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future 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.[56]

Legal disputes and acquisitions

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".[57][58]

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.[59] After a preliminary hearing before Judge Patti Saris on 27 February 2002, the parties entered settlement talks and eventually settled.[60] After the hearing, FSF commented that "Judge Saris made clear that she sees the GNU GPL to be an enforceable and binding license."[61]

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.[62] 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.[63]

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

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

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

A movement against Oracle's acquisition of MySQL AB, to "Save MySQL"[70] 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.[71][72][73] As part of the negotiations with the European Commission, Oracle committed that MySQL server will continue until at least 2015 to use the dual-licensing strategy long used by MySQL AB, with proprietary and GPL versions available. The antitrust of the EU had been "pressuring it to divest MySQL as a condition for approval of the merger". But, as revealed by WikiLeaks, the US Department of Justice, at the request of Oracle, pressured the EU to approve the merger unconditionally.[74] The European Commission eventually unconditionally approved Oracle's acquisition of MySQL AB on 21 January 2010.[75]

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.[76]

Features

MySQL is offered under two different editions: the open source MySQL Community Server[77] and the proprietary Enterprise Server.[78] 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

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.[90] Check constraints are parsed but ignored by all storage engines before MySQL version 8.0.15.[91][92]

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.[93] No triggers can be defined on views.[93]

MySQL database's inbuilt functions like UNIX_TIMESTAMP() will return 0 after 03:14:07 UTC on 19 January 2038.[94] Recently,[when?] there had been an attempt to solve the problem which had been assigned to the internal queue.[95]

Deployment

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.[96] 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.[97]

High availability software

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.[98]

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

Cloud deployment

MySQL can also be run on cloud computing platforms such as Microsoft Azure, Amazon Elastic Compute Cloud, Oracle Cloud Infrastructure. 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.[100]
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.[101] Notable cloud-based MySQL services are the Amazon Relational Database Service; Oracle MySQL Cloud Service, Azure Database for MySQL, 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.

 
MySQL Workbench running on macOS

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 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. [102] [103]

Other GUI tools

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 mysql client.[104][105]

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.[106] 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.[107]

Application programming interfaces

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

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[110] or Node.js.[111]

Project forks

A variety of MySQL 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.[33]
Percona Server for MySQL
Percona Server for MySQL, forked by Percona, aims to retain close compatibility to the official MySQL releases.[112] Also included in Percona Server for MySQL is XtraDB, Percona's fork of the InnoDB Storage Engine.[113]

Abandoned

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.[114] 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.[115][116] The project's source code is licensed under version 2 of the GNU General Public License, and is hosted on GitHub.[117][118]
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 Corp).[119]

See also

Notes

  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

  1. ^ "Changes in MySQL 8.0.31 (2022-10-11, General Availability)". 11 October 2022. Retrieved 19 November 2022.
  2. ^ "MySQL: Project Summary". Ohloh. Black Duck Software. 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. ^ (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). . 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. ^ Sobel, Jason (21 December 2007). . 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 […]
  11. ^ Matsunobu, Yoshinori (31 August 2016). "MyRocks: A space- and write-optimized MySQL database". Facebook Engineering. 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 […]
  12. ^ 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.
  13. ^ "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.
  14. ^ 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 […]
  15. ^ "MySQL Customer: YouTube". MySQL.com. Oracle. Retrieved 17 September 2012.{{cite web}}: CS1 maint: url-status (link)
  16. ^ "MySQL Internals Manual". dev.mysql.com. Dev.mysql.com. 4 March 2009. Retrieved 8 June 2009.{{cite web}}: CS1 maint: url-status (link)
  17. ^ "MySQL for OpenVMS". vmsmysql.org. 30 March 2011. Retrieved 16 January 2014.{{cite web}}: CS1 maint: url-status (link)
  18. ^ "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 […]{{cite web}}: CS1 maint: url-status (link)
  19. ^ MySQL Support Manual, MySQL Developers
  20. ^ Review of MySQL Server 5.0, Techworld.com, November 2005
  21. ^ MySQL Server Review, LinuxMint.com
  22. ^ . opensourcereleasefeed.com. Archived from the original on 13 March 2009. Retrieved 13 October 2012.
  23. ^ Pachev, Sasha. "MySQL History and Architecture". www.oreilly.com. Retrieved 5 December 2020.{{cite web}}: CS1 maint: url-status (link)
  24. ^ . Archived from the original on 15 August 2001.
  25. ^ . Capttofu.livejournal.com. Archived from the original on 13 August 2011. Retrieved 3 April 2009.
  26. ^ "MySQL Federated Tables: The Missing Manual". O’Reilly Media. 8 October 2006. Retrieved 1 February 2012.{{cite web}}: CS1 maint: url-status (link)
  27. ^ 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.{{cite web}}: CS1 maint: url-status (link)
  28. ^ . Planet MySQL. 29 November 2008. Archived from the original on 30 December 2008. Retrieved 5 February 2013.
  29. ^ Zaitsev, Peter (10 April 2008). "TPC-H Run on MySQL 5.1 and 6.0". MySQL Performance Blog. Retrieved 8 June 2009.{{cite web}}: CS1 maint: url-status (link)
  30. ^ "Oracle Completes Acquisition of Sun" (Press release). Oracle. 27 January 2010. Retrieved 1 February 2012.
  31. ^ "Overview and Frequently Asked Questions" (PDF).{{cite web}}: CS1 maint: url-status (link)
  32. ^ Krill, Paul (27 January 2010). "Oracle's ambitious plans for integrating Sun's technology". InfoWorld. Retrieved 8 May 2018.
  33. ^ a b Pearce, Rohan (28 March 2013). "Dead database walking: MySQL's creator on why the future belongs to MariaDB". Computerworld. Retrieved 2 October 2020.
  34. ^ . dev.mysql.com. Archived from the original on 10 February 2012. Retrieved 1 February 2012.
  35. ^ . dev.mysql.com. Archived from the original on 10 February 2012. Retrieved 1 February 2012.
  36. ^ "MySQL Lists: packagers: MySQL 6.0.11 Alpha has been released!". Lists.mysql.com. Retrieved 1 February 2012.{{cite web}}: CS1 maint: url-status (link)
  37. ^ . Archived from the original on 13 June 2018. Retrieved 13 June 2018.
  38. ^ . MySQL Developer Zone. Archived from the original on 23 April 2011. Retrieved 21 April 2011.
  39. ^ "Oracle Announces General Availability of MySQL 5.7". Oracle. Retrieved 1 November 2015.{{cite web}}: CS1 maint: url-status (link)
  40. ^ "MySQL :: MySQL 5.7 Release Notes :: Changes in MySQL 5.7.8 (2015-08-03, Release Candidate)". dev.mysql.com. Retrieved 10 October 2019.{{cite web}}: CS1 maint: url-status (link)
  41. ^ 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.
  42. ^ Frank, Mike. "Announcing General Availability of MySQL 8.0". blogs.oracle.com. Retrieved 10 October 2019.
  43. ^ "8.0.0-dmr (Milestone Release)". Retrieved 12 September 2016.
  44. ^ Gelbmann, Matthias (3 January 2020). "MySQL is the DBMS of the Year 2019". db-engines.com. DB-Engines. Retrieved 7 January 2020.{{cite web}}: CS1 maint: url-status (link)
  45. ^ "Oracle Lifetime Support Policy" (PDF). Retrieved 10 October 2019.
  46. ^ "A.1 MySQL 5.1 FAQ: General". docs.oracle.com. Retrieved 2 August 2017.
  47. ^ "2 Changes in MySQL 5.1.73 (2013-12-03)". docs.oracle.com. Retrieved 28 April 2020.
  48. ^ "MySQL: MySQL 5.5 Release Notes". dev.mysql.com. Retrieved 15 January 2018.
  49. ^ "2 Changes in MySQL 5.5.62 (2018-10-22, General availability)". docs.oracle.com. Retrieved 28 April 2020.
  50. ^ "MySQL: MySQL 5.6 Release Notes". dev.mysql.com. Retrieved 15 January 2018.
  51. ^ "MySQL :: MySQL 5.6 Release Notes :: Changes in MySQL 5.6.51 (2021-01-20, General Availability)". dev.mysql.com. Retrieved 4 March 2021.
  52. ^ "MySQL: MySQL 5.7 Release Notes". dev.mysql.com. Retrieved 15 January 2018.
  53. ^ "Changes in MySQL 5.7.40 (2022-10-11, General Availability)". dev.mysql.com. Retrieved 11 October 2022.
  54. ^ Hoydalsvik, Geir (19 April 2018). "What's New in MySQL 8.0? (Generally Available)". Retrieved 10 October 2019.
  55. ^ "MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.31 (2022-10-11, General Availability)". dev.mysql.com. Retrieved 1 December 2022.
  56. ^ "MySQL 8 is coming". opensource.com. Retrieved 27 April 2018.
  57. ^ Basil, Tom (4 September 2001). . MySQL Life (Mailing list). Archived from the original on 4 October 2013. Retrieved 16 September 2012.
  58. ^ . MySQL AB. 13 July 2001. Archived from the original on 17 July 2001. Retrieved 16 September 2012.
  59. ^ . Archived from the original on 7 February 2005.
  60. ^ Progress Software Corporation v. MySQL AB, 195 F. Supp. 2d 328 (D. Mass. 2002).
  61. ^ "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.
  62. ^ "Oracle Announces the Acquisition of Open Source Software Company, Innobase" (Press release). Oracle. 7 October 2005. from the original on 20 July 2011. Retrieved 16 September 2012.
  63. ^ "MySQL to Promote New Open Source DB Engines from its Partners and Dev Community" (Press release). MySQL AB. 26 April 2006. from the original on 23 June 2011. Retrieved 16 September 2012.
  64. ^ Babcock, Charles (14 February 2006). "Oracle Buys Sleepycat, Is JBoss Next?". InformationWeek. CPM Media. Retrieved 16 September 2012.
  65. ^ . MySQL 5.1 Reference Manual. MySQL AB. 24 October 2006. Archived from the original on 20 October 2012. Retrieved 16 September 2012.
  66. ^ (Press release). Sun Microsystems. 16 January 2008. Archived from the original on 18 July 2011. Retrieved 16 September 2012.
  67. ^ "Oracle to Buy Sun" (Press release). Sun Microsystems. 20 April 2009. from the original on 22 April 2009. Retrieved 16 September 2012.
  68. ^ Thomasch, Paul; Finkle, Jim (20 August 2009). "Oracle wins U.S. approval to buy Sun Microsystems". Reuters. Retrieved 2 March 2020.
  69. ^ Whitney, Lance (14 December 2009). . CNET. Archived from the original on 12 March 2016. Retrieved 16 September 2012.
  70. ^ Michael, Widenius (12 December 2009). "Help saving MySQL". Monty Says. Google. Retrieved 16 September 2012.
  71. ^ "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.
  72. ^ Lai, Eric (28 October 2009). "Many open-sourcers back an Oracle takeover of MySQL". www.infoworld.com. InfoWorld. Retrieved 1 February 2018.
  73. ^ Wildeboer, Jan (5 January 2010). "Why I will not sign the MySQL petition". jan.wildeboer.net. Retrieved 1 February 2018.
  74. ^ Kanaracus, Chris (30 August 2011). "Wikileaks Cable Offers New Insights into Oracle-Sun Deal". PC World. Retrieved 16 September 2012.
  75. ^ "Mergers: Commission clears Oracle's proposed acquisition of Sun Microsystems" (Press release). European Union. 21 January 2010. Retrieved 16 September 2012.
  76. ^ "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.
  77. ^ "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 […]
  78. ^ . MySQL AB. Archived from the original on 9 April 2009. Retrieved 8 April 2009.
  79. ^ Guy Harrison; Steven Feuerstein (2008). MySQL Stored Procedure Programming. O'Reilly Media. p. 49. ISBN 978-0-596-10089-6.
  80. ^ "Monitoring RDS MySQL performance metrics". Datadog. 20 October 2015. Retrieved 14 December 2015.
  81. ^ . Archived from the original on 25 December 2010. Retrieved 5 January 2011.
  82. ^ "Replication". MySQL.
  83. ^ "MariaDB Replication". MariaDB KnowledgeBase. Retrieved 9 March 2019.
  84. ^ "MySQL :: MySQL 5.7 Reference Manual :: 16.1.4 MySQL Multi-Source Replication". dev.mysql.com. Retrieved 9 March 2019.
  85. ^ "MySQL :: MySQL 5.7 Reference Manual :: 16.3.9 Semisynchronous Replication". dev.mysql.com. Retrieved 9 March 2019.
  86. ^ "Semisynchronous Replication". MariaDB KnowledgeBase. Retrieved 9 March 2019.
  87. ^ "MySQL Cluster Replication: Multi-Master and Circular Replication". MySQL.
  88. ^ "MySQL University: MySQL Galera Multi-Master Replication". Oracle Corporation. 9 February 2010.
  89. ^ "MySQL :: MySQL 8.0 Reference Manual :: 18 Group Replication". dev.mysql.com. Retrieved 9 March 2019.
  90. ^ "13.1.20.5 FOREIGN KEY Constraints". MySQL. Retrieved 10 March 2021.
  91. ^ "Bug #3464 Constraints: support CHECK". MySQL. 14 April 2004. Retrieved 11 April 2015.
  92. ^ "MySQL 8.0 Reference Manual: CREATE TABLE Syntax". MySQL Reference Manual. Oracle. Retrieved 7 May 2018.
  93. ^ a b "CREATE TRIGGER Syntax". MySQL. Retrieved 11 April 2015.
  94. ^ "MySQL Bugs: #12654: 64-bit unix timestamp is not supported in MySQL functions". MySQL. 18 August 2005. Retrieved 6 October 2017.
  95. ^ "Allow dates beyond 2038 by dveeden · Pull Request #130 · mysql/mysql-server". GitHub, Inc. 22 March 2017. Retrieved 6 October 2017.
  96. ^ "The future of replication in MySQL". Facebook. Retrieved 9 December 2009.
  97. ^ . Code Futures. Archived from the original on 16 January 2010. Retrieved 9 December 2009.
  98. ^ "MySQL :: MySQL Enterprise High Availability". www.mysql.com. Retrieved 9 March 2019.
  99. ^ "High Availability & Performance Tuning". MariaDB KnowledgeBase. Retrieved 9 March 2019.
  100. ^ "Running MySQL on Amazon EC2 with EBS (Elastic Block Store)". Amazon Web Services. Retrieved 5 February 2013.
  101. ^ Finley, Klint. . ReadWriteWeb. Archived from the original on 9 November 2011. Retrieved 9 November 2011.
  102. ^ "MySQL :: MySQL Products".
  103. ^ "MySQL :: MySQL Community Edition".
  104. ^ mysql — The MySQL Command-Line Tool, MySQL Reference Manual
  105. ^ mysqladmin – the MySQL command-line tool, MySQL Reference Manual
  106. ^ "Percona Toolkit". Percona. Retrieved 26 March 2014.
  107. ^ "MySQL :: Download MySQL Shell". dev.mysql.com. Retrieved 9 March 2019.
  108. ^ "MySQL Connector/NET Developer Guide". mysql.com. 9 September 2020. Retrieved 20 September 2020.
  109. ^ "MySQL Connector/J Developer Guide". mysql.com. 18 September 2020. Retrieved 20 September 2020.
  110. ^ "MySQL :: Download Connector/Python". dev.mysql.com. Retrieved 9 March 2019.
  111. ^ "MySQL :: Download Connector/Node.js". dev.mysql.com. Retrieved 9 March 2019.
  112. ^ . Frequently Asked Questions. Percona. Archived from the original on 15 April 2015. Retrieved 6 June 2015.
  113. ^ "Percona challenges Oracle with alternate MySQL release". PC World. Retrieved 12 February 2015.
  114. ^ Clark, Jack (17 March 2011). "MySQL fork Drizzle gets general release". ZDNet. Retrieved 3 January 2016.
  115. ^ Steven J. Vaughan-Nichols (28 March 2013). "WebScaleSQL: MySQL for Facebook-sized databases". ZDNet. Retrieved 1 April 2014.
  116. ^ Klint Finley (27 March 2013). "Google and Facebook Team Up to Modernize Old-School Databases". Wired. Retrieved 1 April 2014.
  117. ^ Jack Clark (27 March 2013). "Forkin' 'L! Facebook, Google and friends create WebScaleSQL from MySQL 5.6". The Register. Retrieved 1 April 2014.
  118. ^ "Frequently Asked Questions". webscalesql.org. 27 March 2014. Retrieved 1 April 2014.
  119. ^ "OurDelta". openquery.com.au. 22 August 2017. Retrieved 20 August 2021.{{cite web}}: CS1 maint: url-status (link)

External links

  Media related to MySQL at Wikimedia Commons

  • Official website
  • MySQL at Oracle
  • Axmark, David (21 March 2008). "MySQL co-founder, David Axmark, on Sun's billion dollar acquisition" (video). intruders.tv.
  • MySQL at Curlie

mysql, juː, open, source, relational, database, management, system, rdbms, name, combination, name, founder, michael, widenius, daughter, acronym, structured, query, language, relational, database, organizes, data, into, more, data, tables, which, data, relate. MySQL ˌ m aɪ ˌ ɛ s ˌ k juː ˈ ɛ 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 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 MySQLScreenshot of the default MySQL command line banner and promptOriginal author s MySQL ABDeveloper s Oracle CorporationInitial release23 May 1995 27 years ago 1995 05 23 Stable release8 0 31 1 11 October 2022 3 months ago 11 October 2022 Repositorygithub wbr com wbr mysql wbr mysql serverWritten inC C 2 Operating systemLinux Solaris macOS Windows FreeBSD 3 Available inEnglishTypeRDBMSLicenseGPLv2 or proprietary 4 Websitewww wbr mysql wbr com 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 MySQL is also used by many popular websites including Facebook 10 11 Flickr 12 MediaWiki 13 Twitter 14 and YouTube 15 Contents 1 Overview 2 History 2 1 Milestones 2 2 Release history 2 3 Legal disputes and acquisitions 3 Features 3 1 Limitations 3 2 Deployment 3 3 High availability software 3 4 Cloud deployment 4 User interfaces 4 1 Graphical user interfaces 4 1 1 MySQL Workbench 4 1 2 Other GUI tools 4 2 Command line interfaces 5 Application programming interfaces 6 Project forks 6 1 Current 6 2 Abandoned 7 See also 8 Notes 9 References 10 External linksOverview EditMySQL is written in C and C Its SQL parser is written in yacc but it uses a home brewed lexical analyzer 16 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 17 The MySQL server software itself and the client libraries use dual licensing distribution They are offered under GPL version 2 or a proprietary license 18 Support can be obtained from the official manual 19 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 20 It has also been tested to be a fast stable and true multi user multi threaded SQL database server 21 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 Finland Swede Michael Monty Widenius Original development of MySQL by Widenius and Axmark began in 1994 22 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 23 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 24 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 25 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 26 Sun Microsystems acquired MySQL AB in 2008 27 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 28 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 29 Oracle acquired Sun Microsystems on 27 January 2010 30 31 32 The day Oracle announced the purchase of Sun Michael Monty Widenius forked MySQL launching MariaDB and took a swath of MySQL developers with him 33 Geir Hoydalsvik current Senior Software Development Director for MySQL at Oracle in 2018 MySQL Server 5 5 was generally available as of December 2010 update Enhancements and features include The default storage engine is InnoDB which supports transactions and referential integrity constraints Improved InnoDB I O subsystem 34 Improved SMP support 35 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 36 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 37 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 38 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 39 As of MySQL 5 7 8 August 2015 40 MySQL supports a native JSON data type defined by RFC 7159 41 MySQL Server 8 0 was announced in April 2018 42 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 43 MySQL was declared DBMS of the year 2019 from the DB Engines ranking 44 Release history Edit Release General availability Latest minor version Latest release End of support 45 Old version no longer maintained 5 1 14 November 2008 14 years ago 2008 11 14 46 5 1 73 47 2013 12 03 Dec 2013Old version no longer maintained 5 5 3 December 2010 12 years ago 2010 12 03 48 5 5 62 49 2018 10 22 Dec 2018Old version no longer maintained 5 6 5 February 2013 9 years ago 2013 02 05 50 5 6 51 51 2021 01 20 Feb 2021Older version yet still maintained 5 7 21 October 2015 7 years ago 2015 10 21 52 5 7 40 53 2022 10 11 Oct 2023Current stable version 8 0 19 April 2018 4 years ago 2018 04 19 54 8 0 31 55 2022 10 11 Apr 2026Legend Old versionOlder version still maintainedLatest versionLatest preview versionFuture 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 56 Legal disputes and acquisitions 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 57 58 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 59 After a preliminary hearing before Judge Patti Saris on 27 February 2002 the parties entered settlement talks and eventually settled 60 After the hearing FSF commented that Judge Saris made clear that she sees the GNU GPL to be an enforceable and binding license 61 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 62 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 63 In February 2006 Oracle Corporation acquired Sleepycat Software 64 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 65 In January 2008 Sun Microsystems bought MySQL AB for 1 billion 66 In April 2009 Oracle Corporation entered into an agreement to purchase Sun Microsystems 67 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 68 On 14 December 2009 Oracle pledged to continue to enhance MySQL 69 as it had done for the previous four years A movement against Oracle s acquisition of MySQL AB to Save MySQL 70 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 71 72 73 As part of the negotiations with the European Commission Oracle committed that MySQL server will continue until at least 2015 to use the dual licensing strategy long used by MySQL AB with proprietary and GPL versions available The antitrust of the EU had been pressuring it to divest MySQL as a condition for approval of the merger But as revealed by WikiLeaks the US Department of Justice at the request of Oracle pressured the EU to approve the merger unconditionally 74 The European Commission eventually unconditionally approved Oracle s acquisition of MySQL AB on 21 January 2010 75 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 76 Features EditMySQL is offered under two different editions the open source MySQL Community Server 77 and the proprietary Enterprise Server 78 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 A broad subset of ANSI SQL 99 as well as extensions Cross platform support Stored procedures using a procedural language that closely adheres to SQL PSM 79 Triggers Cursors Updatable 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 80 A set of SQL Mode options to control runtime behavior including a strict mode to better adhere to SQL standards X Open XA distributed transaction processing DTP support two phase commit as part of this using the default InnoDB storage engine Transactions with savepoints 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 81 SSL support Query caching Sub SELECTs i e nested SELECTs Built in replication support Asynchronous replication master slave from one master to many slaves 82 83 or many masters to one slave 84 Semi synchronous replication Master to slave replication where the master waits on replication 85 86 Synchronous replication Multi master replication is provided in MySQL Cluster 87 Virtual Synchronous Self managed groups of MySQL servers with multi master support can be done using Galera Cluster 88 or the built in Group Replication plugin 89 Full text indexing and searching b Embedded database library Unicode support a 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 c Native storage engines InnoDB MyISAM Merge Memory heap Federated Archive 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 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 90 Check constraints are parsed but ignored by all storage engines before MySQL version 8 0 15 91 92 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 93 No triggers can be defined on views 93 MySQL database s inbuilt functions like UNIX TIMESTAMP will return 0 after 03 14 07 UTC on 19 January 2038 94 Recently when there had been an attempt to solve the problem which had been assigned to the internal queue 95 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 96 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 97 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 98 MariaDB offers a similar offer in terms of products 99 Cloud deployment Edit Main article Cloud database MySQL can also be run on cloud computing platforms such as Microsoft Azure Amazon Elastic Compute Cloud Oracle Cloud Infrastructure 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 100 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 101 Notable cloud based MySQL services are the Amazon Relational Database Service Oracle MySQL Cloud Service Azure Database for MySQL Rackspace HP Converged Cloud Heroku and Jelastic In this model the database service provider takes responsibility for maintaining the host and database User interfaces EditGraphical 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 Main article 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 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 102 103 Other GUI tools Edit Adminer Database Workbench DBeaver DBEdit HeidiSQL LibreOffice Base Navicat OpenOffice org Base phpMyAdmin SQLBuddy SQLyog Toad for MySQL WebminCommand 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 104 105 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 106 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 107 Application programming interfaces EditMany programming languages with language specific APIs include libraries for accessing MySQL databases These include MySQL Connector Net for NET CLI Languages 108 and the JDBC driver for Java 109 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 110 or Node js 111 Project forks EditA 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 33 Percona Server for MySQL Percona Server for MySQL forked by Percona aims to retain close compatibility to the official MySQL releases 112 Also included in Percona Server for MySQL is XtraDB Percona s fork of the InnoDB Storage Engine 113 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 114 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 115 116 The project s source code is licensed under version 2 of the GNU General Public License and is hosted on GitHub 117 118 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 Corp 119 See also Edit Free and open source software portalComparison of database administration tools Comparison of MySQL database engines Comparison of relational database management systemsNotes Edit 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 Initially it was a MyISAM only feature supported by InnoDB since the release of MySQL 5 6 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 Changes in MySQL 8 0 31 2022 10 11 General Availability 11 October 2022 Retrieved 19 November 2022 MySQL Project Summary Ohloh Black Duck Software Retrieved 17 September 2012 Supported Platforms MySQL Database Oracle Retrieved 24 March 2014 Downloads MySQL Retrieved 3 August 2014 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 DB Engines Ranking of Relational DBMS DB Engines solidIT consulting amp software development GmbH Retrieved 3 April 2020 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 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 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 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 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 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 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 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 MySQL Customer YouTube MySQL com Oracle Retrieved 17 September 2012 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link MySQL Internals Manual dev mysql com Dev mysql com 4 March 2009 Retrieved 8 June 2009 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link MySQL for OpenVMS vmsmysql org 30 March 2011 Retrieved 16 January 2014 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link 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 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link MySQL Support Manual MySQL Developers Review of MySQL Server 5 0 Techworld com November 2005 MySQL Server Review LinuxMint com 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 Pachev Sasha MySQL History and Architecture www oreilly com Retrieved 5 December 2020 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link MySQL 3 23 Declared Stable Archived from the original on 15 August 2001 Capttofu FederatedX Pluggable Storage Engine Released Capttofu livejournal com Archived from the original on 13 August 2011 Retrieved 3 April 2009 MySQL Federated Tables The Missing Manual O Reilly Media 8 October 2006 Retrieved 1 February 2012 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link 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 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link 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 Zaitsev Peter 10 April 2008 TPC H Run on MySQL 5 1 and 6 0 MySQL Performance Blog Retrieved 8 June 2009 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link Oracle Completes Acquisition of Sun Press release Oracle 27 January 2010 Retrieved 1 February 2012 Overview and Frequently Asked Questions PDF a href Template Cite web html title Template Cite web cite web a CS1 maint url status link Krill Paul 27 January 2010 Oracle s ambitious plans for integrating Sun s technology InfoWorld Retrieved 8 May 2018 a b Pearce Rohan 28 March 2013 Dead database walking MySQL s creator on why the future belongs to MariaDB Computerworld Retrieved 2 October 2020 InnoDB I O Subsystem Changes dev mysql com Archived from the original on 10 February 2012 Retrieved 1 February 2012 Scalability Improvements dev mysql com Archived from the original on 10 February 2012 Retrieved 1 February 2012 MySQL Lists packagers MySQL 6 0 11 Alpha has been released Lists mysql com Retrieved 1 February 2012 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link Oracle Announces General Availability of MySQL 5 6 Archived from the original on 13 June 2018 Retrieved 13 June 2018 What s New in MySQL 5 6 MySQL Developer Zone Archived from the original on 23 April 2011 Retrieved 21 April 2011 Oracle Announces General Availability of MySQL 5 7 Oracle Retrieved 1 November 2015 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link MySQL MySQL 5 7 Release Notes Changes in MySQL 5 7 8 2015 08 03 Release Candidate dev mysql com Retrieved 10 October 2019 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link 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 Frank Mike Announcing General Availability of MySQL 8 0 blogs oracle com Retrieved 10 October 2019 8 0 0 dmr Milestone Release Retrieved 12 September 2016 Gelbmann Matthias 3 January 2020 MySQL is the DBMS of the Year 2019 db engines com DB Engines Retrieved 7 January 2020 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link Oracle Lifetime Support Policy PDF Retrieved 10 October 2019 A 1 MySQL 5 1 FAQ General docs oracle com Retrieved 2 August 2017 2 Changes in MySQL 5 1 73 2013 12 03 docs oracle com Retrieved 28 April 2020 MySQL MySQL 5 5 Release Notes dev mysql com Retrieved 15 January 2018 2 Changes in MySQL 5 5 62 2018 10 22 General availability docs oracle com Retrieved 28 April 2020 MySQL MySQL 5 6 Release Notes dev mysql com Retrieved 15 January 2018 MySQL MySQL 5 6 Release Notes Changes in MySQL 5 6 51 2021 01 20 General Availability dev mysql com Retrieved 4 March 2021 MySQL MySQL 5 7 Release Notes dev mysql com Retrieved 15 January 2018 Changes in MySQL 5 7 40 2022 10 11 General Availability dev mysql com Retrieved 11 October 2022 Hoydalsvik Geir 19 April 2018 What s New in MySQL 8 0 Generally Available Retrieved 10 October 2019 MySQL MySQL 8 0 Release Notes Changes in MySQL 8 0 31 2022 10 11 General Availability dev mysql com Retrieved 1 December 2022 MySQL 8 is coming opensource com Retrieved 27 April 2018 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 FAQ on MySQL vs NuSphere Dispute MySQL AB 13 July 2001 Archived from the original on 17 July 2001 Retrieved 16 September 2012 Affidavit of Eben Moglen on Progress Software vs MySQL AB Preliminary Injunction Hearing Archived from the original on 7 February 2005 Progress Software Corporation v MySQL AB 195 F Supp 2d 328 D Mass 2002 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 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 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 Babcock Charles 14 February 2006 Oracle Buys Sleepycat Is JBoss Next InformationWeek CPM Media Retrieved 16 September 2012 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 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 Oracle to Buy Sun Press release Sun Microsystems 20 April 2009 Archived from the original on 22 April 2009 Retrieved 16 September 2012 Thomasch Paul Finkle Jim 20 August 2009 Oracle wins U S approval to buy Sun Microsystems Reuters Retrieved 2 March 2020 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 Michael Widenius 12 December 2009 Help saving MySQL Monty Says Google Retrieved 16 September 2012 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 Lai Eric 28 October 2009 Many open sourcers back an Oracle takeover of MySQL www infoworld com InfoWorld Retrieved 1 February 2018 Wildeboer Jan 5 January 2010 Why I will not sign the MySQL petition jan wildeboer net Retrieved 1 February 2018 Kanaracus Chris 30 August 2011 Wikileaks Cable Offers New Insights into Oracle Sun Deal PC World Retrieved 16 September 2012 Mergers Commission clears Oracle s proposed acquisition of Sun Microsystems Press release European Union 21 January 2010 Retrieved 16 September 2012 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 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 Which Should I Use MySQL Enterprise or MySQL Community Server MySQL AB Archived from the original on 9 April 2009 Retrieved 8 April 2009 Guy Harrison Steven Feuerstein 2008 MySQL Stored Procedure Programming O Reilly Media p 49 ISBN 978 0 596 10089 6 Monitoring RDS MySQL performance metrics Datadog 20 October 2015 Retrieved 14 December 2015 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 Replication MySQL MariaDB Replication MariaDB KnowledgeBase Retrieved 9 March 2019 MySQL MySQL 5 7 Reference Manual 16 1 4 MySQL Multi Source Replication dev mysql com Retrieved 9 March 2019 MySQL MySQL 5 7 Reference Manual 16 3 9 Semisynchronous Replication dev mysql com Retrieved 9 March 2019 Semisynchronous Replication MariaDB KnowledgeBase Retrieved 9 March 2019 MySQL Cluster Replication Multi Master and Circular Replication MySQL MySQL University MySQL Galera Multi Master Replication Oracle Corporation 9 February 2010 MySQL MySQL 8 0 Reference Manual 18 Group Replication dev mysql com Retrieved 9 March 2019 13 1 20 5 FOREIGN KEY Constraints MySQL Retrieved 10 March 2021 Bug 3464 Constraints support CHECK MySQL 14 April 2004 Retrieved 11 April 2015 MySQL 8 0 Reference Manual CREATE TABLE Syntax MySQL Reference Manual Oracle Retrieved 7 May 2018 a b CREATE TRIGGER Syntax MySQL Retrieved 11 April 2015 MySQL Bugs 12654 64 bit unix timestamp is not supported in MySQL functions MySQL 18 August 2005 Retrieved 6 October 2017 Allow dates beyond 2038 by dveeden Pull Request 130 mysql mysql server GitHub Inc 22 March 2017 Retrieved 6 October 2017 The future of replication in MySQL Facebook Retrieved 9 December 2009 Database Sharding Code Futures Archived from the original on 16 January 2010 Retrieved 9 December 2009 MySQL MySQL Enterprise High Availability www mysql com Retrieved 9 March 2019 High Availability amp Performance Tuning MariaDB KnowledgeBase Retrieved 9 March 2019 Running MySQL on Amazon EC2 with EBS Elastic Block Store Amazon Web Services Retrieved 5 February 2013 Finley Klint 7 Cloud Based Database Services ReadWriteWeb Archived from the original on 9 November 2011 Retrieved 9 November 2011 MySQL MySQL Products MySQL MySQL Community Edition mysql The MySQL Command Line Tool MySQL Reference Manual mysqladmin the MySQL command line tool MySQL Reference Manual Percona Toolkit Percona Retrieved 26 March 2014 MySQL Download MySQL Shell dev mysql com Retrieved 9 March 2019 MySQL Connector NET Developer Guide mysql com 9 September 2020 Retrieved 20 September 2020 MySQL Connector J Developer Guide mysql com 18 September 2020 Retrieved 20 September 2020 MySQL Download Connector Python dev mysql com Retrieved 9 March 2019 MySQL Download Connector Node js dev mysql com Retrieved 9 March 2019 How is it related to other MySQL forks Frequently Asked Questions Percona Archived from the original on 15 April 2015 Retrieved 6 June 2015 Percona challenges Oracle with alternate MySQL release PC World Retrieved 12 February 2015 Clark Jack 17 March 2011 MySQL fork Drizzle gets general release ZDNet Retrieved 3 January 2016 Steven J Vaughan Nichols 28 March 2013 WebScaleSQL MySQL for Facebook sized databases ZDNet Retrieved 1 April 2014 Klint Finley 27 March 2013 Google and Facebook Team Up to Modernize Old School Databases Wired Retrieved 1 April 2014 Jack Clark 27 March 2013 Forkin L Facebook Google and friends create WebScaleSQL from MySQL 5 6 The Register Retrieved 1 April 2014 Frequently Asked Questions webscalesql org 27 March 2014 Retrieved 1 April 2014 OurDelta openquery com au 22 August 2017 Retrieved 20 August 2021 a href Template Cite web html title Template Cite web cite web a CS1 maint url status link External links Edit Media related to MySQL at Wikimedia Commons Wikibooks has more on the topic of MySQL Official website MySQL at Oracle Axmark David 21 March 2008 MySQL co founder David Axmark on Sun s billion dollar acquisition video intruders tv MySQL at Curlie Retrieved from https en wikipedia org w index php title MySQL amp oldid 1127875696, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.