メインコンテンツまでスキップ

MySQLの取り込みに関する問題のトラブルシューティング

備考

プレビュー

MySQL コネクタはパブリック プレビュー段階です。アクセスをリクエストするには、Databricks アカウント チームにお問い合わせください。

備考

このページには、Databricks では使用されない用語である「 スレーブ 」への参照が含まれています。サードパーティ ソフトウェアから用語が削除されると、このページからも削除されます。

一般的なパイプラインのトラブルシューティング

このセクションのトラブルシューティング ステップはLakeFlow Connectのすべての管理対象取り込みパイプラインに適用されます。

実行中にパイプラインが失敗した場合は、失敗したステップをクリックし、エラー メッセージにエラーの性質に関する十分な情報が提供されているかどうかを確認します。

UI でパイプライン イベント ログを表示する

右側のパネルで [詳細の更新] をクリックし、 [ログ] を クリックして、パイプラインの詳細ページからクラスター ログを確認してダウンロードすることもできます。ログをスキャンしてエラーまたは例外がないか確認します。

UI でパイプラインの更新の詳細を表示する

コネクタ固有のトラブルシューティング

このセクションのトラブルシューティング ステップは、 MySQLコネクタに固有のものです。

接続の問題

テスト接続 ボタンが失敗する

問題 : 資格情報が正しいにもかかわらず、UI の 「テスト接続」 ボタンが失敗します。

原因 : これは、 sha256_passwordまたはcaching_sha2_password認証プラグインを使用する MySQL ユーザーに対する既知の制限です。

解決策 : このエラーは無視しても問題なく、接続の作成を続行できます。 資格情報が機能することを確認するには、MySQL コマンドライン クライアントまたは別の MySQL クライアント ツールで次のコマンドを実行します。

Bash
mysql -h your-mysql-host -u lakeflow_connect_user -p

MySQL クライアントに接続できる場合は、 テスト接続が 失敗しても、接続は取り込みのために機能します。

MySQLサーバーに接続できません

問題 : 「MySQL サーバーに接続できません」や「接続が拒否されました」などのエラーが発生し、接続が失敗します。

考えられる原因と解決策 :

  1. ネットワーク接続 :

    • ファイアウォール ルールがポート 3306 の Databricks IP 範囲からのトラフィックを許可していることを確認します。
    • セキュリティ グループ (AWS)、NSG (Azure)、またはファイアウォール ルール (GCP) を確認します。
    • VPC ピアリングまたはネットワーク接続が適切に構成されていることを確認します。
  2. MySQL が予期されたインターフェースでリッスンしていません :

    • MySQL bind-address設定を確認してください。
    • MySQL が0.0.0.0または接続先の特定の IP アドレスでリッスンしていることを確認します。
  3. ホストまたはポートが間違っています :

    • ホスト名または IP アドレスが正しいことを確認します。
    • ポート (デフォルト 3306) が正しいことを確認します。

ユーザーのアクセスが拒否されました

問題 : 「ユーザー 'lakeflow_connect_user'@'host' のアクセスが拒否されました」というメッセージが表示され、接続が失敗します。

考えられる原因と解決策 :

  1. パスワードが間違っています : パスワードが正しいことを確認してください

  2. ユーザーが作成されていないか、ホストが間違っています :

    SQL
    -- Check if user exists
    SELECT User, Host FROM mysql.user WHERE User = 'lakeflow_connect_user';

    -- User might need to be created for specific host or '%'
    CREATE USER 'lakeflow_connect_user'@'%' IDENTIFIED BY 'password';
  3. 不足している権限 :

    SQL
    -- Grant required privileges
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'lakeflow_connect_user'@'%';
    GRANT SELECT ON your_database.* TO 'lakeflow_connect_user'@'%';
    FLUSH PRIVILEGES;

バイナリログの問題

バイナリログが有効になっていません

問題 : バイナリ ログが有効になっていないことを示すエラーが発生し、パイプラインが失敗します。

解決策 : MySQLサーバーでバイナリ ログを有効にします。

  • RDS/Aurora : 論点グループを構成して再起動します。
  • Azure MySQL : サーバーを構成して再起動します。
  • GCPクラウドSQL : データベース フラグを構成して再起動します。
  • EC2 : my.cnfを編集してlog-bin=mysql-binを追加し、MySQL を再起動します。

確認するには:

