Understanding MySQL's Dual Licensing Model

MySQL is distributed under a dual licensing model that has been fundamental to its commercial strategy since Oracle's acquisition of Sun Microsystems in 2010. Under this model, MySQL is available in two forms: a Community Edition released under the GNU General Public License version 2 (GPLv2), and a commercial edition range that requires a paid subscription from Oracle. The choice between these paths is not merely a cost decision — it is a legal and strategic decision that must be made correctly for each deployment context.

The dual licensing model was designed to serve two distinct markets simultaneously. Open source projects, internal deployments, and organisations willing to comply with GPL obligations can use MySQL Community Edition at no charge. Commercial software vendors, organisations embedding MySQL in proprietary products, and enterprises that want Oracle's support, security patches, and advanced features choose the commercial edition. The tension between these two paths — and Oracle's ability to enforce the GPL's requirements on organisations that incorrectly assume they qualify for the free Community Edition — creates the primary compliance risk in MySQL licensing.

The GPL Licensing Obligation Explained

The GNU General Public License version 2 that governs MySQL Community Edition is a copyleft licence, meaning that it imposes specific obligations on organisations that distribute software incorporating or linking to GPL-licensed code. The core GPL obligation is this: if you distribute a software product that incorporates, links to, or derives from GPL-licensed MySQL code, you must distribute that software under the GPL as well, making your own source code available to recipients under the same licence terms.

For organisations using MySQL internally — as the database backend of an internally deployed application, for internal business intelligence or data processing — the GPL's distribution requirement is typically not triggered. You are using MySQL, not distributing it, and internal use does not require GPL compliance disclosures or source code publication. This is why many enterprises run MySQL Community Edition for internal applications without commercial licensing and remain fully compliant.

The GPL obligation becomes critical when software incorporating MySQL is distributed externally. OEMs, Independent Software Vendors (ISVs), SaaS providers offering multi-tenant applications built on MySQL, and any organisation that ships software to customers where MySQL is bundled or embedded must comply with GPL obligations or must purchase a commercial MySQL licence from Oracle. The commercial licence replaces the GPL, allowing the licensee to distribute MySQL-embedded software without triggering GPL obligations on their own source code.

The FOSS Exception

Oracle provides a Universal FOSS Exception for MySQL Client Libraries (but not for MySQL Server itself), which allows qualifying Free and Open Source Software applications to use MySQL Client Libraries without requiring the FOSS application to be licensed under the GPL. The FOSS Exception covers applications that are distributed under an OSI-approved open source licence, are not distributed under a commercial licence, and meet Oracle's other FOSS Exception conditions.

The FOSS Exception is frequently misapplied: it covers MySQL Client Libraries only, not MySQL Server. An open source application that connects to MySQL Server using the client libraries may qualify for the FOSS Exception, but deploying MySQL Server Community Edition for commercial purposes or in a context where distribution of the server itself is involved requires separate analysis of whether the GPL or a commercial licence applies. Oracle's licensing documentation for the FOSS Exception is specific and technical — if you are relying on it to justify free MySQL Server deployment, have the analysis reviewed by a MySQL licensing specialist before relying on it commercially.

Not sure whether your MySQL deployment requires a commercial licence?

We provide rapid MySQL licensing assessments — GPL compliance analysis, edition selection and Oracle audit risk review.
Request Assessment →

MySQL Commercial Editions: What You Get and What You Pay

Oracle offers four MySQL commercial editions, each targeting a different deployment profile and feature requirement. Understanding the distinction between editions is essential for selecting the right licence and avoiding the common error of purchasing a higher edition than required — or, more expensively, deploying a higher edition than licensed.

MySQL Standard Edition

MySQL Standard Edition is Oracle's entry-level commercial MySQL subscription, priced at approximately $2,140 per server per year. It includes MySQL Server with the standard feature set (without the advanced security, high availability, and management features of Enterprise Edition), Oracle Premier Support (24x7 technical support, patch access, and Knowledge Base), and access to MySQL Workbench and standard client tools. MySQL Standard Edition is appropriate for small to medium production deployments that do not require advanced security features, enterprise-grade audit logging, or high-availability configurations beyond standard MySQL replication.

