Aller au contenu principal

Dépanner les problèmes d'ingestion MySQL

info

Aperçu

Le connecteur MySQL est en préversion publique. Contactez votre équipe de compte Databricks pour demander l'accès.

info

Cette page contient des références au terme slave , un terme que Databricks n'utilise pas. Lorsque le terme est supprimé de l'outil tiers, nous le supprimons de cette page.

Pour des conseils généraux de dépannage applicables à tous les pipelines d'ingestion gérés, consultez Dépanner les pipelines d'ingestion gérés.

Dépannage spécifique au connecteur

Les étapes de dépannage de cette section sont spécifiques au connecteur MySQL.

Problèmes de connexion

Le bouton Test Connection échoue

**Problème** : Le bouton **Test de connexion** échoue dans l'interface utilisateur, même si les identifiants sont corrects.

Cause : Il s’agit d’une limitation connue pour les utilisateurs MySQL avec les plugins d’authentification sha256_password ou caching_sha2_password.

Solutions : Vous pouvez ignorer cette erreur en toute sécurité et poursuivre la création de la connexion. Pour confirmer que vos informations d'identification fonctionnent, exécutez ce qui suit dans le client de ligne de commande MySQL ou un autre outil client MySQL :

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

Si vous pouvez vous connecter avec le client MySQL, la connexion fonctionnera pour l'ingestion malgré l'échec de Test de la connexion .

Impossible de se connecter au serveur MySQL

Problème : La connexion échoue avec des erreurs telles que « Impossible de se connecter au serveur MySQL » ou « Connexion refusée ».

**Causes et solutions possibles** :

  1. Connectivité réseau :

    • Vérifiez que les règles de pare-feu autorisent le trafic depuis les plages IP Databricks sur le port 3306.
    • Vérifiez les groupes de sécurité (AWS), les NSG (Azure) ou les règles de pare-feu (GCP).
    • Vérifier que le peering Virtual Private Cloud (VPC) ou la connectivité réseau est correctement configurée.
  2. MySQL n'écoute pas sur l'interface attendue :

    • Vérifiez le paramètre MySQL bind-address.
    • Assurez-vous que MySQL est à l'écoute sur 0.0.0.0 ou sur l'adresse IP spécifique à laquelle vous vous connectez.
  3. **Hôte ou port incorrect** :

    • Vérifiez que le Hostname ou l'adresse IP est correcte.
    • Confirmez que le port (default 3306) est correct.

Accès refusé pour l’utilisateur

Problème : la connexion échoue avec « Accès refusé pour l'utilisateur 'lakeflow_connect_user'@'host' ».

**Causes et solutions possibles** :

  1. **Mot de passe incorrect** : Vérifiez que le mot de passe est correct

  2. Utilisateur non créé ou hôte incorrect :

    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. Privilèges manquants :

    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;

Problèmes de logs binaires

Journalisation binaire non activée

Problème : le pipeline échoue avec une erreur indiquant que la journalisation binaire n'est pas activée.

Solution : Activez la journalisation binaire sur votre serveur MySQL :

  • RDS/Aurora : configurez le groupe de paramètres et redémarrez.
  • « **Azure MySQL** : Configurez les paramètres du serveur et redémarrez. »
  • GCP Cloud SQL : Configurez les indicateurs de base de données et redémarrez.
  • EC2 : Modifiez my.cnf et ajoutez log-bin=mysql-bin, puis redémarrez MySQL.

Vérifier avec :

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

Mauvais format binlog

Problème : le Pipeline échoue car le format binlog n'est pas ROW.

Solution : définissez le format binlog sur ROW:

  • RDS/Aurora : définissez binlog_format=ROW dans le groupe de paramètres.
  • **Azure MySQL** : Définissez binlog_format=ROW dans les paramètres du serveur.
  • GCP Cloud SQL : définissez binlog_format=ROW dans les indicateurs de base de données.
  • EC2 : ajoutez binlog_format=ROW à my.cnf.

Redémarrez MySQL et vérifiez :

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

Binlog purgé avant le traitement

Problème : Échec du pipeline avec une erreur concernant des fichiers binlog manquants.

Cause : Les Logs binaires ont été purgés avant que la passerelle d'ingestion puisse les traiter.

