Azure Database for MySQL フレキシブルサーバーの開始、停止、情報取得時に使うコマンド一覧

Azure,Database For MySQL,PowerShell/Azure CLI

Azure Database for MySQL フレキシブルサーバーのリソース情報取得、開始停止に使う、Azure CLIコマンドやAzure PowerShellコマンドレットの紹介です。
操作内容に合わせて、Azure CLIコマンドやAzure PowerShellコマンドレットを一覧形式でまとめています。

スポンサーリンク

Azure Database for MySQL フレキシブルサーバーの開始、停止、情報取得コマンド一覧

Azure Database for MySQL フレキシブルサーバーは、Azureで提供されるマネージドデータベースサービスです。
フレキシブルサーバーの特徴の1つに、停止している間はコンピューティングの課金が発生しないという点があります。
使っていない間サーバーを停止させておくことで、コストを削減できます。

※なお、ストレージに対する課金はサーバー停止中も発生します。

確認に使用した環境

確認に使用したバージョンです。

    • PowerShell : 7.6.0
    • Azure CLI : 2.84.0
    • Az Module : 15.4.0
    • Az.MySql :  1.5.1

こちらで作成したAzure Database for MySQL フレキシブルサーバー利用しています。
サーバー名は"mysql-01″としています。

Azureへのサインインやサブスクリプションで使用するコマンドについては、こちらで紹介しています。

Azure PowerShellの場合、Az.MySqlモジュールが必要

Azure PowerShellを使って、MySQLフレキシブルサーバーのインスタンスを操作する場合、Az.MySqlモジュールが必要となります。
コマンドレットが見つからない場合は、"Install-Module -Name Az.MySql"でモジュールをインストールします。

Azure Database for MySQL フレキシブルサーバーの一覧やインスタンス情報取得

Azure Database for MySQL フレキシブルサーバーの一覧取得やサーバー インスタンス情報取得時に使うコマンド(コマンドレット)一覧です。

実施内容 Azure CLI Azure PowerShell
サーバーインスタンスの一覧を取得する az mysql flexible-server list –output table Get-AzMySqlFlexibleServer
サーバーインスタンス情報を取得する

サブスクリプション内
az mysql flexible-server list

リソースグループ内
az mysql flexible-server list –resource-group “リソースグループ名"

各リソース
az mysql flexible-server show –resource-group “リソースグループ名" –name “サーバー名"

各リソース
Get-AzMySqlFlexibleServer |Format-List

各リソース
Get-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" |Format-List

各リソース
Get-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -name “サーバー名" |Format-List

※Azure PowerShellの場合はFormat-Listを利用して一覧出力するようにしています。詳細はこちらを参照ください。

Azure Database for MySQL フレキシブルサーバーの開始、停止

Azure Database for MySQL フレキシブルサーバーの開始停止時に使うコマンド(コマンドレット)一覧です。

実施内容 Azure CLI Azure PowerShell
サーバーを開始 az mysql flexible-server start –resource-group “リソースグループ名" –name “サーバー名"

Start-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

サーバーを停止

az mysql flexible-server stop –resource-group “リソースグループ名" –name “サーバー名"

Stop-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

サーバーを再起動

az mysql flexible-server restart –resource-group “リソースグループ名" –name “サーバー名"

Restart-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

※Azure CLIを使ったサーバー停止時に"–no-wait"オプションを使うと、処理の完了を待たずにコマンドが完了します。Azure PowerShellの場合は"-NoWait"オプションになります。
※Azure CLIを使ったサーバー操作時に"–ids"オプションを使うと、リソースIDを利用して操作できます。
※Azure PowerShellを使ったサーバー操作時に"-InputObject"オプションを使うと、リソースIDを利用して操作できます。"-InputObject"オプションを使う場合には注意点があります。リソースIDの末尾に操作内容(例: /start、/stop)の付与が必要となります。

