GitHub - ankane/setup-mysql: The missing action for MySQL

The missing action for MySQL 🎉

  • Faster (with the default version) and simpler than containers
  • Works on Linux, Mac, and Windows
  • Supports different versions

Build Status

Getting Started

Add it as a step to your workflow

      - uses: ankane/setup-mysql@v1

The default credentials are:

  • user: runner on Linux, root on Mac, ODBC on Windows
  • password: none
  • host: localhost or socket
  • port: 3306

Versions

Specify a version

      - uses: ankane/setup-mysql@v1
        with:
          mysql-version: 8.0

Currently supports

Version 8.4 8.0
ubuntu-24.04 ✓ default
ubuntu-24.04-arm ✓ default
ubuntu-22.04 ✓ default
ubuntu-22.04-arm ✓ default
macos-26 ✓ default
macos-15 ✓ default
macos-15-intel ✓ default
macos-14 ✓ default
windows-2025 ✓ default
windows-2022 ✓ default

Test against multiple versions

    strategy:
      matrix:
        mysql-version: [8.4, 8.0]
    steps:
      - uses: ankane/setup-mysql@v1
        with:
          mysql-version: ${{ matrix.mysql-version }}

Options

Create a database

      - uses: ankane/setup-mysql@v1
        with:
          database: testdb

Specify a user

      - uses: ankane/setup-mysql@v1
        with:
          user: testuser

Extra Steps

Run queries

      - run: mysql -D testdb -e 'SELECT VERSION()'

Install time zone support

      - run: mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

Related Actions

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help: