クイック スタート:PowerShell を使用して Azure Database for MySQL サーバーを作成する

適用対象: Azure Database for MySQL - シングル サーバー

重要

Azure Database for MySQL シングル サーバーは廃止パスにあります。 Azure Database for MySQL フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for MySQL フレキシブル サーバーへの移行の詳細については、Azure Database for MySQL シングル サーバーの現状に関するページを参照してください

このクイックスタートでは、PowerShell を使用して、Azure Database for MySQL サーバーを Azure リソース グループに作成する方法を説明します。 PowerShell を使用して、対話形式またはスクリプトで Azure リソースを作成および管理できます。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

ローカルで PowerShell を使用する場合は、Az PowerShell モジュールをインストールしたうえで、Connect-AzAccount コマンドレットを使用して自分の Azure アカウントに接続する必要があります。 Az PowerShell モジュールのインストールの詳細については、「Azure PowerShell のインストール」を参照してください。

重要

Az.MySql PowerShell モジュールがプレビュー段階にある間は、次のコマンドを使用して、Az PowerShell モジュールとは別にこれをインストールする必要があります: Install-Module -Name Az.MySql -AllowPrerelease。 Az.MySql PowerShell モジュールは、一般提供された後、将来の Az PowerShell モジュール リリースの一部となり、Azure Cloud Shell 内からネイティブに使用できるようになります。

Azure Database for MySQL サービスを初めて使用する場合は、Microsoft.DBforMySQL リソースプロバイダーを登録する必要があります。

Register-AzResourceProvider -ProviderNamespace Microsoft.DBforMySQL

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Button to launch Azure Cloud Shell.
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

複数の Azure サブスクリプションをお持ちの場合は、リソースが課金の対象となる適切なサブスクリプションを選択してください。 Set-AzContext コマンドレットを使用して、特定のサブスクリプション ID を選択します。

Set-AzContext -SubscriptionId 00000000-0000-0000-0000-000000000000

リソース グループを作成する

New-AzResourceGroup コマンドレットを使用して、Azure リソース グループを作成します。 リソース グループとは、複数の Azure リソースをまとめてデプロイ、管理する際の論理コンテナーです。

次の例では、myresourcegroup という名前のリソース グループを米国西部リージョンに作成します。

New-AzResourceGroup -Name myresourcegroup -Location westus

Azure Database for MySQL サーバーの作成

New-AzMySqlServer コマンドレットを使用して、Azure Database for MySQL サーバーを作成します。 1 つのサーバーで複数のデータベースを管理できます。 通常は、プロジェクトまたはユーザーごとに個別のデータベースを使用します。

次の表に、New-AzMySqlServer コマンドレットで一般的に使用されるパラメーターとサンプル値の一覧を示します。

設定 値の例 説明
名前 mydemoserver お使いの Azure Database for MySQL サーバーを識別する、Azure でグローバルに一意の名前を選択します。 サーバー名に含めることができるのは、文字、数字、およびハイフン (-) 文字のみです。 大文字が指定された場合、それらの文字は作成プロセス中に自動的に小文字に変換されます。 3 ~ 63 文字にする必要があります。
ResourceGroupName myresourcegroup Azure リソース グループの名前を指定します。
Sku GP_Gen5_2 SKU の名前。 省略表現の 価格レベル_コンピューティング世代_仮想コア数 という規則に従います。 Sku パラメーターの詳細については、この表の後続の情報を参照してください。
BackupRetentionDay 7 バックアップを保持する必要のある時間。 単位は日数です。 範囲は 7 ~ 35 です。
GeoRedundantBackup Enabled このサーバーに対して geo 冗長バックアップを有効にする必要があるかどうかどうか。 この値は、Basic 価格レベルのサーバーに対して有効にすることはできません。また、サーバーの作成後に変更することもできません。 使用できる値は以下の通りです。Enabled、Disabled
場所 westus サーバーの Azure リージョン。
SslEnforcement Enabled このサーバーに対して SSL を有効にする必要があるかどうかどうか。 使用できる値は以下の通りです。Enabled、Disabled
StorageInMb 51200 サーバーのストレージ容量 (単位はメガバイト)。 有効な StorageInMb は 5,120 MB 以上で、増分単位は 1,024 MB です。 ストレージ サイズの制限の詳細については、「Azure Database for MySQL の価格レベル」を参照してください。
Version 5.7 MySQL のメジャー バージョン。
AdministratorUserName myadmin 管理者ログインのユーザー名。 これを azure_superuseradminadministratorrootguestpublic にすることはできません。
AdministratorLoginPassword <securestring> セキュリティで保護された文字列形式の管理者ユーザーのパスワード。 8 ~ 128 文字にする必要があります。 パスワードには、英大文字、英小文字、数字、英数字以外の文字のうち、3 つのカテゴリの文字が含まれている必要があります。

