MySQL Database CDC-bron toevoegen aan een eventstream
Notitie
Dit artikel bevat verwijzingen naar de term SLAVE
, een term die Microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.
In dit artikel leest u hoe u een MySQL Change Data Capture-bron toevoegt aan een eventstream. Op dit moment wordt MySQL Database CDC ondersteund vanuit de volgende services waar de databases openbaar toegankelijk zijn:
- Azure Database voor MySQL
- Amazon RDS for MySQL
- Amazon Aurora MySQL
- Google Cloud SQL for MySQL (GCP).
In deze handleiding wordt Azure Database for MySQL CDC als voorbeeld gebruikt.
Zodra de MySQL Database CDC-bron is toegevoegd aan de eventstream, worden wijzigingen op rijniveau vastgelegd in de opgegeven tabellen. Deze wijzigingen kunnen vervolgens in realtime worden verwerkt en naar verschillende bestemmingen worden verzonden voor verdere analyse.
Notitie
Deze bron wordt niet ondersteund in de volgende regio's van uw werkruimtecapaciteit: VS - west 3, Zwitserland - west.
Vereisten
- Toegang tot een werkruimte in de licentiemodus voor infrastructuurcapaciteit (of) de modus Voor proeflicenties met inzender- of hogere machtigingen.
- Toegang tot een exemplaar van MySQL Database, zoals: een database in Azure Database for MySQL - Flexible Server.
- Uw MySQL-database moet openbaar toegankelijk zijn en zich niet achter een firewall bevinden of zijn beveiligd in een virtueel netwerk.
- Als u geen eventstream hebt, maakt u een eventstream.
MySQL-database instellen
De connector maakt gebruik van de Debezium MySQL-connector om wijzigingen in uw MySQL-database vast te leggen. U moet een MySQL-gebruiker met de juiste bevoegdheden definiëren voor alle databases waaruit de Berichtenconnector de wijzigingen kan vastleggen. U kunt de -beheerder gebruiker direct gebruiken om verbinding te maken met de database, die normaal gesproken de juiste bevoegdheden heeft. U kunt ook de volgende stappen uitvoeren om een nieuwe gebruiker te maken:
Notitie
Het nieuwe gebruikers- of beheerdersaccount en het bijbehorende wachtwoord worden gebruikt om later in Eventstream verbinding te maken met de database.
Maak bij de
mysql
opdrachtprompt de MySQL-gebruiker:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
Verdeel de vereiste bevoegdheden aan de gebruiker:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
Notitie
Wanneer een globale leesvergrendeling niet beschikbaar is, zoals in gehoste opties zoals Amazon RDS of Aurora, worden vergrendelingen op tabelniveau gebruikt om de consistente momentopname te maken. In dit geval moet u
LOCK TABLES
toestemming verlenen aan de gebruiker. Als uFLUSH
bewerkingen tijdens de momentopname wilt ondersteunen, moet u mogelijk ookRELOAD
ofFLUSH_TABLES
bevoegdheden verlenen.Voltooi de machtigingen van de gebruiker:
mysql> FLUSH PRIVILEGES;
Om te bevestigen of de gebruiker of beheerder de vereiste privileges heeft gekregen, voert u dit commando uit. Vervolgens zouden de vereiste privileges in stap 2 moeten worden getoond.
SHOW GRANTS FOR user;
Zie de Debezium-connector voor MySQL: Debezium-documentatie voor meer informatie over het verlenen van de vereiste machtigingen aan de gebruiker.
Het binlog inschakelen
U moet binaire logboekregistratie inschakelen voor MySQL-replicatie. De binaire logboeken registreren transactie-updates voor replicatiehulpprogramma's om wijzigingen door te geven. In deze sectie wordt Azure Database for MySQL CDC gebruikt als voorbeeld om de configuratiestappen weer te geven.
Selecteer op de azure-portalpagina voor uw Azure Database for MySQL-account serverparameters onder Instellingen in het linkernavigatievenster.
Configureer op de pagina Serverparameters de volgende eigenschappen en selecteer Opslaan.
Selecteer voor binlog_row_image de optie Volledig.
Stel voor binlog_expire_logs_seconds het aantal seconden in dat de service wacht voordat het binaire logboekbestand wordt opgeschoond. Stel de waarde in op basis van de behoeften van uw omgeving, bijvoorbeeld 86400.
MySQL DB (CDC) toevoegen als bron
Als u nog geen bron aan uw eventstream hebt toegevoegd, selecteert u De tegel Externe bron gebruiken.
Als u de bron toevoegt aan een al gepubliceerde gebeurtenisstroom, schakelt u over naar de bewerkingsmodus, selecteert u Bron toevoegen op het lint en selecteert u Vervolgens Externe bronnen.
Zoek en selecteer verbinding maken op de tegel MySQL DB (CDC) op de pagina Een gegevensbron selecteren.
MySQL DB (CDC) configureren en er verbinding mee maken
Selecteer in het scherm Verbinding maken onder Verbinding de optie Nieuwe verbinding om een cloudverbinding te maken.
Voer de volgende verbindingsinstellingen in en verbindingsreferenties voor uw MySQL-database en selecteer vervolgens Verbinding maken.
Server: Het serveradres van uw MySQL-database, bijvoorbeeld my-mysql-server.mysql.database.azure.com.
Database: de naam van de database, bijvoorbeeld my_database.
Verbindingsnaam: automatisch gegenereerd of u kunt een nieuwe naam voor deze verbinding invoeren.
gebruikersnaam en wachtwoord: voer de inloggegevens voor uw MySQL-database in. Zorg ervoor dat u het beheerdersaccount van de server of het gebruikersaccount invoert dat is gemaakt met de vereiste bevoegdheden die zijn verleend.
Voer de volgende informatie in om de CDC-gegevensbron MySQL DB te configureren en selecteer vervolgens Volgende.
Tabel(en): Voer een lijst met tabelnamen in, gescheiden door komma's. Elke tabelnaam moet de notatie
<database name>.<table name>
volgen, bijvoorbeeld my_database.users.Server-id: Voer een unieke waarde in voor elke server en replicatieclient in het MySQL-cluster. De standaardwaarde is 1000.
Poort: laat de standaardwaarde ongewijzigd.
U kunt ook de bronnaam bewerken door de knop Potlood voor bronnaam te selecteren in de sectie Details van stream aan de rechterkant.
Notitie
Stel een andere server-id in voor elke lezer. Elke MySQL-databaseclient voor het lezen van binlog moet een unieke id hebben, server-id genoemd. MySQL Server gebruikt deze id om de netwerkverbinding en de binlog-positie te behouden. Verschillende taken die dezelfde server-id delen, kunnen leiden tot het lezen van de verkeerde binlogpositie. Daarom is het raadzaam om voor elke lezer een andere server-id in te stellen.
Op de pagina Review + verbinding maken, selecteer na het bekijken van de samenvatting voor de MySQL DB CDC-bron Toevoegen om de configuratie te voltooien.
Notitie
Het maximum aantal bronnen en bestemmingen voor één eventstream is 11.
Bijgewerkte eventstream weergeven
U ziet dat de MySQL DB-bron (CDC) is toegevoegd aan uw eventstream in bewerkingsmodus.
Selecteer Publish om de wijzigingen te publiceren en mySQL DB CDC-gegevens naar de eventstream te streamen.
Gerelateerde inhoud
Andere connectors: