White Paper: 10 Hidden Oracle Audit Risks That Could Blindside Your Business
MySQL is an Oracle product — and Oracle auditors can and do examine MySQL deployments alongside database and middleware usage. Discover the compliance traps most commonly exploited and how to address them proactively.
Download White Paper →1. The Dual Licensing Model: GPL vs. Commercial
MySQL is distributed under a dual licence model: an open-source GPL licence and a commercial licence. Understanding when each applies is fundamental to MySQL compliance.
Under the open-source GNU General Public License (GPL), MySQL Community Edition is free to use — even in production — as long as you follow the GPL terms. This means that if you distribute MySQL as part of a product, the entire product would also have to be licensed under the GPL. However, purely internal use of MySQL (with no distribution outside your organisation) does not trigger this requirement.
The commercial licence is Oracle's proprietary offering for MySQL. Companies choose this when they cannot meet the GPL obligations or when they need Oracle's official support and assurances. A commercial licence (sold via annual subscription) lets you include MySQL in closed-source applications without having to open-source your code, and it provides rights to Oracle's official 24/7 support.
| Licence Model | Cost | When It Applies | Key Obligation |
|---|---|---|---|
| GPL (Open Source) | $0 — Free | Internal use, open-source projects, or any scenario where GPL terms are met | If you distribute MySQL with your software, the entire product must be GPL-licensed (“copyleft”) |
| Commercial (Oracle) | $2,000–$10,000/server/year | Embedding MySQL in proprietary products, or when enterprise support/features are required | Annual subscription fee per server; no GPL copyleft obligations on your code |
The most common compliance error with MySQL is misunderstanding when the GPL “copyleft” requirement is triggered. Internal use — even at massive scale — never triggers the GPL obligation to share your source code. It only applies when you distribute MySQL (or a product containing it) to a third party. SaaS companies that deliver their application over the network (without distributing the MySQL binary) generally do not trigger the GPL distribution clause, though legal opinions can vary.
2. Open-Source Usage and GPL Compliance
Many enterprises run MySQL Community Edition to avoid licence fees, but it is important to remain compliant with open-source rules:
Internal Use Is Free
Internal deployments of MySQL Community Edition are free and do not obligate you to share your source code. GPL requirements apply only when software is distributed externally. You can run MySQL Community on thousands of internal servers without paying Oracle a penny.
Distributing MySQL Externally
If you bundle MySQL with a proprietary software product or appliance that you deliver to customers, you must either open-source that entire offering under GPL or purchase a commercial MySQL licence to stay compliant. This is the core trigger for needing Oracle's commercial licence.
An ISV that ships a software product with MySQL embedded must either release the entire product under the GPL (including their own source code) or buy a commercial OEM licence from Oracle. Simply including MySQL in an installer or appliance image counts as “distribution” under the GPL. Failure to comply exposes the company to both copyright infringement claims and Oracle audit risk.
No Official Support
The Community Edition does not include support from Oracle. If you rely on it for critical systems, ensure you have the necessary in-house expertise or a third-party support plan — you cannot call Oracle for help on GPL software. This is a significant consideration for mission-critical production databases.
3. Commercial MySQL Editions for Enterprises
Oracle provides several commercial editions of MySQL (all requiring a paid subscription). These are documented on Oracle's MySQL product page:
| Edition | Licence Type | Approx. Annual Cost | Key Features and Use Cases |
|---|---|---|---|
| Community Edition | Open-source (GPL) | $0 (free) | Free to use, no Oracle support. GPL terms apply if you distribute MySQL with your software. Suitable for internal use and open-source projects. |
| Standard Edition | Commercial subscription | ~$2,000 per server/year | Core MySQL database plus basic tools with 24/7 Oracle support. Lacks some advanced features of Enterprise Edition. Used for general workloads that need vendor support. |
| Enterprise Edition | Commercial subscription | ~$5,000 per server/year | All MySQL features plus enterprise add-ons: security plugins (Enterprise Encryption, Enterprise Firewall), hot backup utility (MySQL Enterprise Backup), monitoring tools (Enterprise Monitor), and comprehensive Oracle support. Ideal for critical systems. |
| Cluster CGE | Commercial subscription | ~$10,000 per server/year | Specialised high-availability edition using NDB Cluster engine (in-memory clustering) for telecom-grade uptime. Only necessary for extreme HA scenarios with ultra-low latency requirements. |
| OEM / Embedded | Commercial agreement | Varies (case-by-case) | Custom licensing for ISVs/OEMs to embed and redistribute MySQL with proprietary products. Avoids GPL obligations via a negotiated contract. Pricing based on volume and distribution model. |
MySQL’s commercial licensing is fundamentally different from Oracle Database licensing. MySQL is priced per server per year (subscription model), while Oracle Database uses perpetual licences priced per processor core or per named user. This makes MySQL significantly cheaper for most workloads, but the per-server model means costs can escalate quickly if you deploy many instances — especially in containerised or microservices architectures. For a comparison with Oracle Database pricing, see the Oracle Technology Price List guide.
4. Pricing and Cost Considerations
MySQL’s commercial licences are sold as annual per-server subscriptions. Key points about pricing:
Subscription Costs
The price is charged per server (physical or virtual) running MySQL. MySQL Standard Edition costs approximately $2,000 per server/year, and MySQL Enterprise Edition costs around $5,000 per server/year (for a server with up to 4 CPU sockets). These subscriptions include Oracle's support. Larger servers (with more CPU sockets) incur higher fees, and MySQL Cluster CGE costs approximately $10,000 per server/year.
| Edition | 1 Server | 10 Servers | 50 Servers | 5-Year Total (10 Servers) |
|---|---|---|---|---|
| Community | $0 | $0 | $0 | $0 |
| Standard | $2,000 | $20,000 | $100,000 | $100,000 |
| Enterprise | $5,000 | $50,000 | $250,000 | $250,000 |
| Cluster CGE | $10,000 | $100,000 | $500,000 | $500,000 |
Non-Production Environments
Every installation using the commercial edition must be licensed, including development, testing, and standby systems. Even non-production use of Enterprise Edition requires a subscription. Ensure that dev/test servers are not running Enterprise features without a licence.
Cost Drivers
The number of servers is the primary cost driver. Consolidating databases on fewer servers can reduce costs. Be careful with deploying many small instances or containers — if each runs MySQL Enterprise, each requires a licence. Costs can multiply quickly in microservices architectures where dozens or hundreds of MySQL instances are spun up.
In a Kubernetes-based architecture, each MySQL container running Enterprise Edition requires its own licence. An organisation with 50 MySQL Enterprise pods running across a cluster would need 50 server subscriptions at ~$5,000 each = $250,000/year. Consider whether Community Edition (or a fork like MariaDB/Percona) is sufficient for non-critical microservices to control costs.
White Paper: Oracle Audit Playbook — 10 Ways to Limit Exposure
Oracle auditors can examine your MySQL deployments alongside database and middleware usage. Learn proven strategies to strengthen your position before, during, and after an Oracle licence audit.
Download White Paper →5. Cloud and Managed Service Considerations
If you use MySQL via a cloud-managed service, the licensing picture changes significantly:
Managed cloud services (AWS RDS, Azure Database for MySQL, Google Cloud SQL, Oracle MySQL HeatWave): The cloud provider handles the licensing. You typically do not need a separate Oracle licence for these managed services — they generally run the open-source edition under the hood, and the service fee covers your usage rights.
Self-managed MySQL on cloud VMs: If you run MySQL yourself on a cloud VM or container, it is the same as on-premises. Using MySQL Community Edition requires no licence. Running MySQL Enterprise Edition on that VM does require an Oracle subscription for each server.
Oracle MySQL HeatWave: Oracle’s own cloud-native MySQL service, available on OCI and other clouds, includes built-in analytics and machine learning capabilities. Pricing follows Oracle’s cloud subscription model (per OCPU/hour) rather than the traditional per-server model.
For organisations running large numbers of MySQL instances, moving to a managed cloud service can eliminate direct Oracle licensing obligations entirely. However, cloud compute costs may offset the savings. Always compare the total cost of ownership: Oracle MySQL Enterprise subscriptions vs. managed cloud service fees vs. self-managed Community Edition with third-party support.
6. Compliance Risks and Best Practices
Managing MySQL licensing in an enterprise environment requires vigilance:
| Risk Area | What Happens | Compliance Impact |
|---|---|---|
| Unlicensed Enterprise use | Teams download and deploy Enterprise Edition binaries or use Enterprise-only features (backup, monitor, security plugins) without a subscription | Non-compliant — Oracle can demand back-payment for all unlicensed servers plus penalties |
| GPL violation through distribution | ISV/OEM embeds MySQL Community in a proprietary product shipped to customers without open-sourcing or buying a commercial licence | Copyright infringement under GPL — legal exposure plus Oracle audit risk |
| Untracked instances | MySQL installed on dev/test/staging servers without ITAM visibility — “shadow IT” deployments | Potential compliance gap if Enterprise Edition features are in use; Oracle audit exposure |
| Container sprawl | Dozens or hundreds of MySQL Enterprise containers deployed across Kubernetes clusters | Each container requires a licence — costs escalate rapidly without governance |
| Lapsed renewals | Subscriptions expire but MySQL Enterprise continues running in production | No support entitlement; potential licence violation if Oracle’s commercial binary is still in use |
7. Expert Recommendations
- Use Community Edition where feasible. Deploy MySQL Community Edition for use cases that do not truly require Oracle's support or enterprise-only features. This zero-cost option can handle many internal or non-critical workloads if you have in-house MySQL expertise or a third-party support plan.
- Reserve Enterprise licences for critical systems. Apply paid MySQL Enterprise licensing selectively — focus on truly critical, high-value systems that need the extra features (Enterprise Backup, Enterprise Monitor, security plugins) and guaranteed 24/7 Oracle support. This controls costs while mitigating risk where it matters most.
- Audit your MySQL estate regularly. Conduct periodic internal audits of all MySQL instances. Document which edition each is running (Community vs. Enterprise), its purpose (production, test, dev), and whether a commercial licence is in place. Catching unlicensed Enterprise installations early prevents Oracle audit exposure.
- Implement deployment governance. Establish a policy that requires ITAM approval before anyone deploys MySQL Enterprise Edition on a server or includes MySQL in any product offering. This ensures licensing is considered upfront for new projects and prevents inadvertent non-compliance.
- Consolidate to reduce server count. Work with your IT teams to consolidate MySQL workloads where possible. Running fewer, well-utilised servers (instead of many underutilised instances) reduces the number of licences needed. Factor licensing into architecture decisions — one larger server may be more cost-effective than ten small ones.
- Evaluate alternatives strategically. If Oracle's MySQL licensing costs or constraints become too high, evaluate open-source MySQL forks such as MariaDB or Percona Server. These alternatives eliminate direct Oracle licensing fees, though they come with different support arrangements and potential migration effort.
- Negotiate with Oracle. Don't assume Oracle's list prices are fixed. Enterprise customers can negotiate significant discounts for multi-year commitments, volume deals, or bundling MySQL with other Oracle products. Use your leverage as an enterprise customer to negotiate better pricing or contract terms.
- Plan renewal proactively. Keep track of when your MySQL subscriptions expire. Before renewal, reassess how many licences are in use and whether you can reduce that number. Use the renewal cycle to negotiate better terms and adjust your licence count to match actual usage.
White Paper: 10 Oracle ULA Negotiation Secrets They'd Rather You Didn't Discover
If your organisation uses MySQL alongside Oracle Database, middleware, or Java, a ULA may be an option to cover multiple products under one agreement. Understand the negotiation landscape first.
Download White Paper →8. Checklist: 5 Actions to Take
White Paper: Oracle ULA Missteps Are Draining Your Budget — Here's How to Fix It
If you're considering bundling MySQL licences with Oracle Database and middleware under a ULA, understand the common mistakes that cost enterprises millions.
Download White Paper →A mid-market SaaS company was running MySQL Enterprise Edition on 45 servers across production, staging, and development environments — paying approximately $225,000/year in subscriptions.
An independent licensing review identified that only 10 servers required Enterprise features (backup, monitoring, security plugins for customer-facing production systems). The remaining 35 servers were running standard MySQL workloads that could be served by Community Edition with third-party support. By migrating 35 servers to Community Edition, the company reduced its annual MySQL licensing cost from $225,000 to approximately $50,000.
🛡️ Need Help Optimising Your MySQL and Oracle Licensing?
Redress Compliance's Oracle advisory team helps enterprises optimise their entire Oracle software estate — including MySQL, Oracle Database, middleware, and Java. We identify compliance gaps, right-size licences, and negotiate better terms. All with no vendor affiliation.