Azure Database for MySQL フレキシブルサーバーの強制フェイルオーバー

Azure Database for MySQL フレキシブルサーバーを強制フェイルオーバーさせる場合に使うコマンド(コマンドレット)の一覧です。
フェイルオーバー時はRestartを利用します。

実施内容 Azure CLI Azure PowerShell
強制フェールオーバー

az mysql flexible-server restart –resource-group “リソースグループ名" –name “サーバー名" –failover Forced

Restart-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名" -RestartWithFailover Enabled

※Azure Database for MySQL フレキシブルサーバーでは、Azure CLIの"–failover"オプションで指定できる値は"Forced"のみです。PostgreSQLのような"Planned"オプションはありません。

Azure CLIを使ってAzure Database for MySQL フレキシブルサーバーを操作

サーバー インスタンスに関する情報を取得して表示

az mysql flexible-server showコマンドまたはaz mysql flexible-server listコマンドを使用して、MySQLフレキシブルサーバーのインスタンス情報を取得できます。
また、Azure PowerShellではGet-AzMySqlFlexibleServerコマンドレットを使用してリソース情報を取得できますが、取得できる情報に違いがある点に注意が必要です。

サーバー インスタンスに関する情報を取得して表示

PS C:\> az mysql flexible-server list –output table
Name Resource Group Location Version Storage Size(GiB) Tier SKU State HA State Availability zone
—— —— —— —— —— —— —— —— —— ——
mysql-01 リソースグループ名 Japan East 8.4 20 GeneralPurpose Standard_D2ads_v5 Ready Healthy 1

PS C:\> az mysql flexible-server show –resource-group “リソースグループ名" –name “mysql-01"

{
  “administratorLogin": “管理者アカウントのユーザー名",
  “administratorLoginPassword": null,
  “availabilityZone": “1",
  “backup": {
    “backupIntervalHours": 24,
    “backupRetentionDays": 7,
    “earliestRestoreDate": “2026-03-21T03:56:24.565285+00:00",
    “geoRedundantBackup": “Enabled"
  },
  “createMode": null,
  “dataEncryption": null,
  “databasePort": 3306,
  “fullVersion": “8.4.7",
  “fullyQualifiedDomainName": “mysql-01.mysql.database.azure.com",
  “highAvailability": {
    “mode": “ZoneRedundant",
    “replicationMode": “BinaryLog",
    “standbyAvailabilityZone": “3",
    “state": “Healthy"
  },
  “id": “/subscriptions/サブスクリプションID/resourceGroups/リソースグループ名/providers/Microsoft.DBforMySQL/flexibleServers/mysql-01",
  “identity": null,
  “importSourceProperties": null,
  “location": “Japan East",
  “lowerCaseTableNames": null,
  “maintenancePolicy": {
    “patchStrategy": “Regular"
  },
  “maintenanceWindow": {
    “batchOfMaintenance": “Default",
    “customWindow": “Enabled",
    “dayOfWeek": 5,
    “startHour": 18,
    “startMinute": 0
  },
  “name": “mysql-01",
  “network": {
    “delegatedSubnetResourceId": “サブネットのリソースID,
    “privateDnsZoneResourceId": “プライベートDNSゾーンのリソースID",      
    “publicNetworkAccess": “Disabled"
  },
  “privateEndpointConnections": [],
  “replicaCapacity": 10,
  “replicationRole": “None",
  “resourceGroup": “リソースグループ名",
  “restorePointInTime": null,
  “sku": {
    “name": “Standard_D2ads_v5",
    “tier": “GeneralPurpose"
  },
  “sourceServerResourceId": null,
  “state": “Ready",
  “storage": {
    “autoGrow": “Enabled",
    “autoIoScaling": “Disabled",
    “iops": 360,
    “logOnDisk": “Disabled",
    “storageRedundancy": “ZoneRedundancy",
    “storageSizeGb": 20,
    “storageSku": “Premium_ZRS"
  },
  “systemData": {
    “createdAt": “2026-03-21T03:46:24.565285+00:00",
    “createdBy": null,
    “createdByType": null,
    “lastModifiedAt": null,
    “lastModifiedBy": null,
    “lastModifiedByType": null
  },
  “tags": {},
  “type": “Microsoft.DBforMySQL/flexibleServers",
  “version": “8.4"
}

