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
Themen
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
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 dempsql
Befehlszeilentool wie folgt eine Verbindung herstellen: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 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.
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
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
touser1
;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
), INSERT
UPDATE
, 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.
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
Gewähren Sie einem Benutzer, der keine
rds_superuser
-Berechtigungen hat, die Nutzung, zum Beispieluser1
:test=>
GRANT USAGE ON FOREIGN SERVER mysqldb TO user1;
GRANT
Connect als
user1
und 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
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
Führen Sie eine einfache Abfrage mit der fremden Tabelle aus:
test=>
SELECT * FROM mytab;
a | b ---+------- 1 | apple (1 row)
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 ALTERUSER
Mein SQL 5.7, Mein SQL 8.0 | Mein SQL 5.6 |
---|---|
|
|
Weitere Informationen zur Erweiterung mysql_fdw
finden Sie in der mysql_fdw