MySQL 移行ジョブでは、
ユーザー アカウントとログインは移行されません。
DEFINER 句でユーザーが定義したメタデータを含むソースは、新しい Cloud SQL レプリカで呼び出されると失敗します。これは、ユーザーがまだ存在しないためです。
メタデータに存在する DEFINER 値を確認するには、MySQL 移行元データベースにクエリを実行します。結果で、root%localhost または移行先インスタンスに存在しないユーザーのエントリを確認します。
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA NOT
IN ('mysql', 'sys');
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA NOT
IN ('mysql', 'sys');
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA NOT
IN ('mysql', 'sys');
SELECT DISTINCT DEFINER FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA NOT
IN ('mysql', 'sys');
このようなメタデータを含むソースから移行ジョブを実行するには、次のいずれかの操作を行います。
移行ジョブを開始する前に、移行先 Cloud SQL レプリカ インスタンスにユーザーを作成します。
移行ジョブを開始せずに下書きを作成するには、[作成して開始] ではなく [作成] を選択します。
移行先 Cloud SQL インスタンスで、Cloud SQL API または Google Cloud コンソールを使用して、移行元 MySQL インスタンスからユーザーを再作成します。
移行ジョブのリストまたは特定のジョブのページから、移行ジョブを開始します。
移行ジョブを設定する前に、移行元 MySQL インスタンスで
DEFINER句をINVOKERに更新します。