Azure CLIコマンドを使用したAzure Database for MySQL フレキシブルサーバーの操作例

Azure CLIコマンドを利用してAzure Database for MySQL フレキシブルサーバーを操作します。

操作内容 コマンド実行内容
サーバーを停止

PS C:\> az mysql flexible-server stop –resource-group “リソースグループ名" –name “mysql-01"
Server will be automatically started after 30 days if you do not perform a manual start operation

サーバーを開始

PS C:\> az mysql flexible-server start –resource-group “リソースグループ名" –name “mysql-01"

サーバーの電源ステータスを一覧表示

# サーバーが起動している場合
PS C:\> az mysql flexible-server list –query “[].{ServerName:name, RGName:resourceGroup, PowerState:state}" -o table
ServerName RGName PowerState
—— ——  ——
mysql-01 リソースグループ名 Ready

# サーバーが停止している場合
PS C:\> az mysql flexible-server list –query “[].{ServerName:name, RGName:resourceGroup, PowerState:state}" -o table
ServerName RGName PowerState
 —— ——  ——
mysql-01 リソースグループ名 Stopped

サーバーのコンピューティング情報を一覧表示

PS C:\> az mysql flexible-server list –query “[].{ServerName:name, State:state, HA: highAvailability.state, RGName:resourceGroup, Location:location, ComputeSize:sku.name, StorageSize:storage.storageSizeGb}" -o table
ServerName State HA RGName Location ComputeSize StorageSize
—— —— —— —— —— ——
mysql-01 Ready Healthy リソースグループ名 Japan East Standard_D2ads_v5 20

サーバーを強制フェイルオーバー

# フェイルオーバー前のステータス(プライマリ可用性ゾーン1)
PS C:\>
az mysql flexible-server list –query “[].{ServerName:name, State:state, HA: highAvailability.state, AvailabilityZone: availabilityZone, StandbyAvailabilityZone: highAvailability.standbyAvailabilityZone }" -o table

ServerName State HA AvailabilityZone StandbyAvailabilityZone
—— —— —— —— ——
mysql-01 Ready Healthy 1 3

# フェイルオーバーを実行
PS C:\>
az mysql flexible-server restart –resource-group “リソースグループ名" –name “mysql-01" –failover Forced

# フェイルオーバー後のステータス(プライマリ可用性ゾーン3)
PS C:\> az mysql flexible-server list –query “[].{ServerName:name, State:state, HA: highAvailability.state, AvailabilityZone: availabilityZone, StandbyAvailabilityZone: highAvailability.standbyAvailabilityZone }" -o table
ServerName State HA AvailabilityZone StandbyAvailabilityZone
—— —— —— —— ——
mysql-01 Ready Healthy 3 1

同一サブスクリプション内で起動しているサーバーをすべて停止

PS C:\> $MySQL_ids = az mysql flexible-server list –query “[?state==’Ready’].id" –output tsv
PS C:\> az mysql flexible-server stop –ids $MySQL_ids

同一サブスクリプション内で停止しているサーバーをすべて開始

PS C:\> $MySQL_ids = az mysql flexible-server list –query “[?state==’Stopped’].id" –output tsv
PS C:\> az mysql flexible-server start –ids $MySQL_ids

—広告—

Azure PowerShellを使ってAzure Database for MySQL フレキシブルサーバーを操作

サーバー インスタンスに関する情報を取得して表示

