Lists the smallest CPU, RAM, disk, and OS specs you need to launch a functional MySQL instance.
Allocate at least 1 vCPU, 1 GB RAM, and 5 GB of free SSD storage to spin up a non-production MySQL 8 instance. Anything smaller will fail during binary installation or crash under basic query load.
MySQL 8 runs on 64-bit Linux (Ubuntu 20.04+, RHEL 8+), Windows 10 Pro/Server 2016+, and macOS 12+.Make sure glibc 2.17+ on Linux, the Visual C++ 2019 runtime on Windows, and Xcode command-line tools on macOS are present.
Run file $(which mysqld)
on Unix or check the installer name on Windows (mysql-8.x.x-winx64.msi
). A 32-bit binary limits memory use to 4 GB and is no longer shipped for MySQL 8.
1 GB is only safe for personal experiments.For an ecommerce workload with the example tables, allocate 4 GB so innodb_buffer_pool_size
can cache hot rows (≈70 % of RAM).
Connect and run SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
. Compare the value to total RAM with free -h
(Linux) or Task Manager (Windows).
Use SSDs that sustain 2000+ IOPS.HDDs bottleneck Orders
and OrderItems
range scans, causing 10× slower checkout queries.
On Linux run sudo hdparm -Tt /dev/nvme0n1
. Look for cached reads >5000 MB/s and buffered reads >2000 MB/s.
Add cores when concurrent writes deadlock. Monitor Threads_running
; if it stays > (vCPU×2) during peak, double cores.
Ensure a 1 Gbps NIC and configure wait_timeout=28800
to keep API connections alive.Latency impacts SELECT COUNT(*) FROM Orders
calls on dashboards.
innodb_flush_log_at_trx_commit=1
for durabilityAutomate daily backups, configure monitoring (Prometheus, Percona PMM), and test failover with MySQL InnoDB Cluster.
.
Yes, but limit to light workloads. Use a 64-bit OS, add a heatsink, and mount the data directory on an external SSD.
Allocate swap equal to 100 % of RAM on small servers. Monitor swappiness
; set it to 10 to avoid aggressive paging.