Sku パラメーターの値は、次の例のように、<価格レベル_コンピューティング世代_仮想コア数> という規則に従います。

  • -Sku B_Gen5_1 は、"Basic、Gen 5、および 1 個の仮想コア" にマップされます。 このオプションは、利用できる最小の SKU です。
  • -Sku GP_Gen5_32 は、"汎用、Gen 5、および 32 個の仮想コア" にマップされます。
  • -Sku MO_Gen5_2 は、"メモリ最適化、Gen 5、および 2 個の仮想コア" にマップされます。

リージョンおよびレベルごとの有効な Sku 値については、「Azure Database for MySQL の価格レベル」を参照してください。

次の例では、米国西部リージョンの myresourcegroup リソース グループに mydemoserver という名前の MySQL サーバーを作成しています。サーバー管理者ログインは myadmin です。 これは、2 つの仮想コアを備え geo 冗長バックアップが有効になっている、汎用価格レベルの Gen 5 サーバーです。 例の最初の行に使用されているパスワードは MySQL server 管理者アカウントのパスワードであるため、これを記録しておきます。

ヒント

サーバー名は DNS 名に対応しており、Azure 内でグローバルに一意であることが必要です。

$Password = Read-Host -Prompt 'Please enter your password' -AsSecureString
New-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup -Sku GP_Gen5_2 -GeoRedundantBackup Enabled -Location westus -AdministratorUsername myadmin -AdministratorLoginPassword $Password

低負荷なコンピューティングと I/O がワークロードに適している場合は、Basic 価格レベルの使用を検討してください。

重要

Basic 価格レベルで作成されたサーバーは、後で汎用またはメモリ最適化にスケーリングできず、geo レプリケーションすることもできません。

ファイアウォール規則を構成する

New-AzMySqlFirewallRule コマンドレットを使用して、Azure Database for MySQL サーバーレベルのファイアウォール規則を作成します。 サーバーレベルのファイアウォール規則により、mysql コマンドライン ツールや MySQL Workbench などの外部アプリケーションが、Azure Database for MySQL サービス ファイアウォールを経由してサーバーに接続できるようになります。

次の例では、特定の IP アドレス 192.168.0.1 からの接続を許可する、AllowMyIP と呼ばれるファイアウォール規則を作成しています。 実際の接続元の場所に対応する IP アドレスまたは IP アドレスの範囲に置き換えてください。

New-AzMySqlFirewallRule -Name AllowMyIP -ResourceGroupName myresourcegroup -ServerName mydemoserver -StartIPAddress 192.168.0.1 -EndIPAddress 192.168.0.1

Note

Azure Database for MySQL との接続では、ポート 3306 が通信に使用されます。 企業ネットワーク内から接続を試みる場合、ポート 3306 での送信トラフィックが許可されていない場合があります。 このシナリオでは、IT 部門によってポート 3306 が開かれている場合にのみ、サーバーに接続できます。

SSL 設定の構成

既定では、サーバーとクライアント アプリケーション間で SSL 接続が適用されます。 この既定値では、インターネット上のデータ ストリームを暗号化することによって、"インモーション" データのセキュリティが確保されます。 このクイック スタートでは、サーバーの SSL 接続を無効にします。 詳細については、「Azure Database for MySQL に安全に接続するためにアプリケーションで SSL 接続を構成する」を参照してください。

警告

実稼働サーバーで SSL を無効にすることはお勧めしません。

次の例では、Azure Database for MySQL サーバー上で SSL を無効にしています。