Get-AzMySqlFlexibleServerコマンドレットを使ってMySQLフレキシブルサーバーのインスタンス情報が取得できます。
また、Azure CLIでは、az mysql flexible-server showコマンドを使用してリソース情報を取得できますが、取得できる情報に違いがある点に注意が必要です。

サーバーのインスタンスに関する情報を取得して表示

PS C:\> Get-AzMySqlFlexibleServer
Name Location SkuName SkuTier AdministratorLogin Version StorageSizeGb
—- —– —– —– —– —– —–
mysql-01 Japan East Standard_D2ads_v5 GeneralPurpose 管理者アカウントのユーザー名 8.4 20

PS C:\> Get-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -name “mysql-01" |Format-List

AdministratorLogin: 管理者アカウントのユーザー名
AdministratorLoginPassword:
AvailabilityZone: 3
BackupEarliestRestoreDate : 2026/03/21 3:54:43
BackupGeoRedundantBackup: Enabled
BackupRetentionDay: 7
CreateMode:
FullyQualifiedDomainName: mysql-01.mysql.database.azure.com
HighAvailabilityMode: ZoneRedundant
HighAvailabilityStandbyAvailabilityZone : 1
HighAvailabilityState : Healthy
Id: /subscriptions/サブスクリプションID/resourceGroups/リソースグループ名/providers/Microsoft.DBforMySQL/flexibleServers/mysql-01
Location: Japan East
MaintenanceWindowCustomWindow : Enabled
MaintenanceWindowDayOfWeek: 5
MaintenanceWindowStartHour: 18
MaintenanceWindowStartMinute: 0
Name: mysql-01
NetworkDelegatedSubnetResourceId: サブネットのリソースID
NetworkPrivateDnsZoneResourceId :プライベートDNSゾーンのリソースID
NetworkPublicNetworkAccess: Disabled
ReplicaCapacity : 10
ReplicationRole : None
RestorePointInTime:
SkuName : Standard_D2ads_v5
SkuTier : GeneralPurpose
SourceServerResourceId:
State : Ready
StorageAutoGrow : Enabled
StorageIop: 360
StorageSizeGb : 20
StorageSku: Premium_ZRS
SystemDataCreatedAt : 2026/03/21 3:50:42
SystemDataCreatedBy :
SystemDataCreatedByType :
SystemDataLastModifiedAt:
SystemDataLastModifiedBy:
SystemDataLastModifiedByType:
Tag : Microsoft.Azure.PowerShell.Cmdlets.MySql.Models.Api10.TrackedResourceTags
Type: Microsoft.DBforMySQL/flexibleServers
Version : 8.4
SecuredPassword :
FirewallRuleName:
DatabaseName:
 

Azure PowerShellコマンドレットを使用したAzure Database for MySQL フレキシブルサーバーの操作例

Azure PowerShellコマンドレットを利用して、Azure Database for MySQL フレキシブルサーバーを操作します。

操作内容 コマンド実行内容
サーバーを停止

PS C:\> Stop-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “mysql-01"

サーバーを開始

PS C:\> Start-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “mysql-01" 

サーバーの電源ステータスを一覧表示

# サーバーが起動している場合
PS C:\>
Get-AzMySqlFlexibleServer |ft Name,State
Name State
—- —–
mysql-01 Ready

# サーバーが停止している場合
PS C:\> Get-AzMySqlFlexibleServer |ft Name,State
Name State
—- —–
mysql-01 Stopped

サーバーのコンピューティング情報を一覧表示

