MySQL
Dit onderwerp beschrijft hoe u de verbinding met een MySQL-doel moet configureren met behulp van de MySQL-doelconnector. 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
Ga als volgt te werk om de connector te configureren:
-
Klik in Verbindingen op Verbinding maken.
-
Selecteer de MySQL-doelconnector en stel de volgende instellingen in:
Gegevensdoel
-
Gegevensgateway: Bij het werken met Gateway voor gegevensverplaatsing selecteert u de gegevensgateway 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- Dit veld is niet beschikbaar bij een Qlik Talend Cloud Starter-abonnement omdat Gateway voor gegevensverplaatsing niet wordt ondersteund bij dit abonnementsniveau.
-
U moet ook het juiste stuurprogramma installeren op een Gateway voor gegevensverplaatsing-machine. Voor meer informatie raadpleegt u Setup stuurprogramma hieronder.
-
Cloudprovider: kies een van de volgende opties:
-
Geen
- Voor MySQL on-premises, MariaDB, Amazon Aurora of Microsoft Azure Database for MySQL - Flexible Server.
- Bij gebruik zonder Gateway voor gegevensverplaatsing
-
Amazon RDS
Voor Amazon RDS for MariaDB of Amazon RDS for MySQL.
-
Google Cloud
Voor Google Cloud SQL for MySQL
-
Microsoft Azure
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 en 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.
De installatie voorbereiden
-
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
De driver installeren
Ga als volgt te werk om het driverte downloaden en installeren:
-
Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
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.
-
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.
-
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.
Het driver wordt geïnstalleerd.
Het driver bijwerken
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:
-
Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
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.
-
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.
-
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.
Het oude driver wordt verwijderd en het nieuwe driver wordt geïnstalleerd.
Het driver verwijderen
Voer de uninstall-opdracht uit als u het driver wilt verwijderen.
Ga als volgt te werken om het driver te verwijderen:
-
Stop alle taken die zijn geconfigureerd om deze connector te gebruiken.
-
Op de Gegevensverplaatsing-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
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:
-
Stop de Data Movement gateway-service:
sudo systemctl stop repagent
-
Bevestig eventueel dat de service is gestopt:
sudo systemctl status repagent
De status zou als volgt moeten zijn:
Active: inactive (dead) since <timestamp> ago
- Installeer het stuurprogramma op de Data Movement gateway-machine.
-
Wijzig de werkmap in <Data Movement gateway-Install-Dir>/bin.
-
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.
-
Bevestig eventueel dat de locatie van stuurpogramma is gekopieerd:
cat site_arep_login.sh
-
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
-
Start de Data Movement gateway-service:
sudo systemctl start repagent
-
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.
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:
Als de optie LOB-grootte beperken tot is ingeschakeld:
Voor meer informatie over het beperken van de LOB-grootte gaat u naar Metadata. |
NCLOB |
Als de optie Onbeperkte LOB-grootte toestaan is ingeschakeld:
Als de optie LOB-grootte beperken tot is ingeschakeld:
Voor meer informatie over het beperken van de LOB-grootte gaat u naar Metadata. |
CLOB |
Als de optie Onbeperkte LOB-grootte toestaan is ingeschakeld:
Als de optie LOB-grootte beperken tot is ingeschakeld:
Voor meer informatie over het beperken van de LOB-grootte gaat u naar Metadata. |