Arbeiten mit My SQL databases mithilfe der Erweiterung mysql_fdw - Amazon Relational Database Service

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 My SQL databases mithilfe der Erweiterung mysql_fdw

Um von Ihrem auf eine My -kompatible Datenbank zuzugreifen, können Sie die Erweiterung installieren und verwenden. mysql_fdw Mit diesem Foreign Data Wrapper können Sie mit RDS MySQL, Aurora MySQL, MariaDB und anderen My SQL -kompatiblen Datenbanken arbeiten. Die Verbindung vom für die SQL Postgre-DB-Instance zur SQL My-Datenbank wird je nach Client- und Serverkonfiguration auf Best-Effort-Basis 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 von 13.6 und höheren Versionen unterstützt. Sie unterstützt Auswahlen, Einfügungen, Aktualisierungen und Löschungen aus einer RDS for Postgre-DB in Tabellen auf einer My -kompatiblen Datenbank-InstanceSQL. SQL

DB für die Verwendung der Erweiterung mysql_fdw einrichten

Die Einrichtung der mysql_fdw Erweiterung auf Ihrem für die SQL Postgre-DB-Instance umfasst das Laden der Erweiterung in Ihre und das anschließende Erstellen des Verbindungspunkts zur My SQL DB-Instance. Für diese Aufgabe benötigen Sie die folgenden Details zur My SQL DB-Instance:

  • Hostname oder Endpunkt. Bei einem für My SQL DB-Instance können Sie den Endpunkt mithilfe der Konsole finden. 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 Standard-Portnummer für My SQL ist 3306.

  • Name der Datenbank. Die DB-ID.

Sie müssen auch Zugriff auf die Sicherheitsgruppe oder die Zugriffskontrollliste (ACL) für den SQL My-Port 3306 gewähren. Sowohl der für die SQL Postgre-DB-Instance und die RDS for My SQL DB-Instance benötigen Zugriff auf Port 3306. Wenn der Zugriff nicht korrekt konfiguriert ist, wird beim Versuch, eine Verbindung zur My SQL -kompatiblen Tabelle herzustellen, eine Fehlermeldung ähnlich der folgenden 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 SQL Benutzerkonten vom Typ Meine Benutzer, um mit der My SQL DB-Instance zu arbeiten.

Um mysql_fdw für den Zugriff auf einen My Database-Server zu verwenden SQL
  1. Stellen Sie mithilfe eines Kontos, das die rds_superuser Rolle hat, eine Connect zu Ihrer SQL Postgre-DB-Instance her. Wenn Sie bei der Erstellung Ihres die Standardeinstellungen akzeptiert haben, lautet der Benutzernamepostgres, und Sie können mit dem psql Befehlszeilentool wie folgt eine Verbindung herstellen:

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-password
  2. Installieren Sie die mysql_fdw-Erweiterung wie folgt:

    postgres=> CREATE EXTENSION mysql_fdw; CREATE EXTENSION

Nachdem die Erweiterung auf Ihrem für die SQL Postgre-DB-Instance installiert wurde, richten Sie den ausländischen Server ein, der die Verbindung zu einer My SQL database bereitstellt.

So erstellen Sie den fremden Server

Führen Sie diese Aufgaben auf dem aus. Die Schritte setzen voraus, dass Sie als Benutzer mit rds_superuser-Berechtigungen wie postgres verbunden sind.

  1. Erstellen Sie einen Fremdserver im :

    postgres=> CREATE SERVER mysql-db FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333.aws-region.rds.amazonaws.com', port '3306'); CREATE SERVER
  2. Gewä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 SERVER mysql-db to user1; GRANT

SQLPostgre-Benutzer erstellen und verwalten ihre eigenen Verbindungen zur SQL My-Datenbank über den fremden Server.

Beispiel: Arbeiten mit einer Datenbank von SQL

Angenommen, Sie haben eine einfache Tabelle auf einer für SQL Postgre-DB-Instance. Ihre SQL Benutzer von für Postgre möchten (SELECT), INSERTUPDATE, und DELETE Elemente in dieser Tabelle abfragen. Gehen Sie davon aus, dass die mysql_fdw Erweiterung auf Ihrer RDS for SQL Postgre-DB-Instance erstellt wurde, wie im vorherigen Verfahren beschrieben. Nachdem Sie als Benutzer mit rds_superuser Rechten eine Verbindung zur RDS for SQL Postgre-DB-Instance hergestellt haben, können Sie mit den folgenden Schritten fortfahren.

  1. Erstellen Sie auf der für die SQL Postgre-DB-Instance einen fremden Server:

    test=> CREATE SERVER mysqldb FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306'); CREATE SERVER
  2. Gewähren Sie einem Benutzer, der keine rds_superuser-Berechtigungen hat, die Nutzung, zum Beispiel user1:

    test=> GRANT USAGE ON FOREIGN SERVER mysqldb TO user1; GRANT
  3. Connect als user1und erstellen Sie dann eine Zuordnung zum Benutzer „Mein SQL Benutzer“:

    test=> CREATE USER MAPPING FOR user1 SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword'); CREATE USER MAPPING
  4. Erstellen Sie eine Fremdtabelle, die mit der SQL Tabelle Meine verknüpft ist:

    test=> CREATE FOREIGN TABLE mytab (a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name ''); CREATE FOREIGN TABLE
  5. Führen Sie eine einfache Abfrage mit der fremden Tabelle aus:

    test=> SELECT * FROM mytab; a | b ---+------- 1 | apple (1 row)
  6. Sie können Daten zur SQL Tabelle Meine hinzufügen, ändern und daraus entfernen. Beispielsweise:

    test=> INSERT INTO mytab values (2, 'mango'); INSERT 0 1

    Fü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 SQL von zu My SQL verwendet standardmäßig Verschlüsselung bei 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 REQUIRE SSL Option RDS für Meine SQL Benutzerkonten angeben. Derselbe Ansatz funktioniert auch für MariaDB- und Aurora SQL My-Benutzerkonten.

Für Meine SQL Benutzerkonten, die so konfiguriert sindREQUIRE SSL, schlägt der Verbindungsversuch fehl, wenn keine sichere Verbindung hergestellt werden kann.

Um die Verschlüsselung für bestehende Benutzerkonten vom SQL Typ Meine Datenbank zu erzwingen, können Sie den ALTER USER Befehl verwenden. Die Syntax variiert je nach SQL Version von My, wie in der folgenden Tabelle dargestellt. Weitere Informationen finden Sie ALTERUSERin Mein SQL Referenzhandbuch.

Mein SQL 5.7, Mein SQL 8.0 Mein SQL 5.6

ALTER USER 'user'@'%' REQUIRE SSL;

GRANT USAGE ON *.* to 'user'@'%' REQUIRE SSL;

Weitere Informationen zur Erweiterung mysql_fdw finden Sie in der mysql_fdw-Dokumentation.