本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon RDS 上的 MySQL 功能支援
RDS for MySQL 支援 MySQL 的大多數特性與功能。部分功能的支援或權限可能有所限制。
您可以在資料庫的最新資訊MySQL 2022
。
注意
以下清單並非詳盡清單。
主題
Amazon RDS for MySQL 主要版本的 MySQL 功能支援
在下列各節中,尋找 Amazon RDS for MySQL 主要版本上 MySQL 功能支援的相關資訊:
如需有關支援的 Amazon RDS for MySQL 次要版本的資訊,請參閱 Amazon RDS 上支援的 MySQL 次要版本。
Amazon RDS 上的 MySQL 8.4 支援
針對執行 MySQL 8.4 版或更新版本的資料庫執行個體,Amazon RDS 支援下列新功能。
-
密碼編譯程式庫 – RDS for MySQL 將 OpenSSL 取代為 AWS Libcrypto (AWS-LC),通過 FIPS 140-3 認證。如需詳細資訊,請參閱位於 的 AWS-LC GitHub 儲存庫https://github.com/aws/aws-lc
。 -
TLS 變更 – RDS for MySQL 僅支援 TLS 1.2 和 TLS 1.3。如需詳細資訊,請參閱SSL/TLS 支援 Amazon 上的 MySQL 資料庫執行個體 RDS。
-
memcached 支援 – MySQL 8.4 不再提供 memcached 介面。如需詳細資訊,請參閱MySQL memcached 支援。
-
預設身分驗證外掛程式 – 預設身分驗證外掛程式為
caching_sha2_password
。如需詳細資訊,請參閱MySQL 預設身分驗證外掛程式。 -
mysqlpump
用戶端公用程式 – MySQL 8.4 不再提供mysqlpump
用戶端公用程式。如需詳細資訊,請參閱 AWS 規範指引中的 RDS 適用於 My 的角色型權限模型SQL 和 mysqldump 和 mysqlpump。 -
受管複寫預存程序 – 使用預存程序管理使用 設定的複寫使用者的複寫時
caching_sha2_password
,您必須指定 來設定 TLSSOURCE_SSL=1
。caching_sha2_password
是 RDS for MySQL 8.4 的預設身分驗證外掛程式。 -
參數行為變更 – MySQL 8.4 的下列參數已變更。
-
innodb_dedicated_server
– 此參數現在預設為啟用。如需詳細資訊,請參閱在 MySQL 8.4 中設定緩衝集區大小和重做日誌容量。 -
innodb_buffer_pool
– 資料庫引擎現在會計算此參數,但您可以覆寫此設定。如需詳細資訊,請參閱在 MySQL 8.4 中設定緩衝集區大小和重做日誌容量。 -
innodb_redo_log_capacity
– 此參數現在控制重做日誌檔案的大小。資料庫引擎現在會計算此參數,但您可以覆寫此設定。如需詳細資訊,請參閱在 MySQL 8.4 中設定緩衝集區大小和重做日誌容量。
-
-
已棄用或移除參數 – RDS for MySQL 從 MySQL 8.4 資料庫執行個體的參數群組中移除下列參數。
innodb_redo_log_capacity
參數現在控制重做日誌檔案的大小。-
innodb_log_file_size
-
innodb_log_files_in_group
-
-
參數的新預設值 – 下列參數具有 MySQL 8.4 資料庫執行個體的新預設值:
-
與效能相關的各種 MySQL 社群參數已變更。如需詳細資訊,請參閱 MySQL 8.0 以來 MySQL 8.4 中的新功能。
我們建議您在遷移生產執行個體之前,先在 RDS for MySQL 8.4 上測試應用程式的效能。
-
innodb_purge_threads
– 預設值會設為公式LEAST({DBInstanceVCPU/2},4)
,以防止 InnoDB 歷史記錄清單長度過大。 -
group_replication_exit_state_action
– 預設值為OFFLINE_MODE
,符合 MySQL Community 中的預設值。如需詳細資訊,請參閱我的SQL主動-主動叢集RDS的考量和最佳實務。 -
binlog_format
– 預設值為ROW
,與 MySQL Community 中的預設值一致。您可以修改單一可用區域資料庫執行個體或多可用區域資料庫執行個體的 參數,但不能修改多可用區域資料庫叢集的 參數。多可用區域資料庫叢集使用半同步複寫,當binlog_format
設定為MIXED
或 時STATEMENT
,複寫會失敗。
-
-
包容性語言變更 – RDS for MySQL 8.4 包含來自 RDS for MySQL 8.0 的變更,與包容性語言的關鍵字和系統結構描述相關。如需詳細資訊,請參閱RDS for MySQL 8.4 的包含語言變更。
如需所有 MySQL 8.4 功能和變更的清單,請參閱 MySQL 文件中的 MySQL 8.4 自 MySQL 8.0 以來的新功能
如需未支援的功能清單,請參閱Amazon RDS 不支援的 MySQL 功能。
支援的 RDS for MySQL 儲存引擎
雖然 MySQL 支援多種功能不盡相同的儲存引擎,但並非所有引擎的復原能力和資料耐用性都經過最佳化設計。Amazon RDS 可完整支援適用於 MySQL 資料庫執行個體的 InnoDB 儲存引擎。時間點還原和快照還原等 Amazon RDS 功能皆需搭配可復原的儲存引擎才能執行,且僅支援 InnoDB 儲存引擎。如需詳細資訊,請參閱MySQL memcached 支援。
聯合儲存引擎目前不支援 Amazon RDS for MySQL。
若結構描述是由使用者建立,則 MyISAM 儲存引擎不支援可靠的復原功能,且還原作業結束後重新啟動 MySQL 時,可能發生資料遺失或毀損等問題,進而導致時間點還原或快照還原功能無法如預期般順利運作。然而,若您仍選擇將 MyISAM 與 Amazon RDS 搭配使用,在某些情況下,快照仍可派上用場。
注意
mysql
結構描述中的系統資料表可能位於 MyISAM 儲存引擎中。
如果將現有的 MyISAM 資料表轉換為 InnoDB 資料表,您可以使用 ALTER TABLE
命令 (例如,alter table TABLE_NAME engine=innodb;
)。請記得,MyISAM 和 InnoDB 各有優劣之處,以應用程式執行轉換作業之前,應先完整評估相關影響。
Amazon RDS 不再支援 MySQL 5.1、5.5 和 5.6。但您仍可使用現有的 MySQL 5.1、5.5 和 5.6 快照進行還原作業。當您還原 MySQL 5.1、5.5 或 5.6 快照時,資料庫執行個體會自動升級為 MySQL 5.7。
Amazon RDS 上的 MySQL 搭配使用 Memcached 與其他選項
大部分的 Amazon RDS 資料庫引擎均支援選項群組,讓您可為資料庫執行個體選擇其他功能。RDS for MySQL 資料庫執行個體支援 memcached
選項,這是一種簡單的金鑰型快取。如需 memcached
和其他選項的詳細資訊,請參閱MySQL 資料庫執行個體的選項。如需使用選項群組的相關詳細資訊,請參閱使用選項群組。
Amazon RDS 上 MySQL 的 InnoDB 快取預備
InnoDB 快取預備功能可在資料庫執行個體關閉時,儲存緩衝集區的當前狀態,等到資料庫執行個體啟動時,再使用儲存的資訊重新載入緩衝集區,藉此提升 MySQL 資料庫執行個體的效能。如此一來,系統不必從正常的資料庫使用方式開始為緩衝集區「熱機」,而是透過已知常用查詢的頁面預先載入緩衝集區。儲存緩衝集區資訊的檔案只會存放緩衝集區中的頁面中繼資料,而非頁面本身。因此,該檔案不需要太多儲存空間。檔案大小約為快取大小的 0.2%。例如,若為 64 GiB 的快取,則快取預備檔案大小僅會有 128 MiB。如需使用 InnoDB 快取預備功能的詳細資訊,請參閱 MySQL 文件中的儲存和還原緩衝集區狀態
RDS for MySQL 資料庫執行個體支援 InnoDB 快取預備。若要啟用 InnoDB 快取預備功能,請在資料庫執行個體的參數群組中,將 innodb_buffer_pool_dump_at_shutdown
和 innodb_buffer_pool_load_at_startup
參數設為 1。變更參數群組中的參數值會影響使用該參數群組的所有 MySQL 資料庫執行個體。若要為特定 MySQL 資料庫執行個體啟用 InnoDB 快取預備功能,您必須為該執行個體另外建立新的參數群組。如需參數群組的相關資訊,請參閱Amazon RDS 的參數群組。
InnoDB 快取預備功能主要可為使用標準儲存體的資料庫執行個體提供效能方面的好處。若您使用的是 PIOPS 儲存體,一般來說不會察覺到顯著的效能優勢。
重要
如果您的 MySQL 資料庫執行個體沒有正常關閉 (例如容錯移轉期間),則緩衝集區狀態不會儲存到磁碟中。這種情形下,MySQL 會在資料庫執行個體重新啟動時,載入任何可用的緩衝集區。這不會造成任何損害,只是還原的緩衝集區無法反映緩衝集區在重新啟動之前的最新狀態。為確保您有最新狀態的緩衝集區可在啟動時預備 InnoDB 快取,建議您定期「隨需」傾印緩衝集區。
您可建立事件,以定期自動傾印緩衝集區。舉例來說,下列陳述式會建立名為 periodic_buffer_pool_dump
的事件,每小時傾印緩衝集區一次。
CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();
如需 MySQL 事件的詳細資訊,請參閱 MySQL 文件中的事件語法
隨需傾印與載入緩衝集區
您可「隨需」儲存和載入 InnoDB 快取。
若要將緩衝集區的最新狀態傾印至磁碟,請呼叫 mysql.rds_innodb_buffer_pool_dump_now 預存程序。
若要從磁碟載入所儲存的緩衝集區狀態,請呼叫 mysql.rds_innodb_buffer_pool_load_now 預存程序。
若要取消進行中的載入操作,請呼叫 mysql.rds_innodb_buffer_pool_load_abort 預存程序。
RDS for MySQL 8.4 的包含語言變更
RDS for MySQL 8.4 包含 MySQL 8.4 社群版本中與包含語言的關鍵字和系統結構描述相關的變更。例如, SHOW REPLICA STATUS
命令會取代 SHOW SLAVE STATUS
。
組態參數名稱變更
下列組態參數在 RDS for MySQL 8.4 中具有新名稱。
為了相容性,您可以使用任一名稱來檢查mysql
用戶端中的參數名稱。您只能在修改自訂 MySQL 8.4 參數群組中的值時使用新名稱。如需詳細資訊,請參閱預設和自訂參數群組。
要移除的名稱 | 新名稱或偏好名稱 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意
參數replica_allow_batching
無法使用,因為 Amazon RDS 不支援 NDB 叢集。
儲存的程序名稱變更
下列預存程序在 RDS for MySQL 8.4 中具有新名稱。
為了相容性,您可以在初始 RDS for MySQL 8.4 版本中使用任一名稱。未來版本將移除舊的程序名稱。如需詳細資訊,請參閱設定、啟動和停止二進位日誌 (binlog) 複寫。
要移除的名稱 | 新名稱或偏好名稱 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Amazon RDS 不支援的 MySQL 功能
Amazon RDS 目前不支援下列 MySQL 功能:
-
身分驗證外掛程式
-
登入系統日誌時發生錯誤
-
InnoDB 資料表空間加密
-
NDB 叢集
-
密碼強度外掛程式
-
持續的系統變數
-
重寫器查詢重寫外掛程式
-
半同步複寫,多可用區域資料庫叢集除外
-
可傳輸的資料表空間
-
X 外掛程式
為了提供受管理的服務體驗,Amazon RDS 並不會提供資料庫執行個體的殼層存取權。而且會將存取權限制在某些需要進階權限的系統程序和資料表。Amazon RDS 可支援使用任何標準 SQL 用戶端應用程式存取資料庫執行個體上的資料庫。Amazon RDS 不允許使用者利用 Telnet、安全殼層 (SSH) 或 Windows 遠端桌面連線,直接託管資料庫執行個體的存取權。當您建立資料庫執行個體時,您會被指派為該執行個體上所有資料庫的 db_owner,而且除了用於備份的資料庫層級許可之外,您擁有所有資料庫層級的許可。Amazon RDS 會為您管理備份。