The Standard Edition subscription is per server, and "server" is defined by Oracle as a single physical or virtual machine. Socket count does not affect Standard Edition pricing — a server with four processors is licensed the same as a single-processor server under the Standard Edition model, which differentiates it from Oracle Database licensing but is consistent with MySQL's historical per-server pricing.

MySQL Enterprise Edition

MySQL Enterprise Edition is Oracle's primary commercial MySQL offering for production enterprise deployments, priced at $5,350 per year for a 1 to 4 socket server, and $10,700 per year for a server with 5 or more sockets. Unlimiteds for large enterprise deployments can run $16,050 to $32,100 for the highest tier. Enterprise Edition includes all Standard Edition features plus MySQL Enterprise Monitor (real-time monitoring and query analysis), MySQL Enterprise Backup (hot backup without downtime), MySQL Enterprise Security (PAM authentication, LDAP integration), MySQL Enterprise Audit (policy-based audit logging compliant with GDPR, HIPAA, PCI DSS, and SOX requirements), MySQL Enterprise Firewall (query whitelist enforcement), and MySQL Enterprise HA (InnoDB Cluster for automated failover).

MySQL Enterprise Edition is the correct choice for production deployments that require audit logging, security policy enforcement, enterprise backup without maintenance windows, or automated high availability. The audit and security features in particular are increasingly important for financial services, healthcare, and public sector organisations where regulatory compliance mandates database activity monitoring and audit trail integrity. Deploying Community Edition in these environments is not just a licensing risk — it is a compliance risk.

MySQL Cluster Carrier Grade Edition

MySQL Cluster Carrier Grade Edition is Oracle's highest MySQL tier, priced at $10,700 per year for standard deployments and $21,400 for 5-plus socket deployments. It includes all Enterprise Edition features plus MySQL NDB Cluster, which provides in-memory, real-time database clustering for carrier-grade telecommunications and high-frequency financial trading applications. MySQL Cluster offers sub-millisecond query response, 99.999 percent availability (less than five minutes downtime per year), and linear horizontal scaling for write-intensive workloads. This edition is appropriate only for organisations with specific telecommunications, financial trading, or extreme high-availability requirements — it is not a performance upgrade to Enterprise Edition for standard enterprise OLTP or analytics workloads.

MySQL HeatWave (Cloud-Native Edition)

Oracle MySQL HeatWave is Oracle's cloud-native MySQL service, available on Oracle Cloud Infrastructure (OCI), AWS, and Azure. HeatWave combines MySQL database services with an in-memory analytics accelerator that runs analytics workloads at high speed without requiring a separate analytical database. MySQL HeatWave is priced on a consumption basis in cloud environments, with rates varying by cloud provider and HeatWave instance size. HeatWave is the recommended path for new cloud-native MySQL deployments and for organisations migrating on-premises MySQL to Oracle-managed cloud infrastructure.

When You Must Purchase a Commercial MySQL Licence

The GPL versus commercial decision should be made explicitly and deliberately for every MySQL deployment. The following scenarios consistently require a commercial MySQL licence and represent the most frequent compliance exposures in enterprise MySQL audits.

Embedding MySQL in Proprietary Software for Distribution

Any OEM, ISV, or commercial software vendor that ships MySQL — whether bundled, embedded, or required as a dependency — in a proprietary product that is distributed to customers must purchase a commercial MySQL OEM licence. The GPL requires that your proprietary software be licensed under the GPL if it incorporates or links to GPL-licensed code, and most proprietary software vendors are not willing to open-source their products to satisfy this obligation. Oracle's OEM commercial licence explicitly replaces the GPL for these scenarios and allows proprietary distribution without triggering copyleft obligations.

Oracle's OEM licence pricing is negotiated based on distribution volume, product category, and geographic scope. Standard OEM licensing starts at several thousand dollars per distribution unit for lower volumes and reduces significantly for large-scale distribution. The cost of OEM licensing is almost always less than the legal and commercial risk of distributing GPL-licensed MySQL in a proprietary product without the correct licence.

SaaS Applications Using MySQL with Proprietary Layers

