次の方法で共有


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

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

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

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

地理学 リージョン
アジア太平洋 東南アジア
オーストラリア オーストラリア東部
カナダ カナダ中部
ヨーロッパ 北ヨーロッパ
西ヨーロッパ
フランス フランス中部
日本 東日本
韓国 韓国中部
イギリス 英国南部
米国 米国中部
米国西部 2

[前提条件]

パブリック エンドポイント接続で作成された Azure Migrate プロジェクトのみがサポートされます。 プライベート エンドポイント プロジェクトは、プレビューではサポートされていません。

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 エンジンの状態、最初に検出された時刻、最終更新時刻

    ヒント

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

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

次のステップ