SQL
SHOW VARIABLES LIKE 'log_bin';
-- Should return ON

binlog形式が間違っています

問題 : binlog 形式がROWではないため、パイプラインが失敗します。

解決策 : binlog 形式をROWに設定します。

  • RDS/Aurora : 代わりのグループにbinlog_format=ROWを設定します。
  • Azure MySQL : サーバー パラメーターにbinlog_format=ROWを設定します。
  • GCPクラウドSQL : データベース フラグにbinlog_format=ROWを設定します。
  • EC2 : binlog_format=ROW my.cnfに追加します。

MySQLを再起動して確認します。

SQL
SHOW VARIABLES LIKE 'binlog_format';
-- Should return ROW

処理前にバイナリログが消去されました

問題 : バイナリログファイルが見つからないというエラーでパイプラインが失敗します。

原因 : バイナリ ログは、取り込みゲートウェイが処理する前に消去されました。

ソリューション

  1. バイナリログの保持期間を延長する:

    SQL
    -- RDS/Aurora:
    CALL mysql.rds_set_configuration('binlog retention hours', 168); -- 7 days

    -- EC2 (MySQL 8.0):
    SET GLOBAL binlog_expire_logs_seconds = 604800; -- 7 days

    -- EC2 (MySQL 5.7):
    SET GLOBAL expire_logs_days = 7;
  2. 影響を受けるテーブルの完全更新を実行します。

  3. 取り込みゲートウェイが継続的に実行されることを確認する

予防策 : 適切な binlog 保持期間を構成します (7 日間を推奨)。より低い値を設定すると、取り込みゲートウェイが処理する前にバイナリログがクリーンアップされる可能性があります。

取り込みゲートウェイの問題

ゲートウェイが起動しない

問題 : インジェスト ゲートウェイが起動に失敗するか、すぐに失敗します。

考えられる原因と解決策 :

  1. 接続の問題 : 接続が機能していることを確認します ( 「接続の問題」を参照)。

  2. コンピュートリソースが不十分です :

    • クラスター作成の権限とポリシーを確認します。
  3. ステージングボリュームの問題 :

    • ステージング スキーマに対するCREATE VOLUME権限があることを確認してください。
    • ステージング カタログがフォーリンカタログではないことを確認してください。

ゲートウェイは実行されているが変更をキャプチャしていない

問題 : ゲートウェイは実行されていますが、新しい変更がキャプチャされていません。

考えられる原因と解決策 :

  1. バイナリログの保持期間が短すぎます :

    • バイナリログの保持期間を延長します。
    • binlog ファイルを監視して、あまり早く削除されないように注意してください。
  2. ネットワーク中断 :

    • ネットワーク接続の問題がないか確認してください。
    • ゲートウェイ ログで接続エラーを確認します。

取り込みパイプラインの問題

テーブルが取り込まれない

問題 : 一部のテーブルは選択されているにもかかわらず取り込まれません。

考えられる原因と解決策 :

  1. 空間データ型 :

    • 空間列を含むテーブルは取り込めません。
    • これらのテーブルを取り込みから除外します。
  2. 不足している権限 :

    • レプリケーション ユーザーがすべてのソース テーブルに対してSELECTを持っていることを確認します。
    SQL
    SHOW GRANTS FOR 'lakeflow_connect_user'@'%';

ログの確認

問題を診断するには、次のログを確認してください。

  1. ゲートウェイログ :

    • Databricks UI でゲートウェイ パイプラインに移動します。
    • 最新の実行をクリックします。
    • クラスター ログと DLT イベント ログを確認します。
  2. パイプラインログ :

    • 取り込みパイプラインに移動します。
    • 最新の実行をクリックします。
    • DLT イベント ログとエラー メッセージを確認します。
  3. MySQL ログ :

    • 接続またはレプリケーションの問題がないか、MySQL エラー ログを確認してください。
    • 位置エラーが発生した場合は、binlog ファイルを確認します。

サポートを求める

問題が引き続き発生する場合:

  1. 関連情報を収集します。

    • パイプライン ログからのエラー メッセージ。
    • ゲートウェイ クラスターのログ。
    • MySQL のバージョンとデプロイメント タイプ。
    • ソース構成 (binlog 設定、保持)。
  2. 収集した情報を Databricks サポートに連絡してください。

  3. パブリック プレビュー期間中は、Databricks アカウント チームに連絡することもできます。