MySQL

MySQL 9.7.0

MySQL is Oracle's open source relational database server for Linux, Unix, macOS and Windows. It stores data in SQL tables and JSON documents and supports transactions, replication and clustering.

Updated May 12, 2026
174.37 MB
5.0

Use the arrow keys to choose a rating, then press Enter or Space to submit it.

Excellent 1 user ratings

App Specs

DeveloperOracle
LicenseFreeware
CategoryInternet
Available platformsWindows
Downloads83

Overview

Oracle develops and supports MySQL, an open source relational database management system. Applications use it to store data in tables, enforce relationships between those tables and retrieve information with SQL. The server runs on Linux, Unix, macOS and Windows. The Community edition is free under the GPL, while Oracle sells commercial licenses and a paid Enterprise edition.

Server, clients and connectors

MySQL works as a client/server system. The multithreaded server holds the databases and executes statements. Client programs and applications connect to it over TCP/IP, Unix socket files, or named pipes and shared memory on Windows.

Applications reach MySQL through a C client library and official connectors such as Connector/J for Java, Connector/ODBC and Connector/NET, with APIs for PHP, Python, Perl and other languages. People working directly with the database use the mysql command-line client. MySQL Workbench adds a graphical tool for database design, SQL development and administration.

InnoDB and other storage engines

MySQL separates its SQL layer from the storage engines that write table data. InnoDB is the default. Its transactions follow the ACID model. InnoDB commits or rolls back a group of changes together, and committed work survives a crash. Row-level locking and consistent reads let many users modify the same table at once without locking it entirely.

InnoDB arranges each table around its primary key, which speeds lookups by that key. It enforces foreign keys, rejecting changes that would leave orphaned rows in related tables. It also offers full-text and spatial indexes, table compression and encryption at rest. MyISAM remains available as a nontransactional engine, and NDB powers MySQL NDB Cluster.

Queries and database logic

MySQL supports standard SQL with inner and outer joins, grouping with aggregate functions, sorting, and queries across several databases. Column types cover numbers, fixed and variable-length strings, binary data, dates and times, ENUM and SET values and spatial data. EXPLAIN shows how the optimizer will execute a query, which helps when choosing indexes.

Stored procedures, triggers and views keep logic and reusable queries inside the database. Partitioning splits a large table into separately managed parts. Character sets and collations decide how text is stored, sorted and compared.

JSON columns and the Document Store

A MySQL table can include a JSON column. The server rejects invalid documents and stores valid ones in a binary format. That format lets it read a single key or array element without parsing the whole text. Functions such as JSON_EXTRACT and JSON_SET, combined with path expressions like $.customer.name, read or change parts of a document. To index a value inside JSON, a generated column extracts it and that column is indexed.

The Document Store lets MySQL act as a schema-less database. Documents sit in collections without predefined fields, and applications create, find, modify and remove them through the X DevAPI. MySQL Shell, scriptable in JavaScript and Python, works with these collections. The same database can still hold relational tables.

Replication and failover

MySQL replication copies changes from a source server to one or more replicas. It can copy all data or selected databases and tables. The source records changes in its binary log; replicas apply them as statements, changed rows or a mix of both. Global transaction identifiers let replicas track applied transactions without managing log positions.

Replication is asynchronous by default. In semisynchronous mode, a commit waits until at least one replica confirms receipt. A replica can also be kept a fixed time behind the source, leaving a window to recover from an accidental mass delete. Typical uses are spreading reads across replicas, running backups or analytics without loading the source, and keeping a copy at a remote site.

Group Replication keeps a group of servers in agreement on every change and provides automatic failover. InnoDB Cluster packages it with at least three servers. MySQL Shell creates and manages the cluster, and MySQL Router routes application connections to the right member. Clusters normally have one writable primary, with an optional multi-primary mode.

Security and administration

MySQL controls access through user accounts with privileges that can be restricted by host. The Performance Schema shows resource use by user, host and thread, and the Information Schema exposes metadata through ordinary queries. Command-line tools handle routine work: mysqldump exports databases as SQL, and mysqlcheck checks, optimizes and repairs tables.

Community and Enterprise editions

All of the above is part of MySQL Community Edition. The commercial Enterprise Edition adds:

  • MySQL Enterprise Backup for online full, incremental and partial backups with point-in-time recovery
  • a thread pool that reduces connection overhead under heavy load
  • transparent data encryption, PAM and Active Directory authentication, and data masking
  • a firewall that blocks SQL statements outside a learned allowlist
  • audit logging, JavaScript stored programs and 24/7 Oracle support

Similar Apps