Azure naming · Microsoft.DBforMySQL/flexibleServers

mysql MySQL flexible server

Azure Database for MySQL flexible server (<name>.mysql.database.azure.com).

Naming constraints

CAF abbreviationmysql
Resource typeMicrosoft.DBforMySQL/flexibleServers
Length3–63 characters
CaseLowercase only
Allowed charactersLowercase letters, numbers, and hyphens. Can't start or end with a hyphen.
Uniqueness Global
SeparatorHyphen

Source: Microsoft Learn, “Naming rules and restrictions for Azure resources”, checked October 2026. Abbreviation from the Cloud Adoption Framework.

Example & copy-ready

A worked name for workload app, env prod, region weu, instance 001.

Example name
mysql-app-prod-weu-001 Valid
Validation regex for CI checks or pre-commit hooks (.NET and JavaScript)
^(?=.{3,63}$)[a-z0-9][a-z0-9-]*[a-z0-9]$
Bicep naming expression
var name = take(toLower('mysql-${workload}-${env}-${region}-${instance}'), 63)
Terraform local
locals {
  name = substr(lower(join("-", compact(["mysql", var.workload, var.env, var.region, var.instance]))), 0, 63)
}

Azure Policy can't evaluate regular expressions, so a policy can check the mysql prefix but not the full format. Run the regex in your pipeline, or audit existing names on a schedule.

Uniqueness scope

Globally unique across all of Azure — the name backs a public DNS label, so a clash with any other tenant's resource fails the deployment. Build in enough entropy (org/region/instance) to avoid collisions.

Open in the name generator