Update-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup -SslEnforcement Disabled

接続情報の取得

サーバーに接続するには、ホスト情報とアクセス資格情報を提供する必要があります。 接続情報を確認するには、次の例を使用します。 FullyQualifiedDomainNameAdministratorLogin の値を書き留めておきます。

Get-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup |
  Select-Object -Property FullyQualifiedDomainName, AdministratorLogin
FullyQualifiedDomainName                    AdministratorLogin
------------------------                    ------------------
mydemoserver.mysql.database.azure.com       myadmin

mysql コマンドライン ツールを使用してサーバーに接続する

mysql コマンドライン ツールを使用してサーバーに接続します。 コマンドライン ツールをダウンロードしてインストールするには、「MySQL コミュニティ ダウンロード」を参照してください。 また、この記事のコード サンプルにある [使ってみる] ボタンを選択することにより、Azure Cloud Shell の mysql コマンドライン ツールのプレインストール バージョンにアクセスすることもできます。 Azure Cloud Shell にアクセスするその他の方法は、Azure portal の右上のツール バーにある >_ ボタンを選択するか、shell.azure.com にアクセスします。

  1. mysql コマンドライン ツールを使用してサーバーに接続します。

    mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p
    
  2. サーバーの状態を表示します。

    mysql> status
    
    C:\Users\>mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p
    Enter password: *************
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 65512
    Server version: 5.6.42.0 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> status
    --------------
    mysql  Ver 14.14 Distrib 5.7.29, for Win64 (x86_64)
    
    Connection id:          65512
    Current database:
    Current user:           myadmin@myipaddress
    SSL:                    Not in use
    Using delimiter:        ;
    Server version:         5.6.42.0 MySQL Community Server (GPL)
    Protocol version:       10
    Connection:             mydemoserver.mysql.database.azure.com via TCP/IP
    Server characterset:    latin1
    Db     characterset:    latin1
    Client characterset:    utf8
    Conn.  characterset:    utf8
    TCP port:               3306
    Uptime:                 1 hour 2 min 12 sec
    
    Threads: 7  Questions: 952  Slow queries: 0  Opens: 66  Flush tables: 3  Open tables: 16  Queries per second avg: 0.255
    --------------
    
    mysql>
    

その他のコマンドについては、「MySQL 5.7 リファレンス マニュアル - 4.5.1 章」を参照してください。

MySQL Workbench を使用したサーバーへの接続

  1. クライアント コンピューターで MySQL Workbench アプリケーションを起動します。 MySQL Workbench をダウンロードしてインストールするには、MySQL Workbench のダウンロード ページを参照してください。

  2. [Setup New Connection](新しい接続のセットアップ) ダイアログ ボックスで、次の情報を [Parameters](パラメーター) タブに入力します。

    setup new connection

    設定 推奨値 説明
    接続名 My Connection この接続のラベルを指定します
    接続方法 Standard (TCP/IP) TCP/IP プロトコルを使用して Azure Database for MySQL に接続します
    hostname mydemoserver.mysql.database.azure.com 前にメモしておいたサーバー名です
    Port 3306 MySQL の既定のポートです
    ユーザー名 myadmin@mydemoserver 前にメモしておいたサーバーの管理者ログインです
    Password ************* 前に構成した管理者アカウントのパスワードを使用します
  3. パラメーターが正しく構成されているかどうかをテストするには、 [Test Connection](接続のテスト) をクリックします。

  4. サーバーに接続するための接続を選択します。

リソースをクリーンアップする

このクイックスタートで作成したリソースが別のクイックスタートまたはチュートリアルで必要でない場合は、次の例を実行して削除できます。

注意事項

次の例では、指定されたリソース グループとそれに含まれるすべてのリソースを削除します。 指定したリソース グループにこのクイックスタートの範囲外のリソースが含まれている場合、それらも削除されます。

Remove-AzResourceGroup -Name myresourcegroup

リソース グループを削除せずに、このクイックスタートで作成したサーバーのみを削除するには、Remove-AzMySqlServer コマンドレットを使用します。

Remove-AzMySqlServer -Name mydemoserver -ResourceGroupName myresourcegroup

次のステップ