Solutions :

  1. Augmenter la rétention du journal binaire :

    SQL
    -- RDS/Aurora:
    -- Minimum: one day (24 hours), recommended: seven days (168 hours)
    CALL mysql.rds_set_configuration('binlog retention hours', 168);

    -- EC2 (MySQL 8.0):
    -- Minimum: one day (86400 seconds), recommended: seven days (604800 seconds)
    SET GLOBAL binlog_expire_logs_seconds = 604800;

    -- EC2 (MySQL 5.7):
    -- Minimum: one day, recommended: seven days
    SET GLOBAL expire_logs_days = 7;
  2. Effectuer un refresh complet des tables affectées :

  3. Assurez-vous que la passerelle d'ingestion fonctionne en continu.

Prévention : Configurez une rétention adéquate du journal binaire (un jour minimum, sept jours recommandés). Définir une valeur inférieure peut entraîner le nettoyage des journaux binaires avant que la passerelle d'ingestion ne les traite.

Problèmes de passerelle d'ingestion

Passerelle ne démarrant pas

Problème : La passerelle d'ingestion ne start pas ou échoue immédiatement.

**Causes et solutions possibles** :

  1. Problèmes de connexion : Vérifiez que la connexion fonctionne (voir Problèmes de connexion).

  2. Ressources compute insuffisantes :

    • Vérifiez les autorisations et les politiques de création de clusters.
  3. **Problèmes de volume de pré-production** :

    • Vérifiez que vous disposez de CREATE VOLUME privilèges sur le schéma de staging.
    • Vérifiez que le catalogue de préproduction n’est pas un catalogue étranger.

Passerelle en cours d'exécution mais ne capturant pas les changements

Problème : la passerelle est en cours d’exécution, mais les nouvelles modifications ne sont pas capturées.

**Causes et solutions possibles** :

  1. Rétention du journal binaire trop courte :

    • Augmenter la rétention du binlog.
    • Surveillez les fichiers binlog pour vous assurer qu'ils ne sont pas purgés trop rapidement.
  2. Interruptions réseau :

    • Vérifiez les problèmes de connectivité réseau.
    • Passez en revue les Logs de la passerelle pour les erreurs de connexion.

Problèmes de pipeline d’ingestion

Tables non ingérées

Problème : Certaines tables ne sont pas ingérées, même si elles sont sélectionnées.

**Causes et solutions possibles** :

  1. Types de données spatiales :

    • Les tables avec des colonnes spatiales ne peuvent pas être ingérées.
    • Exclure ces tables de l'ingestion.
  2. Privilèges manquants :

    • Vérifiez que l’utilisateur de la réplication dispose de SELECT sur toutes les tables sources.
    SQL
    SHOW GRANTS FOR 'lakeflow_connect_user'@'%';

Vérification des Logs

Pour diagnostiquer les problèmes, vérifiez les Logs suivants :

  1. **Logs de passerelle** :

    • Accédez au pipeline de la passerelle dans l'interface utilisateur de Databricks.
    • Cliquez sur la dernière exécution.
    • Vérifier les Logs des clusters et les logs d'événements DLT.
  2. Logs du pipeline :

    • Accédez au pipeline d'ingestion.
    • Cliquez sur la dernière exécution.
    • Consultez les Logs d'événements DLT et tous les messages d'erreur.
  3. Logs MySQL :

    • Vérifiez le journal des erreurs MySQL pour les problèmes de connexion ou de réplication.
    • Vérifiez les fichiers binlog si des erreurs de position se produisent.

Obtenir de l'aide

Si vous continuez à rencontrer des problèmes :

  1. Recueillir les informations pertinentes :

    • Messages d'erreur des logs du pipeline.
    • Logs de cluster de passerelle.
    • Version et type de déploiement de MySQL.
    • Configuration de la source (paramètres binlog, rétention).
  2. Veuillez contacter l'assistance Databricks avec les informations recueillies.

  3. Pendant la préversion publique, vous pouvez également contacter l'équipe de votre compte Databricks.

Erreurs de certificat de serveur TLS

Pour résoudre les problèmes d'erreurs de validation du certificat de serveur TLS, consultez Dépanner les erreurs de certificat TLS.