データセンターで実行されている MySQL データベース インスタンスを検出する (プレビュー)

この記事では、 Azure Migrate アプライアンスを使用して、データセンター内のサーバーで実行されている MySQL データベース インスタンスを検出する方法について説明します。 検出プロセスはエージェントレスです。ターゲット サーバーにエージェントがインストールされていません。

サポートされているリージョン

次の表に、プレビューで MySQL の検出と評価をサポートするリージョンを示します。

地理学 リージョン
Africa 南アフリカ北部
アジア太平洋 東アジア
東南アジア
オーストラリア オーストラリア東部
オーストラリア南東部
Brazil ブラジル南部
カナダ カナダ中部
ヨーロッパ 北ヨーロッパ
西ヨーロッパ
フランス フランス中部
Germany ドイツ中西部
India インド中部
インド南部
Italy イタリア北部
日本 東日本
西日本
韓国 韓国中部
韓国南部
ノルウェイ ノルウェー東部
ポーランド ポーランド中部
Spain スペイン中部
Sweden スウェーデン中部
アラブ首長国連邦 アラブ首長国連邦北部
イギリス 英国南部
英国西部
米国 米国中部
米国西部 2

[前提条件]

MySQL 資格情報を指定する

  1. アプライアンス構成マネージャーを開き、アプライアンスの前提条件の確認と登録を完了します。

  2. [資格情報と検出ソースの管理] パネルに移動します。

  3. 手順 3: MySQL 認証 資格情報の種類を選択し、フレンドリ名を指定し、MySQL のユーザー名とパスワードを入力して 、[保存] を選択します。

    • 追加された MySQL 資格情報に対応するユーザーに次の特権があることを確認します。
      • information_schema テーブルに対するアクセス許可を選択します。
      • mysql.users テーブルのアクセス許可を選択します。
    • MySQL 検出の場合は、必要なファイアウォール規則と MySQL ユーザー特権の構成で、アプライアンスの IP またはドメインが許可されていることを確認します。 必要な場合は、my.cnf のバインドアドレスも外部接続を許可するように設定する必要があります。
    • 次のコマンドを使用して、MySQL ユーザーに必要な特権を付与します。
     GRANT USAGE ON *.* TO 'username'@'ip';
     GRANT PROCESS ON *.* TO 'username'@'ip';
     GRANT SELECT (User, Host, Super_priv, File_priv, Create_tablespace_priv, Shutdown_priv) ON mysql.user TO 'username'@'ip';
     GRANT SELECT ON information_schema.* TO 'username'@'ip';
     GRANT SELECT ON performance_schema.* TO 'username'@'ip';  
    

Azure Migrate で検出と評価を有効にするには、必要最小限のアクセス許可を持つカスタム MySQL ユーザー アカウントを作成できます。 次のスクリプトを使用してアカウントを作成し、アプライアンス マシンからアクセス権を付与します。

  • CREATE USER 権限を使用して新しいユーザーを作成します。
  • GRANT OPTION 特権→、新しいユーザーに特権を付与します。
  • mysql.user の SELECT →存在チェックに必要です。
  • PROCESS 特権→、作成後にプロセス関連の許可を確認する場合に使用します。

-- MySQL Script to Create a Least-Privilege User for Azure Migrate
-- Replace @username, @password, and @ip with actual values before execution.

SET @username = 'your_username';
SET @password = 'your_password';
SET @ip = 'your_appliance_ip';

-- Check if the user already exists
SELECT CASE
    WHEN EXISTS (SELECT 1 FROM mysql.user WHERE user = @username AND host = @ip)
        THEN CONCAT('User ', @username, '@', @ip, ' already exists, skipping creation')
    ELSE
        CONCAT('User ', @username, '@', @ip, ' does not exist, proceeding with creation')
END AS user_check;

-- Create the user if not exists
CREATE USER IF NOT EXISTS @username@'@ip' IDENTIFIED BY @password;

-- Grant minimal required privileges
GRANT USAGE ON *.* TO @username@'@ip';
GRANT PROCESS ON *.* TO @username@'@ip';

-- Grant SELECT on specific columns in mysql.user
GRANT SELECT (User, Host, Super_priv, File_priv, Create_tablespace_priv, Shutdown_priv)
ON mysql.user TO @username@'@ip';

-- Grant SELECT on information_schema and performance_schema
GRANT SELECT ON information_schema.* TO @username@'@ip';
GRANT SELECT ON performance_schema.* TO @username@'@ip';

-- Apply changes
FLUSH PRIVILEGES;

-- Log success
SELECT CONCAT('Azure Migrate user ', @username, '@', @ip, ' created successfully with least privileges.') AS result;

MySQL クライアントから次のコマンドを使用してスクリプトを実行します。

mysql -u root -p -e "SET @username='myuser'; SET @password='mypassword'; SET @ip='appliance_ip'; SOURCE CreateUser.sql;"

約24時間後に検出された MySQL データベースは、検出されたサーバービューで確認することができます。 MySQL インスタンスの検出を迅速化するには、次の手順に従います。

  • アプライアンス構成マネージャーで MySQL 資格情報を追加した後、アプライアンスの探索サービスを再起動します。
  • Azure Migrate プロジェクトで、[サーバー、データベース、Web アプリ] ブレードに移動します。 このタブで、[評価ツール] セクションの右側にある [アプライアンス] を見つけます。
  • 合計に対して投影される数値を選択します。 これにより、[アプライアンス] ブレードが表示されます。 資格情報が追加されたアプライアンスを選択します。
  • アプライアンス画面の下部にある [Refresh services]\(サービスの更新\) リンクを選択します。 これにより、すべてのサービスが再起動され、更新後に MySQL インスタンスがインベントリに表示されるようになります。
  1. [ハブ] ページの [Azure Migrate: Discovery and Assessment ] タイルで、[ 検出されたサーバー] の下にある番号を選択します。

    検出されたサーバーを示すスクリーンショット。

  2. ワークロード == データベースデータベースの種類 == MySQL フィルターを選択して、環境内で MySQL データベース インスタンスを実行しているすべてのサーバーの一覧を表示します。

  3. 検出された各サーバーの MySQL データベース インスタンスの基本情報を表示するには、対応するサーバーの [データベース インスタンス] 列の番号を選択します。 

    スクリーンショットは、データベース インスタンスを示しています。

  4. DB インスタンス ページで次の情報を確認します。

    • MySQL サーバーとインスタンス名
    • MySQL のエディション、バージョン、およびバージョンのサポート状態
    • インスタンス内のユーザー データベースの数
    • Azure Migrate の接続状態、DB エンジンの状態、最初に検出された時刻、最終更新時刻

    ヒント

    [ 列] を選択してデータをフィルター処理します。

    データベース インスタンスの概要を示すスクリーンショット。

次のステップ