Ga naar hoofdinhoud Ga naar aanvullende inhoud

MySQL

Deze sectie beschrijft hoe u de verbinding met een MySQL-doel moet configureren met behulp van de MySQL Target-connector. MySQL kan alleen als een doeldatabase worden gebruikt in een replicatietaak. Voordat u verbinding kunt maken met een MySQL-doel, moet u de Vereiste machtigingen voor de database configureren. Als u via Gateway voor gegevensverplaatsing verbinding maakt met MySQL, moet u ook het stuurprogramma installeren zoals beschreven in Setup stuurprogramma.

Voor informatie over de beperkingen en overwegingen bij het gebruik van de MySQL-connector raadpleegt u Beperkingen en overwegingen.

Verbindingseigenschappen instellen

Deze sectie beschrijft de beschikbare verbindingseigenschappen. Alle eigenschappen zijn vereist, tenzij anders aangegeven.

Gegevensdoel

  • Gegevensgateway: Selecteer de Gateway voor gegevensverplaatsing die wordt gebruikt om de verbinding naar het MySQL-doel te testen. Dit moet dezelfde gateway zijn die is gebruikt om toegang tot de gegevensbron te krijgen.

    Informatie
    • Vereist Gateway voor gegevensverplaatsing 2023.5.10 of hoger.
    • U moet ook het juiste stuurprogramma installeren op een Gateway voor gegevensverplaatsing-machine. Voor meer informatie raadpleegt u Setup stuurprogramma hieronder.

  • Cloudprovider: Kies uit een van de volgende:

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

    • Voor Amazon RDS for MariaDB of Amazon RDS for MySQL.

    • Voor Google Cloud SQL for MySQL

    • Voor Microsoft Azure Database for MySQL

  • Server: De hostnaam of het IP-adres van de computer waarop de MySQL-database is geïnstalleerd.

  • Poort: De poort om te gebruiken als u verbinding maakt met een database. De standaardwaarde is 3306.

Accounteigenschappen

Gebruikersnaam en wachtwoord: De gebruikersnaam en het wachtwoord van een gebruiker die toegang heeft tot de MySQL Server-database.

Database-eigenschappen

  • Doeldatabasetype: Kies uit een van de volgende:
    • Specifieke database: Als deze optie is geselecteerd, worden alle bronschema's geladen in de opgegeven database.
    • Meerdere databases: Als deze optie is geselecteerd, wordt elk van de bronschema's geladen in de bijbehorende database. Bovendien worden standaard alle controlletabellen gerepliceerd naar een nieuw schema met de naam attrep_control. Voor meer informatie over controletabellen gaat u naar Controletabellen.
  • Max. bestandsgrootte (kB): Selecteer of typ de maximumgrootte (in KB) van een CSV-bestand voordat het wordt geladen naar de MyQL-doeldatabase. De standaardwaarde is 32000 KB.
  • Parallelle laadthreads: Het aantal threads verhogen, kan de prestaties verbeteren voor het laden van gegevens in de MySQL-doeldatabase. Houd er rekening mee dat een groot aantal threads instellen een nadelig effect kan hebben op de prestaties van de database, omdat een afzonderlijke verbinding is vereist voor elke thread.

Interne eigenschappen

Interne eigenschappen zijn bedoeld voor speciale toepassingen en worden daarom niet in het dialoogvenster weergegeven. U moet ze alleen gebruiken als Qlik Support dit aan u heeft geadviseerd.

Gebruik de knop Nieuwe maken en Annuleren aan de rechterkant van de velden om eigenschappen toe te voegen of te verwijderen.

Naam

De weergavenaam voor de verbinding.

Vereisten

Vereiste machtigingen

Aan de gebruiker die is opgegeven in de connectorinstellingen moet het volgende worden toegewezen:

  • Toegang tot het MySQL-account
  • Lees-/schrijfmachtigingen in de MySQL-database
  • De volgende machtigingen voor elk doelschema dat is betrokken bij de replicatie:
    • ALTER
    • CREATE
    • CREATE TEMPORARY TABLES
    • DELETE
    • DROP
    • INSERT
    • SELECT
    • UPDATE

