Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Arbeiten mit MySQL-Datenbanken mithilfe der Erweiterung mysql_fdw
Um von Ihrem Aurora-PostgreSQL-DB-Cluster auf eine MySQL-kompatible Datenbank zuzugreifen, können Sie die mysql_fdw-Erweiterung installieren und verwenden. Mit diesem Fremddaten-Wrapper können Sie mit RDS für MySQL, Aurora MySQL, MariaDB und anderen MySQL-kompatiblen Datenbanken arbeiten. Die Verbindung des Aurora-PostgreSQL-DB-Clusters mit der MySQL-Datenbank wird je nach Client- und Serverkonfigurationen bestmöglich verschlüsselt. Sie können die Verschlüsselung jedoch erzwingen, wenn Sie möchten. Weitere Informationen finden Sie unter Verwenden der Verschlüsselung während der Übertragung mit der Erweiterung.
Die mysql_fdw-Erweiterung wird in Amazon Aurora PostgreSQL Version 15.4, 14.9, 13.12, 12.16 und neueren Versionen unterstützt. Es werden Auswahlen, Einfügungen, Updates und Löschungen einer RDS-für-PostgreSQL-DB in Tabellen einer MySQL-kompatiblen Datenbank-Instance unterstützt.
Themen
Einrichten der Aurora-PostgreSQL-DB zur Verwendung der mysql_fdw-Erweiterung
Das Einrichten der mysql_fdw-Erweiterung auf dem Aurora-PostgreSQL-DB-Cluster umfasst das Laden der Erweiterung in den DB-Cluster und das anschließende Erstellen des Verbindungspunkts mit der MySQL-DB-Instance. Für diese Aufgabe benötigen Sie folgende Details zur MySQL-DB-Instance:
Hostname oder Endpunkt. Sie können den Endpunkt für einen Aurora-MySQL-DB-Cluster mithilfe der Konsole ermitteln. Wählen Sie die Registerkarte „Connectivity & security“ (Konnektivität und Sicherheit) aus und sehen Sie im Abschnitt „Endpoint and port“ (Endpunkt und Port) nach.
Port-Nummer. Die Standardport-Nummer für MySQL ist 3306.
Name der Datenbank. Die DB-ID.
Sie müssen auch Zugriff auf die Sicherheitsgruppe oder die Zugriffssteuerungsliste (ACL) für den MySQL-Port 3306 gewähren. Der Aurora-PostgreSQL-DB-Cluster und der Aurora-MySQL-DB-Cluster ebenso wie benötigen Zugriff auf Port 3306. Wenn der Zugriff nicht korrekt konfiguriert ist, wird beim Versuch, eine Verbindung mit einer MySQL-kompatiblen Tabelle herzustellen, eine Fehlermeldung ähnlich wie die folgende angezeigt:
ERROR: failed to connect to MySQL: Can't connect to MySQL server on 'hostname.aws-region.rds.amazonaws.com:3306' (110)
Im folgenden Verfahren erstellen Sie (als rds_superuser-Konto) den fremden Server. Anschließend gewähren Sie bestimmten Benutzern Zugriff auf den fremden Server. Diese Benutzer erstellen dann ihre eigenen Zuordnungen zu den entsprechenden MySQL-Benutzerkonten zur Zusammenarbeit mit der MySQL-DB-Instance.
So greifen Sie mit mysql_fdw auf einen MySQL-Datenbankserver zu
Stellen Sie über ein Konto, das die
rds_superuser-Rolle enthält, eine Verbindung mit Ihrer PostgreSQL-DB-Instance her. Wenn Sie die Standardwerte beim Erstellen des Aurora-PostgreSQL-DB-Clusters akzeptiert haben, lautet der Benutzernamepostgres. Sie können sich mit dempsql-Befehlszeilen-Tool wie folgt verbinden:psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-passwordInstallieren Sie die
mysql_fdw-Erweiterung wie folgt:postgres=>CREATE EXTENSION mysql_fdw;CREATE EXTENSION
Nachdem die Erweiterung auf dem Aurora-PostgreSQL-DB-Cluster installiert wurde, richten Sie den fremden Server ein, der die Verbindung mit einer MySQL-Datenbank bereitstellt.
So erstellen Sie den fremden Server
Führen Sie diese Aufgaben auf dem Aurora-PostgreSQL-DB-Cluster aus. Die Schritte setzen voraus, dass Sie als Benutzer mit rds_superuser-Berechtigungen wie postgres verbunden sind.
Erstellen Sie einen fremden Server auf dem Aurora-PostgreSQL-DB-Cluster:
postgres=>CREATE SERVERmysql-dbFOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333.aws-region.rds.amazonaws.com', port '3306');CREATE SERVERGewähren Sie den entsprechenden Benutzern Zugriff auf den fremden Server. Dies sollten keine Administratorbenutzer sein, d. h. Benutzer ohne
rds_superuser-Rolle.postgres=>GRANT USAGE ON FOREIGN SERVERmysql-dbtouser1;GRANT
PostgreSQL-Benutzer erstellen und verwalten ihre eigenen Verbindungen mit der MySQL-Datenbank über den fremden Server.
Beispiel: Arbeiten mit einer Aurora-MySQL--Datenbank von Aurora PostgreSQL
Angenommen, Sie haben eine einfache Tabelle auf einer Aurora-PostgreSQL-DB-Instance. Ihre Aurora-PostgreSQL-Benutzer möchten (SELECT)-, INSERT-, UPDATE- und DELETE-Elemente in dieser Tabelle abfragen. Nehmen wir an, dass die mysql_fdw-Erweiterung auf Ihrer RDS-für-PostgreSQL-DB-Instance erstellt wurde, wie im vorherigen Verfahren beschrieben. Nachdem Sie eine Verbindung mit der RDS-für-PostgreSQL-DB-Instance als Benutzer mit rds_superuser-Berechtigungen hergestellt haben, können Sie mit den folgenden Schritten fortfahren.
Erstellen Sie einen fremden Server in der Aurora-PostgreSQL-DB-Instance:
test=>CREATE SERVERmysqldbFOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306');CREATE SERVERGewähren Sie einem Benutzer, der keine
rds_superuser-Berechtigungen hat, die Nutzung, zum Beispieluser1:test=>GRANT USAGE ON FOREIGN SERVER mysqldb TO user1;GRANTStellen Sie eine Verbindung als
user1(Benutzer 1) her und erstellen Sie dann eine Zuordnung zum MySQL-Benutzer:test=>CREATE USER MAPPING FORuser1SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword');CREATE USER MAPPINGErstellen Sie eine fremde Tabelle, die mit der MySQL-Tabelle verknüpft ist:
test=>CREATE FOREIGN TABLEmytab(a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name '');CREATE FOREIGN TABLEFühren Sie eine einfache Abfrage mit der fremden Tabelle aus:
test=>SELECT * FROM mytab;a | b ---+------- 1 | apple (1 row)Sie können der MySQL-Tabelle Daten hinzufügen, ändern und daraus entfernen. Beispiel:
test=>INSERT INTO mytab values (2, 'mango');INSERT 0 1Führen Sie die
SELECT-Abfrage noch einmal aus, um die Ergebnisse zu sehen:test=>SELECT * FROM mytab ORDER BY 1;a | b ---+------- 1 | apple 2 | mango (2 rows)
Verwenden der Verschlüsselung während der Übertragung mit der Erweiterung
Die Verbindung mit MySQL über Aurora PostgreSQL verwendet standardmäßig die Verschlüsselung während der Übertragung (TLS/SSL). Die Verbindung wird jedoch nicht verschlüsselt, wenn sich die Client- und Serverkonfiguration unterscheiden. Sie können die Verschlüsselung für alle ausgehenden Verbindungen erzwingen, indem Sie die Option REQUIRE SSL in den RDS-für-MySQL-Benutzerkonten angeben. Derselbe Ansatz funktioniert auch für MariaDB- und Aurora-MySQL-Benutzerkonten.
Für MySQL-Benutzerkonten, die für REQUIRE SSL konfiguriert sind, schlägt der Verbindungsversuch fehl, wenn keine sichere Verbindung hergestellt werden kann.
Um die Verschlüsselung für vorhandene MySQL-Datenbankbenutzerkonten durchzusetzen, können Sie den Befehl ALTER USER verwenden. Die Syntax variiert je nach MySQL-Version, wie in der folgenden Tabelle gezeigt. Weitere Informationen finden Sie unter ALTER USER
| MySQL 5.7, MySQL 8.0 | MySQL 5.6 |
|---|---|
|
|
|
Weitere Informationen zur Erweiterung mysql_fdw finden Sie in der mysql_fdw