SaaS providers present a more nuanced licensing scenario. Under the traditional GPL interpretation, a SaaS provider that uses MySQL as the database layer for its cloud application but does not distribute MySQL itself to customers is not technically distributing GPL-licensed code — the application runs on the provider's servers, and users interact with it through a web interface without receiving MySQL binaries. Under this analysis, SaaS use of MySQL Community Edition may be permissible under the GPL without commercial licensing, provided the SaaS application itself does not include MySQL in distributed software packages.

However, several important caveats apply. First, Oracle has taken an increasingly aggressive position on what constitutes distribution in cloud and container environments. Second, if the SaaS provider distributes MySQL-embedded desktop clients, mobile applications, or API SDKs that include MySQL client libraries, distribution may be triggered even for cloud-hosted applications. Third, any SaaS provider that wants Oracle's support, patches, Enterprise Edition features, or compliance with Oracle's audit scope requirements should purchase commercial MySQL licences rather than relying on a GPL analysis that may be contested.

Government, Regulated, and Public Sector Deployments

Government and regulated industry organisations operating MySQL Community Edition in production environments face increasing compliance pressure from their regulatory frameworks. GDPR, HIPAA, PCI DSS, and SOX requirements typically demand database audit logging, access control enforcement, and data encryption at rest — capabilities that MySQL Community Edition does not provide natively but that MySQL Enterprise Edition includes. Using Community Edition for regulated data processing and relying on application-layer or OS-layer compensating controls may satisfy the spirit of regulatory requirements but creates audit exposure when Oracle's compliance auditors or regulatory auditors review your database configuration.

"MySQL Community Edition appears free until you run it in a regulated environment, embed it in commercial software, or deploy it at scale in containers. At that point, the cost of non-compliance with GPL obligations or Oracle's commercial terms typically far exceeds the cost of the commercial licence you should have purchased."

Oracle MySQL Audit Risks

Oracle's MySQL audit programme is less aggressive than its database audit programme, but it is real and it is growing. Oracle audits are increasingly targeting organisations in three specific MySQL deployment patterns: commercial software vendors distributing MySQL-embedded applications without OEM licences, enterprises that have deployed MySQL Enterprise Edition features without purchasing Enterprise Edition, and Kubernetes environments where MySQL Enterprise Edition instances have proliferated beyond the licensed server count.

How Oracle Identifies MySQL Audit Targets

