Accéder au contenu principal Passer au contenu complémentaire

MySQL

Cette section explique comment configurer la connectivité à une cible MySQL via le connecteur Cible MySQL. MySQL peut être utilisé comme base de données cible dans une tâche Replicate uniquement. Avant de pouvoir vous connecter à une cible MySQL, vous devez configurer les Autorisations requises sur la base de données. Si vous vous connectez à MySQL via Data Movement gateway, vous devez également installer le pilote, comme décrit à la section Configuration du pilote.

Pour des informations sur les limitations et les considérations à prendre en compte lors de l'utilisation du connecteur MySQL, voir Restrictions et considérations générales.

Définition des propriétés de connexion s

Cette section décrit les propriétés de connexion disponibles. Toutes les propriétés sont requises, sauf indication contraire.

Cible de données

  • Passerelle de données : Sélectionnez la passerelle Data Movement gateway qui sera utilisée pour tester la connexion à la cible MySQL. Il doit s'agir de la même passerelle que celle utilisée pour accéder à la source de données.

    Note Informations
    • Nécessite Data Movement gateway 2023.5.10 ou une version ultérieure.
    • Vous devez également installer le pilote approprié sur le poste Data Movement gateway. Pour des informations détaillées, voir la section Configuration du pilote ci-dessous.

  • Fournisseur de cloud : Sélectionnez l'une des options suivantes, le cas échéant :

    • Pour MySQL on-premises, MariaDB, Amazon Aurora ou Microsoft Azure Database for MySQL - Flexible Server.

    • Pour Amazon RDS for MariaDB ou Amazon RDS for MySQL.

    • Pour Google Cloud SQL for MySQL.

    • Pour Microsoft Azure Database for MySQL.

  • Server : nom d'hôte ou adresse IP de l'ordinateur sur lequel la base de données MySQL est installée.

  • Port : port utilisé lors de la connexion à la base de données. Le port 3306 est le port par défaut.

Propriétés de compte

User Name et Password : nom d'utilisateur et mot de passe d'un utilisateur autorisé à accéder à la base de données MySQL Server.

Propriétés de base de données

  • Target Database Type : sélectionnez l'une des options suivantes :
    • Specific database : lorsque cette option est sélectionnée, tous les schémas sources sont chargés dans la Database (Base de données) spécifiée.
    • Multiple databases : lorsque cette option est sélectionnée, chacun des schémas sources est chargé dans sa base de données correspondante. De plus, par défaut, l'ensemble des tables de contrôle sont répliquées dans un nouveau schéma appelé attrep_control. Pour plus d'informations sur les tables de contrôle, voir Tables de contrôle.
  • Max file size (KB) : sélectionnez ou saisissez la taille maximale (en Ko) d'un fichier CSV avant qu'il soit chargé dans la base de données cible MySQL. La valeur par défaut est 32 000 Ko.
  • Parallel load threads : l'augmentation du nombre de threads peut améliorer les performances lors du chargement de données dans la base de données cible MySQL. Notez que la définition d'un grand nombre de threads peut avoir un effet inverse sur les performances de la base de données, étant donné qu'une connexion distincte est nécessaire pour chaque thread.

Propriétés internes

Les propriétés internes s'adressent à des cas d'utilisation spéciaux et ne sont par conséquent pas exposées dans la boîte de dialogue. Utilisez-les uniquement si Qlik Support vous le demande.

Utilisez les boutons Créer nouveau et Annuler à droite des champs pour ajouter ou supprimer des propriétés, suivant les besoins.

Nom

Nom d'affichage de la connexion.

Conditions préalables requises

Autorisations requises

L'utilisateur spécifié dans les paramètres du connecteur doit être titulaire des droits suivants :

  • Accès au compte MySQL
  • Privilèges Lecture/Écriture dans la base de données MySQL
  • Autorisations suivantes pour chaque schéma cible impliqué dans la réplication :
    • ALTER
    • CREATE
    • CREATE TEMPORARY TABLES
    • DELETE
    • DROP
    • INSERT
    • SELECT
    • UPDATE

Configuration du pilote

Cette section explique comment installer le driver requis. Le processus implique l'exécution d'un script qui téléchargera, installera et configurera automatiquement le driver requis. Vous pouvez également exécuter des scripts permettant de mettre à jour et de désinstaller le driver, si nécessaire.

  • Assurez-vous que Python 3.6 ou une version ultérieure est installé sur le serveur de passerelle Déplacement des données.

    Python est préinstallé sur la plupart des distributions Linux. Vous pouvez vérifier la version de Python installée sur votre système en exécutant la commande suivante :

    python3 --version

