In response to the acquisition by Oracle, members of the MySQL community have created several forks such as Drizzle and MariaDB in fear that Oracle would hurt the development of MySQL because MySQL competes with Oracle Corporation's other database products.

All major programming languages with language-specific APIs include Libraries for accessing MySQL databases. In addition, an ODBC interface called MyODBC allows additional programming languages that support the ODBC interface to communicate with a MySQL database, such as ASP or ColdFusion. The MySQL server and official libraries are mostly implemented in ANSI C/ANSI C++.

Management and Graphical Frontends

MySQL Workbench in Windows, displaying the Home Screen which streamlines use of its full capabilities

MySQL is primarily an RDBMS and therefore ships with no GUI tools to administer MySQL databases or manage data contained within. Users may use the included command-line tools,[13] or download MySQL Frontends from various parties that have developed desktop software and web applications to manage MySQL databases, build database structure, and work with data records.

Official

The official MySQL Workbench is a free integrated environment developed by MySQL AB, that enables users to graphically administer MySQL databases and visually design database structure. MySQL Workbench replaces the previous package of software, MySQL GUI Tools. Similar to other third-party packages but still considered the authoritative MySQL frontend, MySQL Workbench lets users manage the following:

MySQL Workbench is available in two editions, the regular free and open sourceCommunity Edition which may be downloaded from the MySQL website, and the commercial Standard Edition which extends and improves the feature set of the Community Edition.

Third party

Several other third-party commercial and non-commercial graphical administration applications (or "Frontends") are available that integrate with MySQL and enable users to work with database structure and data visually. Some well-known frontends are:

HeidiSQL - a full featured free frontend that runs on Windows, and can connect to local or remote MySQL servers to manage databases, tables, column structure, and individual data records. Also supports specialised GUI features for date/time fields and enumerated multiple-value fields[14].

Navicat - a series of commercial graphical database management applications, developed for Windows, Macintosh and Linux.

Deployment

MySQL can be built and installed manually from source code, but this can be tedious so 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.

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 or a pre-integrated TurnKey MySQL appliance that is ready-to-use[15] without manual configuration or setup.

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, so on larger scales, multi-server MySQL 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.[16] The master server synchronizes continually with its 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.[17]

Features

As of April 2009[update], MySQL offers MySQL 5.1 in two different variants: the MySQL Community Server and Enterprise Server.[18] They have a common code base and include the following features:

The developers release monthly versions of the MySQL Enterprise Server. The sources can be obtained either from MySQL's customer-only Enterprise site or from MySQL's Bazaar repository, both under the GPL license. The MySQL Community Server is published on an unspecified schedule under the GPL and contains all bug fixes that were shipped with the last MySQL Enterprise Server release. Binaries are no longer provided by MySQL for every release of the Community Server.[20][21]

Distinguishing features

MySQL implements the following features, which some other RDBMS systems may not:

Multiple storage engines, allowing one to choose the one that is most effective for each table in the application (in MySQL 5.0, storage engines must be compiled in; in MySQL 5.1, storage engines can be dynamically loaded at run time):

Support and licensing

Via MySQL Enterprise MySQL AB offers support itself, including a 24/7 service with 30-minute response time. The support team has direct access to the developers as necessary to handle problems. In addition, it hosts forums and mailing lists, employees and other users are often available in several IRC channels providing assistance.

Buyers of MySQL Enterprise have access to binaries and software certified for their particular operating system, and access to monthly binary updates with the latest bug-fixes. Several levels of Enterprise membership are available, with varying response times and features ranging from how to and emergency support through server performance tuning and system architecture advice. The MySQL Network Monitoring and Advisory Service monitoring tool for database servers is available only to MySQL Enterprise customers.

Both the MySQL server software itself and the client libraries use dual-licensing distribution. Users may choose the GPL,[30] which MySQL has extended with a FLOSS License Exception. It allows Software licensed under other OSI-compliant open source licenses, which are not compatible to the GPL, to link against the MySQL client libraries.[31]

Customers that do not wish to follow the terms of the GPL may purchase a proprietary license.[32]

Corporate backing history

In October 2005, Oracle Corporation acquired Innobase OY, the Finnish company that developed the InnoDB storage engine that allows MySQL to provide such functionality as transactions and foreign keys. After the acquisition, an Oracle press release[33]
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. During the MySQL Users Conference in April 2006, MySQL issued a press release that confirmed that MySQL and Innobase OY agreed to a "multi-year" extension of their licensing agreement.[34]

In February 2006, Oracle Corporation acquired Sleepycat Software,[35] makers of the Berkeley DB, a database engine providing the basis for another MySQL storage engine.

In April 2009, Oracle Corporation entered into an agreement to purchase Sun Microsystems,[36] current owners of the MySQL intellectual property. Sun's board of directors unanimously approved the deal, it was also approved by Sun's shareholders, and by the U.S. government on August 20, 2009.[37] On December 14, 2009, Oracle pledged to continue to enhance MySQL.[38] In Europe the merge is under scrutiny by EU antitrust regulators, whose main concerns are on conflict of interests with existing database software by Oracle. Michael Widenius, one of the founders of MySQL, launched a petition to pledge EU Commission to stop the deal.[39] As the EC seems likely to approve the deal regardless, Widenius has since called on Russian and Chinese regulators to object to the deal.[40]

Forks in response to Oracle takeover

In response to Oracle's takeover of MySQL with the acquisition of Sun Microsystems, several forks have been made which hope to ensure the future success of MySQL despite being purchased by its biggest competitor.[citation needed] These include Drizzle and MariaDB. There are also moves in the community to retain the original MySQL offering, such as the Save MySQL petition.