Skip to content

Building and testing MySQL on macOS (Apple Silicon)

Source: Building and Testing MySQL 8.0.45, 8.4.8, and 9.6.0

This note captures build and test observations for recent MySQL releases on macOS Apple Silicon. It is intended as a reference while building.

MyVector's own current latest supported MySQL release is newer than this note's source — but only for the component build. The plugin distribution (what build-docker-local.sh below builds, and what this whole page is about) is intentionally scoped to MySQL 8.0, 8.4, and 9.0 — see CLAUDE.md's project overview. The component distribution additionally supports MySQL 9.7.0 and 26.10.0 (the current latest; see .github/workflows/ci.yml and scripts/build-component-26.10-docker.sh), but those are built via Docker Linux containers in CI, not locally on macOS — there is no macOS-specific build note for the component variant, and no build-docker-local.sh support for it either. The toolchain observations below are from the cited external source and only cover 8.0.45/8.4.8/9.6.0 (plugin-equivalent versions); nobody has published or verified equivalent Apple Silicon toolchain compatibility data for a newer plugin-eligible point release (e.g. a future 9.0.x) yet. If you hit a toolchain issue not listed below, please file it so this note can be updated with real findings rather than assumptions.

Environment

  • Hardware: Apple Silicon (arm64)
  • Xcode: 26.2
  • LLVM (Homebrew): 14–21

Releases tested

  • MySQL 8.0.45
  • MySQL 8.4.8
  • MySQL 9.6.0

Build results

  • All three versions compile with Xcode 26.2.
  • Homebrew LLVM 14–17: CMake error on macOS (likely platform-related).
  • LLVM 19/20: still fail to build 8.0.45 (bug #119238 / #119239).
  • LLVM 19/20: 8.4.8 also affected by bug #119246 (regression).
  • LLVM 21: still fails to build 9.6.0 (preexisting bug #119246).

Notes

  • The LLVM failures are pre-existing issues except the new 8.4.8 regression involving bug #119246.

MyVector releases vs local builds

Releases are built on GitHub Actions (ubuntu-22.04, x86_64 Linux), not on your Mac. When you push a tag (e.g. v1.0.3), CI builds amd64 and arm64 images and publishes to ghcr.io. You do not need to build locally for releases.

For local testing on Apple Silicon: Use the prebuilt image:

./scripts/test-online-updates.sh   # Uses ghcr.io/askdba/myvector:mysql8.4

If you must build locally: ./scripts/build-docker-local.sh 8.4 builds inside Linux containers. Docker on macOS (especially Apple Silicon) can hit compiler/timer issues that CI does not. See ONLINE_INDEX_UPDATES.md.