Oracle identifies MySQL audit targets through multiple channels: reports from its reseller and partner network (VAR partners who lose deals to community edition deployments may report customers to Oracle's compliance team), analysis of support contract renewals where MySQL Enterprise Edition features are used without Enterprise Edition support, and automated scanning of public-facing MySQL instances that reveal version and configuration data. Oracle also receives reports from employees and contractors of organisations that are running unlicensed MySQL Enterprise Edition deployments, particularly in financial services and healthcare where commercial edition features are in active use.

Container and Kubernetes Compliance Risks

Container environments create specific MySQL licensing compliance challenges that most enterprise ITAM programmes are not equipped to address. When MySQL Enterprise Edition is deployed as a container image in a Kubernetes cluster, the container scheduler can spin up and down MySQL instances based on load — potentially running dozens of MySQL Enterprise Edition instances simultaneously at peak load, each of which requires a separate server licence. Oracle's licence agreement counts each container instance as a separate server for licensing purposes, and the peak concurrent instance count during an audit period is the correct measurement basis.

Kubernetes auto-scaling of MySQL Enterprise Edition pods can therefore generate significant unplanned licence exposure. An organisation that purchases five MySQL Enterprise Edition server licences and deploys MySQL in a Kubernetes cluster that auto-scales to twenty concurrent instances at peak load has fifteen unlicensed instances. Oracle may count the peak concurrent instance count during an audit, not the minimum or average count, resulting in a shortfall of fifteen licences at $5,350 per year each — a $80,250 annual exposure from a Kubernetes scaling configuration that nobody in the organisation was tracking as a licence metric.

Mitigate this risk by configuring Kubernetes resource limits to enforce a maximum MySQL pod count equal to the number of licensed server instances, and by monitoring your Kubernetes cluster for MySQL Enterprise Edition pod counts continuously. Include MySQL Enterprise Edition server count in your regular ITAM programme reconciliation, not just your traditional on-premises server inventory.

Common MySQL Audit Findings

The most frequent findings in Oracle MySQL audits across the engagements Redress Compliance has supported include: MySQL Enterprise Edition features deployed on servers covered only by MySQL Standard Edition or MySQL Community Edition subscriptions; MySQL Enterprise Edition containers running in Kubernetes clusters in excess of the licensed server count; OEM software distribution of MySQL-embedded applications without Oracle OEM commercial licences; and MySQL Enterprise Edition backups created using MySQL Enterprise Backup on servers that are licensed only for Community Edition.

Received an Oracle MySQL audit notice — or concerned about your current compliance position?

We support enterprises through Oracle MySQL compliance assessments and audit defence.
Get MySQL Audit Support →

MySQL in Cloud Environments: AWS, Azure and OCI

MySQL's cloud deployment picture is complicated by the intersection of Oracle's licensing terms, cloud provider managed service offerings, and customer BYOL (Bring Your Own Licence) scenarios. Understanding the correct licensing model for MySQL in each cloud deployment context is essential for cloud architects and procurement teams.

AWS RDS for MySQL and AWS Aurora MySQL

Amazon RDS for MySQL is a managed MySQL service that uses MySQL Community Edition under the GPL. AWS has exercised the rights granted by the GPL to deploy and offer MySQL as a managed cloud service, and customers using RDS for MySQL are using the Community Edition feature set without any commercial MySQL licence requirement from Oracle. However, this means the Enterprise Edition features — Enterprise Backup, Enterprise Audit, Enterprise Firewall, Enterprise Monitor — are not available in standard RDS for MySQL.

AWS Aurora MySQL is Amazon's cloud-native, MySQL-compatible database service. Aurora MySQL is not MySQL — it is Amazon's proprietary database engine with MySQL-compatible protocol and SQL, running on Aurora's own distributed storage architecture. From an Oracle licensing perspective, Aurora MySQL does not require an Oracle MySQL licence because it is not Oracle's MySQL product. However, organisations migrating from Oracle MySQL Enterprise Edition to Aurora MySQL should assess whether any MySQL Enterprise Edition features — particularly audit logging, security enforcement, and backup functionality — need to be replicated using Aurora-native or third-party tools before the migration.

MySQL on Oracle Cloud Infrastructure (OCI)

Oracle MySQL HeatWave on OCI is Oracle's preferred cloud MySQL deployment model. MySQL HeatWave on OCI includes Enterprise Edition features at the service level, with consumption-based pricing that covers the database compute and HeatWave analytics acceleration. BYOL for MySQL is also available on OCI virtual machines, where your existing MySQL Enterprise Edition server licences can be applied to OCI instances under Oracle's BYOL policy.

The BYOL rules for MySQL on cloud platforms require attention: Oracle's cloud BYOL policy specifies minimum licence requirements per virtual machine configuration and may require active support contracts. Before migrating MySQL Enterprise Edition from on-premises to any cloud platform under BYOL, verify the specific BYOL rules with Oracle Support and confirm that your current licence and support configuration meets the cloud BYOL requirements. A licence that was valid for on-premises deployment may not automatically qualify for cloud BYOL without additional entitlements or support renewals.

Cost Optimisation Strategies for MySQL Deployments

The most effective MySQL cost optimisation strategy starts with a structured audit of your current deployment portfolio and licence entitlement. Many enterprises carry a mix of MySQL Community Edition deployments (some compliant, some inadvertently non-compliant), MySQL Enterprise Edition subscriptions (some correctly sized, some over-subscribed relative to actual feature usage), and cloud MySQL deployments that may or may not be correctly licensed for their deployment context. A clean inventory is the foundation of every optimisation programme.

Right-Sizing Edition Selection

The most frequent MySQL over-spending pattern is deploying MySQL Enterprise Edition on servers that only require MySQL Standard Edition or MySQL Community Edition features. Enterprise Edition at $5,350 per server per year is the correct choice only for deployments that actively use Enterprise Backup, Enterprise Audit, Enterprise Monitor, Enterprise Security, Enterprise Firewall, or InnoDB Cluster HA. Servers running MySQL as a straightforward OLTP database without the Enterprise Edition feature set are candidates for downgrade to Standard Edition at $2,140 per server per year — a 60 percent reduction in licence cost per server.

Conduct an annual review of MySQL Enterprise Edition deployments against active feature usage. Any Enterprise Edition server where only standard MySQL features are in active use is a candidate for edition downgrade at the next subscription renewal. Ensure that the downgrade does not expose the deployment to an audit finding by confirming that no Enterprise Edition features are in use before the downgrade takes effect.

Consolidation and Virtualisation

MySQL's per-server pricing model creates an optimisation opportunity through server consolidation. Multiple MySQL Community Edition or Standard Edition instances running on separate physical servers can be consolidated onto fewer virtual machines without any change in per-server licence cost, assuming each VM is counted as a separate server. Consolidating 10 physical MySQL Standard Edition servers onto 4 virtualised servers reduces annual Standard Edition subscription costs from $21,400 to $8,560 — a 60 percent reduction — while improving hardware utilisation.

Enterprise Edition consolidation has different dynamics: Oracle counts each virtual machine as a separate server, so consolidating 10 MySQL Enterprise Edition VMs onto a single large physical host with 10 VMs still requires 10 Enterprise Edition licences. However, hardware consolidation can reduce your total infrastructure costs even if the MySQL licence cost remains constant, and right-sizing VM configurations after consolidation may allow some VMs to be removed entirely through application migration.

Alternatives to Commercial MySQL

For organisations seeking to reduce Oracle MySQL commercial licence costs, three primary alternatives merit evaluation. MariaDB is a community-developed fork of MySQL, GPL-licensed, with commercial support available from MariaDB Corporation at significantly lower cost than Oracle MySQL Enterprise Edition. MariaDB maintains broad MySQL compatibility at the application layer and is a credible migration target for most MySQL workloads. PostgreSQL is an open source relational database with a more permissive licence (PostgreSQL Licence, not GPL) and a strong feature set for complex analytical and OLTP workloads. PostgreSQL is not MySQL-compatible at the syntax level but is a mature, enterprise-grade alternative for new deployments and planned migrations. Cloud-native alternatives — AWS Aurora MySQL, Google Cloud Spanner, Azure Database for MySQL — offer managed service models that eliminate MySQL licence management entirely for cloud-deployed workloads.

The migration cost and risk of each alternative should be evaluated against the projected MySQL commercial licence savings before any migration decision. For many enterprises, a hybrid approach — continuing MySQL Enterprise Edition for compliance-sensitive or feature-dependent workloads, and migrating standard OLTP workloads to MariaDB or cloud-managed services — delivers the best total cost outcome.

MySQL Licence Compliance Checklist

Use this checklist to confirm your MySQL deployments are correctly licensed across every deployment context in your environment.

  • Identify all MySQL deployments: Run a discovery scan across all servers, VMs, and container environments to identify every MySQL instance, including version, edition (Community/Standard/Enterprise/Cluster), and deployment context.
  • Verify edition vs feature usage: For every MySQL Enterprise Edition deployment, confirm that at least one Enterprise Edition feature (Backup, Audit, Monitor, Security, Firewall, InnoDB Cluster) is in active use. Downgrade to Standard Edition where Enterprise features are not in use.
  • Assess GPL compliance for distribution: For any application that bundles, embeds, or ships MySQL, confirm that either GPL obligations are fully met (including source code availability) or that an Oracle commercial MySQL licence is in place.
  • Count container instances correctly: For Kubernetes or Docker deployments of MySQL Enterprise Edition, confirm the maximum concurrent instance count and verify it does not exceed licensed server count.
  • Verify cloud BYOL compliance: For any MySQL Enterprise Edition BYOL deployment on AWS, Azure, or GCP, confirm that your licence and support configuration meets Oracle's cloud BYOL requirements for the specific instance type and region.
  • Check support renewal currency: All MySQL commercial subscriptions should have active Oracle Premier Support. Lapsed support removes your entitlement to patch access and audit protection.
  • Review SaaS and multi-tenant deployments: Confirm that multi-tenant SaaS applications using MySQL are correctly licensed, with particular attention to MySQL client library distribution in SDK or agent software shipped to customers.

MySQL Licensing Assessment White Paper

Download our detailed MySQL licensing guide — covering GPL analysis, commercial edition selection, Oracle audit risk, container compliance and cost optimisation strategies.