Pour télécharger et installer le driver :

  1. Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :

    opt/qlik/gateway/movement/drivers/bin

  2. Exécutez la commande suivante :

    Syntaxe :

    ./install mysql

    Si le driver ne peut pas être téléchargé (en raison de restrictions d'accès ou de problèmes techniques), un message s'affichera, vous indiquant où télécharger et copier le driver sur le poste de passerelle Déplacement des données. Une fois que c'est fait, exécutez de nouveau la commande install mysql.

    Sinon, le CLUF du driver apparaîtra.

  3. Procédez de l'une des manières suivantes :

    • Appuyez à plusieurs reprises sur [Entrée] pour parcourir lentement le CLUF.
    • Appuyez à plusieurs reprises sur la barre d'espacement pour parcourir rapidement le CLUF.
    • Appuyez sur q pour quitter le texte de licence et faire apparaître les options d'acceptation du CLUF.
  4. Procédez de l'une des manières suivantes :

    • Saisissez « y » et appuyez sur [Entrée] pour accepter le CLUF et démarrer l'installation.
    • Saisissez « n » et appuyez sur [Entrée] pour rejeter le CLUF et quitter l'installation.
    • Saisissez « v » et appuyez sur [Entrée] pour afficher de nouveau le CLUF.

  5. Le driver sera installé.

Exécutez la commande update si vous souhaitez désinstaller des versions précédentes du driver avant d'installer le driver fourni.

Pour télécharger et mettre à jour le driver :

  1. Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :

    opt/qlik/gateway/movement/drivers/bin

  2. Exécutez la commande suivante :

    Syntaxe :

    ./update mysql

    Si le driver ne peut pas être téléchargé (en raison de restrictions d'accès ou de problèmes techniques), un message s'affichera, vous indiquant où télécharger et copier le driversur le poste de passerelle Déplacement des données. Une fois que c'est fait, exécutez de nouveau la commande update mysql.

    Sinon, le CLUF du driver apparaîtra.

  3. Procédez de l'une des manières suivantes :

    • Appuyez à plusieurs reprises sur [Entrée] pour parcourir lentement le CLUF.
    • Appuyez à plusieurs reprises sur la barre d'espacement pour parcourir rapidement le CLUF.
    • Appuyez sur q pour quitter le texte de licence et faire apparaître les options d'acceptation du CLUF.
  4. Procédez de l'une des manières suivantes :

    • Saisissez « y » et appuyez sur [Entrée] pour accepter le CLUF et démarrer l'installation.
    • Saisissez « n » et appuyez sur [Entrée] pour rejeter le CLUF et quitter l'installation.
    • Saisissez « v » et appuyez sur [Entrée] pour passer le CLUF en revue depuis le début.
  5. L'ancien driver sera désinstallé et le nouveau driver sera installé.

Exécutez la commande uninstall si vous souhaitez désinstaller le driver.

Pour désinstaller le driver :

  1. Arrêtez toutes les tâches configurées pour utiliser ce connecteur.

  2. Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :

    opt/qlik/gateway/movement/drivers/bin

  3. Exécutez la commande suivante :

    Syntaxe :

    ./uninstall mysql

    le driver sera désinstallé.

Installation manuelle du pilote

Vous devez tenter d'installer manuellement le driver uniquement si l'installation de pilote automatisée n'a pas fonctionné.

Une fois la Data Movement gateway installée, téléchargez le pilote mysql-connector-odbc-<version>.x86_64.rpm. Vous trouverez un lien de téléchargement direct vers la version prise en charge sous binary-artifacts dans /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Une fois le téléchargement terminé, copiez le RPM sur le poste Data Movement gateway.

Sur le serveur Data Movement gateway, ouvrez une invite shell et procédez comme suit :

  1. Arrêtez le service Data Movement gateway :

    sudo systemctl stop repagent

  2. Confirmez éventuellement l'arrêt du service :

    sudo systemctl status repagent

    Le statut doit être comme suit :

    Active: inactive (dead) since <timestamp> ago

  3. Installez le pilote sur le poste Data Movement gateway.
  4. Remplacez le répertoire de travail par <Data Movement gateway-Install-Dir>/bin.

  5. Copiez l'emplacement du pilote dans le fichier site_arep_login.sh :

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh

    Le pilote est ainsi ajouté à « LD_LIBRARY_PATH » et son emplacement est mis à jour dans le fichier site_arep_login.sh.

  6. Confirmez éventuellement que l'emplacement du pilote a été copié :

    cat site_arep_login.sh
  7. Vérifiez si le fichier /etc/odbcinst.ini contient une entrée pour MySQL, comme dans l'exemple suivant :

    [MySQL ODBC 8.0 Unicode Driver]

    Driver = /usr/lib64/libmyodbc8w.so

    UsageCount = 1

  8. Démarrez le service Data Movement gateway :

    sudo systemctl start repagent

  9. Confirmez éventuellement le lancement du service :

    sudo systemctl status repagent

    Le statut doit être comme suit :

    Active: active (running) since <timestamp> ago

Restrictions et considérations générales

Lors de l'utilisation de MySQL comme cible de réplication, les limitations suivantes s'appliquent :

  • Lors d'une réplication dans la base de données cible MariaDB, si la valeur DATETIME est définie sur zéro, vous devez définir une transformation qui remplace DATETIME par des valeurs valides. Par exemple :

    replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')

    Note InformationsCette limitation ne s'applique pas à la base de données Microsoft Azure pour MySQL.
  • En raison du mode opératoire de MySQL, lors du chargement de données dans une cible MySQL au cours d'une tâche Chargement complet, les erreurs de clés dupliquées ne seront pas signalées dans les journaux.
  • Lors de la mise à jour de la valeur d'une colonne pour la remplacer par sa valeur existante, un résultat de zéro ligne affectée est renvoyé par MySQL (contrairement à Oracle et Microsoft SQL Server qui effectuent une mise à jour d'une ligne).

    Cela génère une entrée dans la attrep_apply_exceptions Control Table et l'avertissement suivant :

    Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.

  • En raison d'un problème avec MySQL 5.7 (qui a été résolu dans la version 8.0), les caractères multioctets ne peuvent pas être insérés dans les colonnes TEXT lorsque Chargement complet utilise des fichiers CSV. Par conséquent, si le point de terminaison cible est MySQL 5.7 et si une table répliquée contient des colonnes TEXT avec des caractères multioctets UTF-8, il se peut que la table cible soit vide.

     

    Solution de contournement :

    Dans les paramètres de connecteur, définissez le paramètre interne loadUsingCSV sur FALSE. Notez que cela peut avoir un impact sur les performances.

  • Si vous devez répliquer des caractères emoji de 4 octets, le jeu de caractères du schéma cible doit être défini sur utf8mb4.

Types de données

Les informations de type de données natif sont préservées et affichées dans la colonne Type de données natif des vues d'ensemble de données. Si la colonne n'est pas visible, vous devez ouvrir le sélecteur de colonnes de la vue d'ensemble de données et sélectionner la colonne Type de données natif.

Types de données pris en charge
Types de données Qlik Cloud Types de données MySQL

BOOL

BOOL

BYTES

Si longueur est => 1 et =< 8 095 :

VARBINARY (Longueur)

Si longueur est => 8 096 et =< 65 535 :

BLOB

Si longueur est => 65 536 et =< 16 777 215 :

MEDIUMBLOB

Si longueur est => 16 777 216 et =< 2 147 483 647 :

LONGBLOB

DATE

DATE

TIME

TIME

DATETIME

Si l'échelle est => 0 et =< 6 :

DECIMAL (p,s)

Si l'échelle est => 7 et =< 12 :

VARCHAR (37)

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

Si échelle est => 0 et =< 30 :

DECIMAL (p,s)

Si échelle est => 31 et =< 100 :

VARCHAR (45)

REAL4

FLOAT

REAL8

DOUBLE

STRING

Si longueur est => 1 et =< 8 095 :

VARCHAR (Longueur)

Si longueur est => 8 096 et =< 65 535 :

TEXT

Si longueur est => 65 536 et =< 16 777 215 :

MEDIUMTEXT

Si longueur est => 16 777 216 et =< 2 147 483 647 :

LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Si longueur est => 1 et =< 8 095 :

VARCHAR (Longueur)

Si longueur est => 8 096 et =< 65 535 :

TEXT

Si longueur est => 65 536 et =< 16 777 215 :

MEDIUMTEXT

Si longueur est => 16 777 216 et =< 2 147 483 647 :

LONGTEXT

BLOB

Lorsque l'option Autoriser une taille de LOB illimitée est activée :

  • LONGBLOB

Lorsque l'option Limiter la taille de LOB à est activée :

  • Si la valeur spécifiée est inférieure ou égale à 63 Ko :

    BLOB

  • Si la valeur spécifiée est supérieure ou égale à 64 Ko :

    LONGBLOB

Pour des informations sur la limitation de la taille de LOB, voir Metadata.

NCLOB

Lorsque l'option Autoriser une taille de LOB illimitée est activée :

  • TEXT

Lorsque l'option Limiter la taille de LOB à est activée :

  • Si la valeur spécifiée est inférieure ou égale à 63 Ko :

    TEXT

  • Si la valeur spécifiée est supérieure ou égale à 64 Ko :

    LONGTEXT

Pour des informations sur la limitation de la taille de LOB, voir Metadata.

CLOB

Lorsque l'option Autoriser une taille de LOB illimitée est activée :

  • TEXT CHARACTER SET UTF-16

Lorsque l'option Limiter la taille de LOB à est activée :

  • Si la valeur spécifiée est inférieure ou égale à 63 Ko :

    TEXT CHARACTER SET UTF-16

  • Si la valeur spécifiée est supérieure ou égale à 64 Ko :

    LONGTEXT CHARACTER SET UTF-16

Pour des informations sur la limitation de la taille de LOB, voir Metadata.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !