MySQL
Dit onderwerp legt uit hoe u connectiviteit met een MySQL-doel configureert met behulp van de MySQL-doelconnector. MySQL kan alleen als doeldatabase in een replicatietaak worden gebruikt. Voordat u verbinding kunt maken met een MySQL-doel, moet u de Vereiste machtigingen op de database configureren. Als u verbinding maakt met MySQL via Data Movement gateway, moet u ook het stuurprogramma installeren zoals beschreven in Stuurprogramma instellen.
Voor informatie over de beperkingen en overwegingen bij het gebruik van de MySQL connector, zie Beperkingen en overwegingen.
Verbindingseigenschappen instellen
Doe het volgende om de connector te configureren:
-
Klik in Verbindingen op Verbinding maken.
-
Selecteer de MySQL doelconnector en geef vervolgens de volgende instellingen op:
Gegevensdoel
-
Gegevensgateway: Wanneer u werkt met Data Movement gateway, selecteert u de data gateway die wordt gebruikt om de verbinding met het MySQL-doel te testen. Dit moet dezelfde gateway zijn die is gebruikt om toegang te krijgen tot de gegevensbron.
Informatie- Dit veld is niet beschikbaar bij een Qlik Talend Cloud Starter-abonnement, aangezien Data Movement gateway niet wordt ondersteund bij dit abonnementsniveau.
-
U moet ook het juiste stuurprogramma installeren op de Data Movement gateway-machine. Voor details, zie Stuurprogramma instellen hieronder.
-
Cloudprovider: Kies een van de volgende opties, indien van toepassing:
-
Geen
- Voor MySQL on-premises, MariaDB, Amazon Aurora of Microsoft Azure Database for MySQL - Flexible Server.
- Wanneer u werkt zonder Data Movement gateway
-
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 die moet worden gebruikt bij het verbinden met de database. De standaardwaarde is 3306.
Accounteigenschappen
Gebruikersnaam en Wachtwoord: De gebruikersnaam en het wachtwoord van een gebruiker die is geautoriseerd voor toegang tot de MySQL Server-database.
Database-eigenschappen
- Doeldatabasetype: Kies een van de volgende opties:
- Specifieke database: Wanneer deze optie is geselecteerd, worden alle bronschema's geladen in de opgegeven Database.
- Meerdere databases: Wanneer deze optie is geselecteerd, wordt elk van de bronschema's geladen in de bijbehorende database. Bovendien worden standaard alle Control Tables gerepliceerd naar een nieuw schema genaamd attrep_control. Voor meer informatie over Control Tables, zie Controletabellen.
- Max. bestandsgrootte (KB): Selecteer of typ de maximale grootte (in KB) van een CSV-bestand voordat het in de MySQL-doeldatabase wordt geladen. De standaardwaarde is 32000 KB.
- Parallelle laadthreads: Het verhogen van het aantal threads kan de prestaties verbeteren bij het laden van gegevens in de MySQL-doeldatabase. Houd er rekening mee dat het instellen van een groot aantal threads een nadelig effect kan hebben op de databaseprestaties, aangezien voor elke thread een afzonderlijke verbinding vereist is.
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
De gebruiker die is opgegeven in de connectorinstellingen moet de volgende machtigingen krijgen:
- Toegang tot MySQL-account
- Lees-/schrijfrechten in de MySQL-database
-
De volgende machtigingen
voor elk doelschema dat betrokken is bij de replicatie:
- ALTER
- CREATE
- CREATE TEMPORARY TABLES
- DELETE
- DROP
- INSERT
- SELECT
- UPDATE
Stuurprogramma instellen
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 Data Movement-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 Data Movement-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
Voer 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 Data Movement-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 Data Movement-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
Voer 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 Data Movement-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 Data Movement-gatewaymachine wijzigt u de werkdirectory in:
opt/qlik/gateway/movement/drivers/bin
-
Voer 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 Data Movement gateway 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 Data Movement gateway.
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.soUsageCount = 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 zijn van toepassing bij het gebruik van MySQL als replicatiedoel:
-
Wanneer u repliceert naar de MariaDB-doeldatabase en de DATETIME-waarde is ingesteld op nul, moet u een transformatie definiëren die de DATETIME vervangt door geldige waarden. Bijvoorbeeld:
replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')
InformatieDeze beperking is niet van toepassing op Microsoft Azure Database for MySQL. - Vanwege de manier waarop MySQL werkt, worden bij het laden van gegevens naar een MySQL-doel tijdens een Full Load-taak, fouten bij het dupliceren van sleutels niet in de logboeken gerapporteerd.
-
Wanneer de waarde van een kolom wordt bijgewerkt naar de bestaande waarde, wordt 'nul beïnvloede rijen' geretourneerd door MySQL (in tegenstelling tot Oracle en Microsoft SQL Server, die een update van één rij uitvoeren).
Dit genereert een vermelding in de attrep_apply_exceptions Control Table en de volgende waarschuwing:
Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.
-
Als u 4-byte emoji-tekens moet repliceren, moet de tekenset van het doelschema worden ingesteld op utf8mb4.
-
Wanneer een brontabel een groot aantal kolommen bevat, kan MySQL een Row size too large (> 8126)-fout retourneren, aangezien 8126 bytes de standaard maximale rijgrootte is in MySQL. Bij gebruik van SaaS-applicatiebronnen treedt deze fout op tijdens runtime. Bij gebruik van andere brontypen, zoals databases, treedt de fout op tijdens de taakvoorbereiding. Om deze beperking aan te pakken, kunt u een van de volgende benaderingen gebruiken:
-
Aanbevolen benadering: Nadat de gegevens zijn opgenomen, verwijdert u de kolommen die u niet nodig hebt op het doel. Voor informatie over hoe u dit doet, raadpleegt u Kolommen verwijderen. Als u de fout nog steeds tegenkomt, verwijdert u meer kolommen.
-
Alternatieve beperking: Als u wilt dat alle bronkolommen in de doeltabel worden opgenomen, zijn er bepaalde MySQL-databaseconfiguraties die dit mogelijk maken. Een daarvan is het vergroten van de MySQL-paginagrootte zodat deze groot genoeg is om de rijgrootte te accommoderen.
InformatieVoor bronnen met rijgroottes die de limiet van 65.535 bytes overschrijden, moet u het bronveld converteren naar een gegevenstype dat grotere rijgroottes ondersteunt. Dit is te wijten aan een bekende beperking van de maximale grootte van rijrecords. Voor meer informatie, zie de MySQL-documentatie over limieten voor rijgroottes.
-
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. |