Setup stuurprogramma

In deze sectie wordt beschreven hoe u het vereiste driver installeert. Het proces omvat het uitvoeren van een script dat automatisch het vereiste driver downloadt, installeert en configureert. U kunt indien nodig ook scripts uitvoeren om het driver bij te werken en verwijderen.

  • Controleer of Python 3.6 of hoger is geïnstalleerd op de Gegevensverplaatsing-gatewayserver.

    Python is al geïnstalleerd op de meeste Linux-distributies. U kunt controleren welke Python-versie is geïnstalleerd op uw systeem door de volgende opdracht uit te voeren:

    python3 --version

Ga als volgt te werk om het driverte downloaden en installeren:

  1. Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:

    opt/qlik/gateway/movement/drivers/bin

  2. Voer dan de volgende opdracht uit:

    Syntaxis:

    ./install mysql

    Als het driver niet kan worden gedownload (vanwege toegangsbeperkingen of technische problemen), wordt er een melding getoond met de instructies voor het downloaden van het driver en waarnaar u het moet kopiëren op de Gegevensverplaatsing-gatewaymachine. Nadat u dit hebt gedaan, voert u de opdracht install mysql nogmaals uit.

    Anders wordt de gebruiksrechtovereenkomst voor het driver getoond.

  3. Voer een van de volgende handelingen uit:

    • Druk herhaaldelijk op [Enter] om langzaam door de gebruiksrechtovereenkomst te scrollen.
    • Druk herhaaldelijk op de spatiebalk om snel door de gebruiksrechtovereenkomst te scrollen.
    • Druk op q om de licentietekst af te sluiten en de opties te tonen voor het aanvaarden van de gebruiksrechtovereenkomst.
  4. Voer een van de volgende handelingen uit:

    • Typ "y" en druk op [Enter] om de gebruiksrechtovereenkomst te accepteren en de installatie te starten.
    • Typ "n" en druk op [Enter] om de gebruiksrechtovereenkomst af te wijzen en de installatie af te sluiten.
    • Typ "v" en druk op [Enter] om de gebruiksrechtovereenkomst nogmaals te tonen.

  5. Het driver wordt geïnstalleerd.

Voer de update-opdracht uit als u eerdere versies van het driver wilt verwijderen voordat u het meegeleverde driver installeert.

Ga als volgt te werk om het driver te downloaden en bij te werken:

  1. Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:

    opt/qlik/gateway/movement/drivers/bin

  2. Voer dan de volgende opdracht uit:

    Syntaxis:

    ./update mysql

    Als het driver niet kan worden gedownload (vanwege toegangsbeperkingen of technische problemen), wordt er een melding getoond met de instructies voor het downloaden van het driver en waarnaar u het moet kopiëren op de Gegevensverplaatsing-gatewaymachine. Nadat u dit hebt gedaan, voert u de opdracht update mysql nogmaals uit.

    Anders wordt de gebruiksrechtovereenkomst voor het driver getoond.

  3. Voer een van de volgende handelingen uit:

    • Druk herhaaldelijk op [Enter] om langzaam door de gebruiksrechtovereenkomst te scrollen.
    • Druk herhaaldelijk op de spatiebalk om snel door de gebruiksrechtovereenkomst te scrollen.
    • Druk op q om de licentietekst af te sluiten en de opties te tonen voor het aanvaarden van de gebruiksrechtovereenkomst.
  4. Voer een van de volgende handelingen uit:

    • Typ "y" en druk op [Enter] om de gebruiksrechtovereenkomst te accepteren en de installatie te starten.
    • Typ "n" en druk op [Enter] om de gebruiksrechtovereenkomst af te wijzen en de installatie af te sluiten.
    • Typ "v" en druk op [Enter] om de gebruiksrechtovereenkomst nogmaals vanaf het begin te tonen.
  5. Het oude driver wordt verwijderd en het nieuwe driver wordt geïnstalleerd.

