Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Interazione con i database MySQL utilizzando l'estensione mysql_fdw
Per accedere a un database compatibile con MySQL dal cluster di database Aurora PostgreSQL è possibile installare e utilizzare l'estensione mysql_fdw. Questo wrapper di dati esterni consente di interagire con RDS per MySQL, Aurora MySQL, MariaDB e altri database compatibili con MySQL. La connessione dal cluster di database Aurora PostgreSQL al database MySQL è crittografata in base al miglior tentativo a seconda delle configurazioni di client e server. Tuttavia, se lo si desidera, è possibile imporre l'utilizzo della crittografia. Per ulteriori informazioni, consulta Utilizzo della crittografia in transito con l'estensione.
L'estensione mysql_fdw è supportata su Amazon Aurora PostgreSQL 15.4, 14.9, 13.12, 12.16, e versioni successive. Supporta le operazioni di select, insert, update e delete da un database RDS for PostgreSQL su tabelle contenuto in un'istanza database compatibile con MySQL.
Argomenti
Configurazione del database Aurora PostgreSQL per l'utilizzo dell'estensione mysql_fdw
La configurazione dell'estensione mysql_fdw sul cluster di database Aurora PostgreSQL comporta il caricamento dell'estensione nel cluster di database e quindi la creazione del punto di connessione all'istanza database MySQL. Per tale attività, è necessario disporre delle seguenti informazioni sull'istanza database MySQL:
Nome host o endpoint. Per trovare l'endpoint di un cluster di database Aurora MySQL è possibile utilizzare la console. Scegliere la scheda Connectivity & security (Connettività e sicurezza) e cercare nella sezione Endpoint and port (Endpoint e porta).
Numero della porta. La porta di default per MySQL è 3306.
Nome del database. L'identificatore del database.
È inoltre necessario fornire l'accesso al gruppo di sicurezza o alla lista di controllo degli accessi (ACL) per la porta MySQL 3306. Il cluster di database Aurora PostegreSQL e il cluster di database Aurora MySQL necessitano dell'accesso alla porta 3306. Se l'accesso non è configurato correttamente, quando si cerca di connettersi alla tabella compatibile con MySQL comparirà un messaggio di errore simile al seguente:
ERROR: failed to connect to MySQL: Can't connect to MySQL server on 'hostname.aws-region.rds.amazonaws.com:3306' (110)
Nella seguente procedura, l'utente (utilizzando l'account rds_superuser) crea il server esterno. Quindi concede l'accesso al server esterno a specifici utenti. Questi utenti creano quindi i propri mapping agli account utente MySQL appropriati per interagire con l'istanza database MySQL.
Per utilizzare mysql_fdw per accedere al server database MySQL
Effettuare la connessione all'istanza database PostgreSQL utilizzando un account che dispone del ruolo
rds_superuser. Se al momento della creazione del cluster di database Aurora PostgreSQL sono stati accettati i valori predefiniti, il nome utente èpostgrese lo strumento a riga di comandopsqlpuò essere usato per collegarsi come segue:psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-passwordInstallare l'estensione
mysql_fdwcome segue:postgres=>CREATE EXTENSION mysql_fdw;CREATE EXTENSION
Dopo aver installato l'estensione sul cluster di database Aurora PostgreSQL imposta il server esterno che fornisce la connessione a un database MySQL.
Per creare il server esterno
Esegui queste attività sul cluster di database Aurora PostgreSQL. La procedura presuppone che l'utente sia connesso come utente con i privilegi di rds_superuser, come postgres.
Creazione di un server esterno nel cluster di database Aurora PostgreSQL:
postgres=>CREATE SERVERmysql-dbFOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333.aws-region.rds.amazonaws.com', port '3306');CREATE SERVERConcedere agli utenti appropriati l'accesso al server esterno. Questi dovrebbero essere utenti non amministratori, cioè utenti senza il ruolo
rds_superuser.postgres=>GRANT USAGE ON FOREIGN SERVERmysql-dbtouser1;GRANT
Gli utenti PostgreSQL creano e gestiscono le proprie connessioni al database MySQL tramite il server esterno.
Esempio: utilizzo di un database Aurora MySQL da Aurora PostgreSQL
Supponi di disporre di una semplice tabella su un'istanza database Aurora PostgreSQL. Gli utenti di Aurora PostgreSQL desiderano eseguire query sugli elementi (SELECT), INSERT, UPDATE e DELETE contenute in tale tabella. Supponiamo che l'estensione mysql_fdw sia stata creata nell'istanza database RDS for PostgreSQL, come descritto nella procedura precedente. Dopo aver effettuato la connessione all'istanza database RDS for PostgreSQL come utente con i privilegi rds_superuser, è possibile procedere con i seguenti passaggi.
Nel cluster di database Aurora PostgreSQL crea un server esterno:
test=>CREATE SERVERmysqldbFOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306');CREATE SERVERConcedere l'utilizzo a un utente che non dispone delle autorizzazioni
rds_superuser, ad esempiouser1:test=>GRANT USAGE ON FOREIGN SERVER mysqldb TO user1;GRANTConnettersi come
user1e quindi creare una mappatura per l'utente MySQL:test=>CREATE USER MAPPING FORuser1SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword');CREATE USER MAPPINGCreare di una tabella esterna collegata a una tabella MySQL:
test=>CREATE FOREIGN TABLEmytab(a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name '');CREATE FOREIGN TABLEEseguire una semplice query sulla tabella esterna:
test=>SELECT * FROM mytab;a | b ---+------- 1 | apple (1 row)È possibile aggiungere, modificare e rimuovere i dati dalla tabella MySQL. Ad esempio:
test=>INSERT INTO mytab values (2, 'mango');INSERT 0 1Eseguire nuovamente la query
SELECTper visualizzare i risultati:test=>SELECT * FROM mytab ORDER BY 1;a | b ---+------- 1 | apple 2 | mango (2 rows)
Utilizzo della crittografia in transito con l'estensione
La connessione a MySQL da Aurora PostgreSQL utilizza la crittografia in transito (TLS/SSL) per impostazione predefinita. Tuttavia, la connessione torna a essere non crittografata quando la configurazione di client e server differiscono. È possibile applicare la crittografia a tutte le connessioni in uscita specificando l'opzione REQUIRE SSL sugli account utente RDS for MySQL. Lo stesso approccio funziona anche per gli account utente MariaDB e Aurora MySQL.
Per gli account utente MySQL configurati su REQUIRE SSL, il tentativo di connessione non riesce se non è possibile stabilire una connessione sicura.
Per applicare la crittografia agli account utente esistenti del database MySQL è possibile utilizzare il comando ALTER USER. La sintassi varia a seconda della versione MySQL, come mostrato nella tabella seguente. Per ulteriori informazioni, consultare la voce ALTER USER
| MySQL 5.7, MySQL 8.0 | MySQL 5.6 |
|---|---|
|
|
|
Per ulteriori informazioni sull'estensione mysql_fdw, consultare la documentazione di mysql_fdw