setup-mysql

April 23, 2026 · View on GitHub

The missing action for MySQL :tada:

  • 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.4

Currently supports

Version9.78.48.0
ubuntu-24.04default
ubuntu-24.04-armdefault
ubuntu-22.04default
ubuntu-22.04-armdefault
macos-26default
macos-15default
macos-15-inteldefault
macos-14default
windows-2025default
windows-2022default

Test against multiple versions

    strategy:
      matrix:
        mysql-version: [9.7, 8.4]
    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

Contributing

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