Voer de uninstall-opdracht uit als u het driver wilt verwijderen.

Ga als volgt te werken om het driver te verwijderen:

  1. Stop alle taken die zijn geconfigureerd om deze connector te gebruiken.

  2. Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:

    opt/qlik/gateway/movement/drivers/bin

  3. Voer dan de volgende opdracht uit:

    Syntaxis:

    ./uninstall mysql

    driver wordt verwijderd.

Het stuurprogramma handmatig installeren

U moet het driver alleen handmatig uitvoeren als de geautomatiseerde installatie van het stuurprogramma niet is voltooid.

Nadat Gateway voor gegevensverplaatsing is geïnstalleerd, downloadt u het mysql-connector-odbc-<version>.x86_64.rpm stuurprogramma. U vindt een directe downloadlink naar de ondersteunde versie onder binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Nadat de download is voltooid, kopieert u de RPM naar de machine met de Gateway voor gegevensverplaatsing.

Open op de Data Movement gateway-server een opdrachtregel en doe het volgende:

  1. Stop de Data Movement gateway-service:

    sudo systemctl stop repagent

  2. Bevestig eventueel dat de service is gestopt:

    sudo systemctl status repagent

    De status zou als volgt moeten zijn:

    Active: inactive (dead) since <timestamp> ago

  3. Installeer het stuurprogramma op de Data Movement gateway-machine.
  4. Wijzig de werkmap in <Data Movement gateway-Install-Dir>/bin.

  5. Kopieer de locatie van het stuurprogramma als volgt naar het site_arep_login.sh-bestand:

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

    Hiermee wordt het stuurprogramma toevoegd aan "LD_LIBRARY_PATH" en wordt de locatie van het stuurprogramma bijgewerkt in het site_arep_login.sh-bestand.

  6. Bevestig eventueel dat de locatie van stuurpogramma is gekopieerd:

    cat site_arep_login.sh
  7. Zorg ervoor dat het bestand /etc/odbcinst.ini een vermelding voor MySQL bevat, zoals in het volgende voorbeeld:

    [MySQL ODBC 8.0 Unicode Driver]

    Driver = /usr/lib64/libmyodbc8w.so

    UsageCount = 1

  8. Start de Data Movement gateway-service:

    sudo systemctl start repagent

  9. Bevestig eventueel dat de service is gestart:

    sudo systemctl status repagent

    De status zou als volgt moeten zijn:

    Active: active (running) since <timestamp> ago

Beperkingen en overwegingen

De volgende beperkingen gelden bij gebruik van MySQL als een replicatiedoel:

  • Bij het repliceren naar de MariaDB-doeldatabase, als de DATETIME-waarde is ingesteld op nul, moet u een transformatie definiëren die de DATETIME met geldige waarden vervangt. Bijvoorbeeld:

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

    InformatieDeze beperking geldt niet voor Microsoft Azure Database for MySQL.
  • Door de manier waarop MySQL werkt, worden dubbele sleutelfouten niet in de logboeken geregistreerd als er gegevens naar een MySQL-taak worden geladen tijdens een volledige lading.
  • Wanneer de waarde van de kolom wordt bijgewerkt naar de bestaande waarde, worden er geen beïnvloedde rijen geretourneerd door MySQL (in tegenstelling tot Oracle en Microsoft SQL Server waarbij één rij wordt bijgewerkt).

    Hierdoor wordt een vermelding in de attrep_apply_exceptions Control Table en de volgende waarschuwing gegenereerd:

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

  • Vanwege een probleem met MySQL 5.7 (dat is verholpen in versie 8.0), kunnen multibyte-tekens niet worden ingevoegd in TEXT-kolommen als de volledige lading CSV-bestanden gebruikt. Dit heeft als gevolg dat de doeltabel mogelijk leeg is als het doeleindpunt MySQL 5.7 is en een gerepliceerde tabel TEXT-kolommen bevat met UTF-8 multibyte-tekens.

     

    Tijdelijke oplossing:

    In de connectorinstellingen, stelt u de interne parameter loadUsingCSV in op FALSE. Dit kan de prestaties beïnvloeden.

  • Als u emoticons van 4 bytes moet repliceren, moet de tekenreeks van het doelschema zijn ingesteld op utf8mb4.