PS C:\> Get-AzMySqlFlexibleServer `
| ft -AutoSize @{Label="ServerName"; Expression={ $_.Name }}, `
  @{Label="ResourceGroupName"; Expression={ ($_.Id -split “/")[4] } }, `
  @{Label="PowerState"; Expression={ $_.State }}, `
  @{Label="HA"; Expression={ $_.HighAvailabilityState }}, `
  @{Label="Location"; Expression={ $_.Location }}, `
  @{Label="ComputeSize"; Expression={ $_.SkuName }}, `
  @{Label="StorageSize(GB)"; Expression={ $_.StorageSizeGb }}

ServerName ResourceGroupName PowerState HA Location ComputeSize StorageSize(GB)
—– —– —– —– —– —– —–
mysql-01 リソースグループ名 Ready Healthy Japan East Standard_D2ads_v5 20

サーバーを強制フェイルオーバー

# フェイルオーバー前のステータス(プライマリ可用性ゾーン3)
PS C:\> Get-AzMySqlFlexibleServer `
| ft -AutoSize @{Label="ServerName"; Expression={ $_.Name }}, `
  @{Label="PowerState"; Expression={ $_.State }}, `
  @{Label="HA"; Expression={ $_.HighAvailabilityState }}, `
  @{Label="AvailabilityZone"; Expression={ $_.AvailabilityZone }}, `
  @{Label="StandbyAvailabilityZone"; Expression={ $_.HighAvailabilityStandbyAvailabilityZone }}

ServerName PowerState HA AvailabilityZone StandbyAvailabilityZone
—– —– —– —– —–
mysql-01 Ready Healthy 3 1

# フェイルオーバーを実行
PS C:\>
Restart-AzMySqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “mysql-01" -RestartWithFailover Enabled

# フェイルオーバー後のステータス(プライマリ可用性ゾーン1)
PS C:\> Get-AzMySqlFlexibleServer `
| ft -AutoSize @{Label="ServerName"; Expression={ $_.Name }}, `
  @{Label="PowerState"; Expression={ $_.State }}, `
  @{Label="HA"; Expression={ $_.HighAvailabilityState }}, `
  @{Label="AvailabilityZone"; Expression={ $_.AvailabilityZone }}, `
  @{Label="StandbyAvailabilityZone"; Expression={ $_.HighAvailabilityStandbyAvailabilityZone }}

ServerName PowerState HA AvailabilityZone StandbyAvailabilityZone
———- ———- — —————- ———————–
mysql-01 Ready Healthy 1 3

同一サブスクリプション内で起動しているサーバーをすべて停止
$MySQL_list = Get-AzMySqlFlexibleServer | Where-Object {$_.State -like “Ready"}
for($i = 0; $i -lt $MySQL_list.Count; $i++){
$MySQLServer = $MySQL_list[$i]
$MySQL_id = $MySQLServer.id
$MySQL_id = “$MySQL_id/stop"
Stop-AzMySqlFlexibleServer -InputObject $MySQL_id
}
同一サブスクリプション内で停止しているサーバーをすべて開始
$MySQL_list = Get-AzMySqlFlexibleServer | Where-Object {$_.State -like “Stopped"}
for($i = 0; $i -lt $MySQL_list.Count; $i++){
$MySQLServer = $MySQL_list[$i]
$MySQL_id = $MySQLServer.id
$MySQL_id = “$MySQL_id/start"
Start-AzMySqlFlexibleServer -InputObject $MySQL_id
}

—広告—

最後に

Azure Database for MySQL フレキシブルサーバーのAzure CLIコマンドやAzure PowerShellコマンドレットを、開始、停止、状態取得を中心に一覧形式でまとめました。
Azure CLIとAzure PowerShellでは取得できる情報や、同じ操作でも指定するオプションが異なる場合があるため、注意が必要です。
今回はサーバー情報の取得や開始・停止操作を中心にまとめていますが、ネットワーク設定、データベースの確認、リストアなどの操作も実施可能です。

引き続き、いろいろ試していきたいと思います。

Azure Database for PostgreSQL フレキシブルサーバーの開始停止時に使うコマンド一覧については、こちらで紹介しています。

Runbookを使ってAzure Database for MySQL フレキシブルサーバーの開始、停止をスケジュール化する方法については、こちらで紹介しています。

 

Azure CLIやAzure PowerShellのインストール手順については、こちらで紹介しています。

スポンサーリンク