Notices: This section not yet converted to new layout. Download stats are rolling back out.

MySQL (Community Server)

Package test results are passing.

This package was approved as a trusted package on 6/15/2019.

MySQL Community Edition is the freely downloadable version of the world's most popular open source database. It is available under the GPL license and is supported by a huge and active community of open source developers.

Please Note: This is an automatically updated package. If you find it is
out of date by more than a day or two, please contact the maintainer(s) and
let them know the package is no longer updating correctly.

Package Parameters

The package accepts the following optional parameters:
* /installLocation - filesystem location for mysql binaries
* /dataLocation - filesystem location for mysql data
* /port - numberic TCP listening port
* /serviceName - custom name for the Windows services entry

Example: choco install mysql --params "/port:3307 /serviceName:AltSQL"

To install MySQL (Community Server), run the following command from the command line or from PowerShell:

C:\> choco install mysql

To upgrade MySQL (Community Server), run the following command from the command line or from PowerShell:

C:\> choco upgrade mysql


  • tools\chocolateyInstall.ps1 Show
    $ErrorActionPreference = 'Stop';
    $url = ''
    $checksum = '51ab649e14570498a5f23b81578ed0e464d8e48fda83f097ea61087262d2e35e'
    $checksumType = 'sha256'
    $pp = Get-PackageParameters
    $packageName = 'mysql'
    $binRoot = if ($pp.installLocation) { $pp.installLocation } else { Get-ToolsLocation }
    $installDir = Join-Path $binRoot "$packageName"
    $installDirBin = "$($installDir)\current\bin"
    Write-Host "Adding `'$installDirBin`' to the path and the current shell path"
    Install-ChocolateyPath "$installDirBin"
    $env:Path = "$($env:Path);$($installDirBin)"
    $port = if ($pp.Port) { $pp.Port } else { 3306 }
    $serviceName = if ($pp.serviceName) { $pp.serviceName } else { "MySQL" }
    $dataDir = if ($pp.dataLocation) { Join-Path $pp.dataLocation "$packageName" } else { "C:\ProgramData\MySQL" }
    if (![System.IO.Directory]::Exists($installDir)) {[System.IO.Directory]::CreateDirectory($installDir) | Out-Null}
    $packageArgs = @{
      packageName    = $env:ChocolateyPackageName
      unzipLocation  = $installDir
      url           = $url
      checksum      = $checksum
      checksumType  = $checksumType
    Install-ChocolateyZipPackage  @packageArgs
    # find the unpack directory
    $installedContentsDir = get-childitem $installDir -include 'mysql*' | Sort-Object -Property LastWriteTime -Desc | Select-Object -First 1
    # shut down service if running
    try {
      write-host "Shutting down MySQL if it is running"
      Start-ChocolateyProcessAsAdmin "cmd /c NET STOP $serviceName"
      Start-ChocolateyProcessAsAdmin "cmd /c sc delete $serviceName"
    } catch {
      # no service installed
    # delete current bin directory contents
    if ([System.IO.Directory]::Exists("$installDirBin")) {
      Write-Host "Clearing out the contents of `'$installDirBin`'."
      Start-Sleep 3
    # copy the installed directory into the current dir
    Write-host "Copying contents of `'$installedContentsDir`' to `'$($installDir)\current`'."
    [System.IO.Directory]::CreateDirectory("$installDirBin") | Out-Null
    Copy-Item "$($installedContentsDir)\*" "$($installDir)\current" -Force -Recurse
    $iniFileDest = "$($installDir)\current\my.ini"
    if (!(Test-Path($iniFileDest))) {
      Write-Host "No existing my.ini. Creating default '$iniFileDest' with default locations for datadir."
    "@ | Out-File $iniFileDest -Force -Encoding ASCII
    # initialize everything
    Write-Host "Initializing MySQL if it hasn't already been initialized."
    try {
      $defaultDataDir= Join-Path $dataDir "data"
      if (![System.IO.Directory]::Exists($defaultDataDir)) {[System.IO.Directory]::CreateDirectory($defaultDataDir) | Out-Null}
      Start-ChocolateyProcessAsAdmin "cmd /c '$($installDirBin)\mysqld' --defaults-file='$iniFileDest' --initialize-insecure"
    } catch {
      write-host "MySQL has already been initialized"
    # install the service itself
    write-host "Installing the mysql service"
    Start-ChocolateyProcessAsAdmin "cmd /c '$($installDirBin)\mysqld' --install $serviceName"
    # turn on the service
    Start-ChocolateyProcessAsAdmin "cmd /c NET START $serviceName"

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.


Package Maintainer(s)

Software Author(s)

  • Oracle Corporation and/or its affiliates


Oracle Corporation and/or its affiliates


Release Notes

Version History

Version Downloads Last updated Status
MySQL (Community Server) 8.0.16 2037 Thursday, April 25, 2019 approved
MySQL (Community Server) 8.0.15 3898 Saturday, February 2, 2019 approved
MySQL (Community Server) 8.0.14 1026 Monday, January 21, 2019 approved
MySQL (Community Server) 8.0.13 1580 Thursday, December 27, 2018 approved
MySQL (Community Server) 5.7.18 42909 Monday, April 10, 2017 approved
MySQL (Community Server) 5.7.17 11109 Monday, December 12, 2016 approved
MySQL (Community Server) 5.7.16 3016 Wednesday, October 12, 2016 approved
MySQL (Community Server) 5.7.15 1503 Tuesday, September 6, 2016 approved
MySQL (Community Server) 5.7.14 8120 Friday, July 29, 2016 approved
Show More

Discussion for the MySQL (Community Server) Package

Ground rules:

  • This discussion is only about MySQL (Community Server) and the MySQL (Community Server) package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or MySQL (Community Server), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus uses cookies to enhance the user experience of the site.