本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 mysql_fdw 副檔名來處理我的SQL資料庫
若要從RDS適用於 Postgre 資料庫執行個體的 存取 My SQL 相容資料SQL庫,您可以安裝並使用擴充功能。mysql_fdw
這個外部資料包裝函式可讓您使RDS用我的SQL、Aurora My SQL、MariaDB 和其他我SQL相容的資料庫。從RDS適用於 Postgre 資料SQL庫執行個體的 Aurora Postgre 資料SQL庫到我的SQL資料庫的連線會盡最大努力加密,具體取決於用戶端和伺服器組態。但是,如有需要,您可以強制執行加密。如需詳細資訊,請參閱搭配此擴充功能使用傳輸中加密。
該mysql_fdw
擴展程序支持 Amazon RDS 郵政SQL版本 14.2,13.6 和更高版本。它支持從 Postgre SQL 數據庫到 My SQL 兼容數據庫實RDS例上的表中進行選擇,插入,更新和刪除。
設置您的 數據庫使用 mys ql_fdw 擴展
在 Postgre 資料庫執行個體的 上設定擴充功能時,RDS需要在SQL資執行個體中載入延伸模組,然後建立連線點到 My SQL DB 執行個體。mysql_fdw
對於該工作,您必須具備下列有關 My SQL DB 執行個體的詳細資訊:
主機名稱或端點。對於 ,您可以使用主控台尋找端點。選擇 Connectivity & security (連線和安全) 索引標籤,然後查看「端點和連線埠」區段。
連線埠號碼。我的預設連接埠號碼SQL為 3306。
資料庫的名稱。資料庫識別符。
您還需要為我的SQL連接埠 3306 提供安全性群組或存取控制清單 (ACL) 的存取權。適用於 適用於 Postgre SQL 資料庫執行個體的 Aurora 我RDS的SQL資料庫叢集都需要存取連接埠 3306。如果存取權設定不正確,當您嘗試連線至 My SQL-兼容表格時會看到類似於下列內容的錯誤訊息:
ERROR: failed to connect to MySQL: Can't connect to MySQL server on 'hostname
.aws-region
.rds.amazonaws.com:3306' (110)
在以下程序中,您 (作為 rds_superuser
帳戶) 建立外部伺服器。然後,您將外部伺服器的存取權限授予特定使用者。然後,這些使用者會建立自己對應至適當的 [我的SQL使用者帳戶],以使用 My SQL DB 執行個體。
若要使用 mysql_fdw 存取我的資料庫伺服器 SQL
使用具有該
rds_superuser
角色的帳戶 Connect 到 Postgre SQL 資料庫執行個體。如果您在為 Postgre 資料庫執行個體建立 RDS時接受了預設值,則使用者名稱為postgres
,而且您可以使用psql
命令列工具進行連線,如下所示:SQLpsql --host=
your-DB-instance
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres –-password安裝
mysql_fdw
擴充功能,如下所示:postgres=>
CREATE EXTENSION mysql_fdw;
CREATE EXTENSION
在RDS適用於 Postgre 資料庫執行個體的 上安裝擴充功能後,您可以設定提供與 My SQL SQL 資料庫連線的外部伺服器。
建立外部伺服器
在 Postgre 資料庫執行個體的 上執RDS行這些工作。SQL這些步驟假設您以具有 rds_superuser
權限 (例如 postgres
) 的使用者進行連線。
在RDS適用於 Postgre 資料庫執行個體的 中建立外部伺服器:SQL
postgres=>
CREATE SERVER
mysql-db
FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333
.aws-region
.rds.amazonaws.com', port '3306');CREATE SERVER
將適當的使用者存取權限授予外部伺服器。這些使用者應該是非管理員使用者,亦即沒有
rds_superuser
角色。postgres=>
GRANT USAGE ON FOREIGN SERVER
mysql-db
touser1
;GRANT
Postgre SQL 用戶通過外部服務器創建和管理自己與我的SQL數據庫的連接。
示例:使用 RDSSQL數據庫從 A SQL
假設您在 Postgre 資料庫執行個體的 個體上有一RDS個簡單的表格SQL。您 使用者想要查詢 (SELECT
)、INSERT
UPDATE
、和該表上的DELETE
項目。假設mysql_fdw
擴充功能是在 Postgre SQL 資料庫執行個體上建立的,如上述程序所述。RDS以具有rds_superuser
權限的使用者身分連線至 RDS for Postgre SQL 資料庫執行個體後,您可以繼續執行下列步驟。
在 Postgre SQL 資料庫執行個體上,建立外部伺服器:
test=>
CREATE SERVER
mysqldb
FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB
.aws-region
.rds.amazonaws.com', port '3306');CREATE SERVER
授與使用量給沒有
rds_superuser
許可的使用者,例如user1
:test=>
GRANT USAGE ON FOREIGN SERVER mysqldb TO user1;
GRANT
Connect 身分
user1
,然後建立對 [我的SQL使用者] 的對應:test=>
CREATE USER MAPPING FOR
user1
SERVER mysqldb OPTIONS (username 'myuser
', password 'mypassword
');CREATE USER MAPPING
建立連結至 My 資料表的外部SQL資料表:
test=>
CREATE FOREIGN TABLE
mytab
(a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name '');CREATE FOREIGN TABLE
對外部資料表執行簡單查詢:
test=>
SELECT * FROM mytab;
a | b ---+------- 1 | apple (1 row)
您可以在「我的」表格中新增、變更和移除資SQL料。例如:
test=>
INSERT INTO mytab values (2, 'mango');
INSERT 0 1
再次執行
SELECT
查詢以查看結果:test=>
SELECT * FROM mytab ORDER BY 1;
a | b ---+------- 1 | apple 2 | mango (2 rows)
搭配此擴充功能使用傳輸中加密
默認情況下,SQL從 到我SQLRDS的連接SQL使用傳輸過程中的加密(TLS/SSL)。但是,當用戶端和伺服器組態不同時,連線會回退到未加密。您可以在 [我的使用者帳戶] 上指定選REQUIRE SSL
項,RDS對所有外送連線強制加SQL密。這種相同的方法也適用於 MariaDB 和 Aurora 我的SQL用戶帳戶。
對於設定為的 [我的SQL使用者帳戶]REQUIRE SSL
,如果無法建立安全連線,連線嘗試會失敗。
若要對現有的「我的SQL資料庫」使用者帳戶強制加密,您可以使用ALTER USER
命令。根據「我的」SQL 版本的不同,語法會有所不同,如下表所示。如需詳細資訊,請參閱「我ALTERUSER
我的 SQL 5.7,我的 SQL 8.0 | 我的 SQL 6 |
---|---|
|
|
如需 mysql_fdw
擴充功能的詳細資訊,請參閱 mysql_fdw