Gegevenstypen

Informatie in eigen gegevenstypen wordt behouden en wordt weergegeven in de kolom Eigen gegevenstype in weergaven van gegevensverzamelingen. Als de kolom niet zichtbaar is, moet u de kolomkiezer van de weergave van de gegevensverzameling openen en de kolom Eigen gegevenstype selecteren.

Ondersteunde gegevenstypen
Qlik Cloud-gegevenstypen MySQL-gegevenstypen

BOOL

BOOL

BYTES

Als lengte => 1 en =< 21845 is, dan:

VARBINARY (Length)

Als lengte => 8096 en =< 65535 is, dan:

BLOB

Als lengte => 65536 en =< 16777215 is, dan:

MEDIUMBLOB

Als lengte => 16777216 en =< 2147483647 is, dan:

LONGBLOB

DATE

DATE

TIME

TIME

DATETIME

Als schaal => 0 en =< 6 is, dan:

DECIMAL (p,s)

Als schaal => 7 en =< 12 is, dan:

VARCHAR (37)

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

Als schaal => 0 en =< 30 is, dan:

DECIMAL (p,s)

Als schaal => 31 en =< 100 is, dan:

VARCHAR (45)

REAL4

FLOAT

REAL8

DOUBLE

STRING

Als lengte => 1 en =< 21845 is, dan:

VARCHAR (Length)

Als lengte => 8096 en =< 65535 is, dan:

TEXT

Als lengte => 65536 en =< 16777215 is, dan:

MEDIUMTEXT

Als lengte => 16777216 en =< 2147483647 is, dan:

LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Als lengte => 1 en =< 21845 is, dan:

VARCHAR (Length)

Als lengte => 8096 en =< 65535 is, dan:

TEXT

Als lengte => 65536 en =< 16777215 is, dan:

MEDIUMTEXT

Als lengte => 16777216 en =< 2147483647 is, dan:

LONGTEXT

BLOB

Als de optie Onbeperkte LOB-grootte toestaan is ingeschakeld:

  • LONGBLOB

Als de optie LOB-grootte beperken tot is ingeschakeld:

  • Als de opgegeven waarde i 63 KB of kleiner is, dan:

    BLOB

  • Als de opgegeven waarde 64 KB of groter is, dan:

    LONGBLOB

Voor meer informatie over het beperken van de LOB-grootte gaat u naar Metadata.

NCLOB

Als de optie Onbeperkte LOB-grootte toestaan is ingeschakeld:

  • TEXT

Als de optie LOB-grootte beperken tot is ingeschakeld:

  • Als de opgegeven waarde 63 KB of kleiner is, dan:

    TEXT

  • Als de opgegeven waarde 64 KB of groter is, dan:

    LONGTEXT

Voor meer informatie over het beperken van de LOB-grootte gaat u naar Metadata.

CLOB

Als de optie Onbeperkte LOB-grootte toestaan is ingeschakeld:

  • TEXT CHARACTER SET UTF-16

Als de optie LOB-grootte beperken tot is ingeschakeld:

  • Als de opgegeven waarde 63 KB of kleiner is, dan:

    TEXT CHARACTER SET UTF-16

  • Als de opgegeven waarde 64 KB of groter is, dan:

    LONGTEXT CHARACTER SET UTF-16

Voor meer informatie over het beperken van de LOB-grootte gaat u naar Metadata.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!