本節總結了自 MySQL 8.0 以來,MySQL 8.4 中新增、棄用、變更和移除的功能。配套章節列出了 MySQL 伺服器選項和變數,這些選項和變數在 MySQL 8.4 中新增、棄用或移除;請參閱第 1.5 節,〈MySQL 8.4 相較於 8.0 中新增、棄用或移除的伺服器和狀態變數及選項〉。
以下功能已新增至 MySQL 8.4
MySQL 原生密碼驗證變更。 從 MySQL 8.4.0 開始,已棄用的
mysql_native_password
驗證外掛程式預設不再啟用。若要啟用它,請使用--mysql-native-password=ON
(在 MySQL 8.4.0 中新增) 啟動伺服器,或在您的 MySQL 設定檔的[mysqld]
區段中加入mysql_native_password=ON
(在 MySQL 8.4.0 中新增)。如需有關啟用、使用和停用
mysql_native_password
的詳細資訊,請參閱第 8.4.1.1 節,〈原生可插入驗證〉。InnoDB 系統變數預設值變更。 在 MySQL 8.4.0 中,與
InnoDB
儲存引擎相關的多個伺服器系統變數的預設值已變更,如下表所示表 1.1 MySQL 8.4 中與 MySQL 8.0 不同的 InnoDB 系統變數預設值
Clone 外掛程式。 clone 外掛程式的版本控制要求已放寬,以允許在同一系列的不同的次要版本之間進行複製。換句話說,現在只需要主要和次要版本號碼匹配即可,而之前還必須匹配次要版本號碼。
例如,clone 功能現在允許將 8.4.0 複製到 8.4.14,反之亦然。
Windows 上基於 SASL 的 LDAP 驗證。 在 Microsoft Windows 上,現在支援用於基於 SASL 的 LDAP 驗證的伺服器外掛程式。這表示 Windows 用戶端現在可以使用 GSSAPI/Kerberos 與
authentication_ldap_sasl_client
外掛程式進行驗證。如需詳細資訊,請參閱基於 SASL 的 LDAP 驗證。
MySQL 複寫:SOURCE_RETRY_COUNT 變更。
CHANGE REPLICATION SOURCE TO
陳述式的SOURCE_RETRY_COUNT
選項的預設值已變更為 10。這表示,使用此選項和SOURCE_CONNECT_RETRY
(60) 的預設值,複本會在嘗試重新連線之間等待 60 秒,並以這個速率持續嘗試重新連線 10 分鐘,然後逾時並容錯移轉。此變更也適用於已棄用的
--master-retry-count
伺服器選項的預設值。(您應該改用SOURCE_RETRY_COUNT
。)如需詳細資訊,請參閱第 19.4.9.1 節,〈來源的非同步連線容錯移轉〉。
MySQL 複寫:加上標籤的 GTID。 MySQL 複寫和群組複寫中使用的全域交易識別碼 (GID) 的格式已擴充,以啟用交易群組的識別,從而可以為屬於特定交易群組的 GTID 指派唯一名稱。例如,透過簡單比較其 GTID,可以輕鬆區分包含資料作業的交易與管理作業產生的交易。
新的 GTID 格式為
UUID:
,其中TAG
:NUMBERTAG
是一個最多 8 個字元的字串。此功能透過將gtid_next
系統變數的值設定為AUTOMATIC:
來啟用,此設定在此版本中新增(有關標籤格式和其他資訊,請參閱該變數的描述)。此標籤會在目前工作階段中起始的所有交易中持續存在(除非使用TAG
SET gtid_next
變更),並在這些交易提交時套用,或者在使用 Group Replication 時,在驗證時套用。也可以將gtid_next
設定為
,以將單一交易的 UUID 設定為任意值,同時為其指定自訂標籤。UUID
:TAG
:NUMBER
UUID
和NUMBER
的指派方式與先前 MySQL 版本中的方式相同。無論哪種情況,使用者都有責任確保標籤對於給定的複寫拓樸是唯一的。原始的
GTID 格式繼續以先前 MySQL 版本中實作的方式維持不變地支援;使用 GTID 的現有複寫設定不需要變更。UUID
:NUMBER
將
gtid_next
設定為AUTOMATIC:
或TAG
需要在此版本中新增的新的UUID
:TAG
:NUMBER
TRANSACTION_GTID_TAG
權限;無論是在起始伺服器上還是針對複本應用程式執行緒的PRIVILEGE_CHECKS_APPLIER
,情況皆是如此。這也表示管理員現在可以將SET @gtid_next=AUTOMATIC:
或TAG
的使用限制為一組所需的 MySQL 使用者或角色,以便只有與給定資料或操作領域相關的使用者才能提交具有指定標籤的新交易。UUID
:TAG
:NUMBER
注意從先前版本的 MySQL 升級至 MySQL 8.4 時,任何已經具有
BINLOG_ADMIN
權限的使用者帳戶或角色都會自動被授予TRANSACTION_GTID_TAG
權限。內建函數
GTID_SUBSET()
、GTID_SUBTRACT()
和WAIT_FOR_EXECUTED_GTID_SET()
與帶標籤的 GTID 相容。如需更多資訊,請參閱
gtid_next
系統變數和TRANSACTION_GTID_TAG
權限的說明,以及第 19.1.4 節:「線上伺服器上變更 GTID 模式」。複寫:SQL_AFTER_GTIDS 和 MTA。
START REPLICA
陳述式選項SQL_AFTER_GTIDS
現在與多執行緒應用程式相容。(先前,當啟用 MTA 且使用者嘗試使用此選項時,陳述式會發出警告ER_MTA_FEATURE_IS_NOT_SUPPORTED
,且複本會切換為單執行緒模式。)這表示需要趕上遺失交易的複本現在可以這樣做,而不會失去多執行緒的效能優勢。如需更多資訊,請參閱 第 15.4.2.4 節:「START REPLICA 陳述式」,以及
replica_parallel_workers
系統變數的說明。另請參閱 第 19.2.3.2 節:「監控複寫應用程式工作執行緒」和 第 25.7.11 節:「使用多執行緒應用程式的 NDB Cluster 複寫」。複寫術語的回溯相容性。 此版本新增了
--output-as-version
選項供 mysqldump 使用。此選項可讓您從 MySQL 8.2 或更新版本的伺服器建立與舊版 MySQL 相容的傾印;其值(此處列出的其中一個)會決定傾印中使用的複寫術語的相容性SERVER
:取得伺服器的版本,並使用與該 MySQL 版本相容的最新版本的複寫陳述式和變數名稱。BEFORE_8_2_0
:輸出與執行 8.0.23 到 8.1.0 版本(含)的 MySQL 伺服器相容。BEFORE_8_0_23
:輸出與執行 8.0.23 之前版本的 MySQL 伺服器相容。
如需更多資訊,請參閱此選項的說明。
此外,還為
terminology_use_previous
系統變數新增一個允許的新值。BEFORE_8_2_0
會導致伺服器在SHOW CREATE EVENT
的輸出中列印DISABLE ON SLAVE
(現在已棄用),而不是DISABLE ON REPLICA
。現有的值BEFORE_8_0_26
現在除了先前已有的效果之外,也具有此效果。版本特定註解中使用的 MySQL 版本號碼支援由一或兩個數字組成的主要版本;這表示整個版本可以是五位或六位數長。如需更多關於此變更如何影響 MySQL 中版本化註解處理的資訊,請參閱第 11.7 節:「註解」。
group_replication_set_as_primary() 和 DDL 陳述式。
group_replication_set_as_primary()
函數會在等待所有交易完成時,等待進行中的 DDL 陳述式(例如ALTER TABLE
),然後再選出新的主要伺服器。如需更多資訊,請參閱此函數的說明。
用於 group_replication_set_as_primary() 的 DDL 和 DCL 陳述式追蹤。
group_replication_set_as_primary()
現在會等待以下陳述式完成,然後再選出新的主要伺服器這些陳述式是 MySQL 8.1 中新增的陳述式,或是在這方面已支援的陳述式之外的項目。如需更多資訊,包括 MySQL 8.3 中支援的所有此類陳述式的清單,請參閱
group_replication_set_as_primary()
函數的說明。Group Replication 變數預設值。 在 MySQL 8.4 中,已變更兩個與 Group Replication 相關的伺服器系統變數的預設值
在 MySQL 8.4.0 中,
group_replication_consistency
系統變數的預設值已變更為BEFORE_ON_PRIMARY_FAILOVER
。(先前為EVENTUAL
。)在 MySQL 8.4.0 中,
group_replication_exit_state_action
系統變數的預設值已變更為OFFLINE_MODE
。(先前為READ_ONLY
。)
如需更多資訊,請參閱 第 20.5.3.2 節:「設定交易一致性保證」,以及第 20.7.7 節:「對失敗偵測和網路分割的回應」,以及所列變數的說明。
新增了一些特定於 Group Replication 外掛程式的狀態變數,這些變數可改善網路不穩定性的診斷和疑難排解,並提供有關每個群組成員的網路使用量、控制訊息和資料訊息的統計資料。
如需更多資訊,請參閱第 20.9.2 節:「Group Replication 狀態變數」。
作為這項工作的一部分,已將新的
MEMBER_FAILURE_SUSPICIONS_COUNT
資料行新增至 Performance Schemareplication_group_communication_information
資料表。此資料行的內容格式為 JSON 陣列,其索引鍵是群組成員 ID,而其值是群組成員被視為可疑的次數。如需更多資訊,請參閱此資料表的說明。FLUSH_PRIVILEGES 權限。 MySQL 8.4.0 新增了一個權限,專門用於允許使用
FLUSH PRIVILEGES
陳述式。與RELOAD
權限不同,FLUSH_PRIVILEGES
權限僅適用於FLUSH PRIVILEGES
陳述式。在 MySQL 8.4 中,
RELOAD
權限仍繼續支援此功能,以提供向後相容性。升級時,會執行檢查以查看是否有任何使用者擁有
FLUSH_PRIVILEGES
權限;如果沒有,則任何擁有RELOAD
權限的使用者也會自動被授予新的權限。如果您從 MySQL 8.4(或更新版本)降級到不支援
FLUSH_PRIVILEGES
權限的 MySQL 版本,先前被授予此權限的使用者除非擁有RELOAD
權限,否則將無法執行FLUSH PRIVILEGES
陳述式。OPTIMIZE_LOCAL_TABLE 權限。 MySQL 8.4.0 新增了一個
OPTIMIZE_LOCAL_TABLE
權限。使用者必須擁有此權限才能執行OPTIMIZE LOCAL TABLE
和OPTIMIZE NO_WRITE_TO_BINLOG TABLE
陳述式。從之前的發行系列升級時,擁有
SYSTEM_USER
權限的使用者會自動被授予OPTIMIZE_LOCAL_TABLE
權限。MySQL Enterprise Data Masking and De-Identification (資料遮罩和去識別)。 資料遮罩元件新增了對指定專用 schema 來儲存相關內部表格和遮罩函式的支援。先前,
mysql
系統 schema 是唯一可用的儲存選項。新的component_masking.masking_database
唯讀變數允許在伺服器啟動時設定並持久化替代的 schema 名稱。刷新資料遮罩字典。 MySQL Enterprise Data Masking and De-Identification 元件現在包含將次要或複本上的資料刷新到記憶體的能力。這可以使用此處描述的任何一種方式來完成
使用者可以使用此版本中新增的
masking_dictionaries_flush()
函式,隨時執行刷新。可以設定元件以定期刷新記憶體,利用排程器元件,方法是將新的
component_masking.dictionaries_flush_interval_seconds
系統變數設定為適當的值。
如需更多資訊,請參閱 第 8.5 節「MySQL Enterprise Data Masking and De-Identification」和這些項目的說明。
自動直方圖更新。 MySQL 8.4.0 新增了對自動更新直方圖的支援。當為給定直方圖啟用此功能時,每當對其所屬的表格執行
ANALYZE TABLE
時,都會更新該直方圖。此外,InnoDB
對持久統計資訊的自動重新計算(請參閱 第 17.8.10.1 節「設定持久優化器統計資訊參數」)也會更新直方圖。直方圖更新會繼續使用與最初指定的相同數量的 bucket(如果有)。您可以在指定直方圖時透過包含
ANALYZE TABLE
陳述式的AUTO UPDATE
選項來啟用此功能。若要停用它,請改為包含MANUAL UPDATE
。MANUAL UPDATE
(沒有自動更新)是預設值(如果未指定任何選項)。如需更多資訊,請參閱 直方圖統計資訊分析。
新增了
tls-certificates-enforced-validation
系統變數,允許 DBA 在伺服器啟動時強制執行憑證驗證,或在使用ALTER INSTANCE RELOAD TLS
陳述式在執行階段重新載入憑證時強制執行憑證驗證。啟用強制執行後,發現無效的憑證會在啟動時停止伺服器調用、防止在執行階段載入無效的憑證,並發出警告。如需更多資訊,請參閱 設定憑證驗證強制執行。新增伺服器系統變數以控制使用 LDAP 可插拔驗證連線到 MySQL 伺服器的 MySQL 帳戶,在 LDAP 伺服器關閉或沒有回應時必須等待的時間量。以下簡單和基於 SASL 的 LDAP 驗證變數的預設逾時時間變為 30 秒
僅在 Linux 平台上可透過系統變數設定連線和回應逾時。如需更多資訊,請參閱 設定 LDAP 可插拔驗證的逾時。
強化了關閉程序的記錄,新增了 MySQL 伺服器、外掛程式和元件的啟動和關閉訊息。這些訊息現在也會記錄用於關閉連線。這些新增功能應有助於故障排除和偵錯問題,尤其是在伺服器關閉時間過長的情況下。
如需更多資訊,請參閱 第 7.4.2 節「錯誤記錄」。
伺服器啟動和關閉訊息的增補。 根據此清單中的說明,將下列類型的訊息新增至伺服器啟動和關閉程序
當使用
--initialize
或--initialize-insecure
啟動伺服器時,伺服器初始化的開始和結束訊息;這些訊息與正常伺服器啟動和關閉期間顯示的訊息不同。InnoDB
初始化的開始和結束訊息。伺服器初始化期間 init 檔案執行的開始和結束訊息。
伺服器初始化期間執行編譯的陳述式的開始和結束訊息。
伺服器啟動期間損毀復原的開始和結束訊息(如果發生損毀復原)。
伺服器啟動期間動態外掛程式初始化的開始和結束訊息。
元件初始化步驟的開始和結束訊息(在伺服器啟動期間顯示)。
伺服器關閉期間,複本執行緒關閉以及連線執行緒正常和強制關閉的訊息。
伺服器關閉期間外掛程式和元件關閉的開始和結束訊息。
初始化或伺服器關閉及結束期間,關閉訊息的結束代碼(傳回值)資訊。
此外,如果伺服器是使用
WITH_SYSTEMD
建置的,則伺服器現在會在錯誤記錄中包含每個 systemd 訊息。新增了
SHOW PARSE_TREE
陳述式,顯示SELECT
陳述式的 JSON 格式的剖析樹。此陳述式僅用於測試和開發,不適用於生產環境。它僅在偵錯版本中可用,或者如果 MySQL 是使用 CMake-DWITH_SHOW_PARSE_TREE
選項從原始碼建置的,並且未包含在發行版本中或在發行版本中不支援。執行緒池外掛程式連線資訊。 將執行緒池連線資訊新增至 MySQL Performance Schema,如下所示
新增了一個
tp_connections
表格,其中包含有關每個執行緒池連線的資訊。將下列欄新增至
tp_thread_state
表格:TIME_OF_ATTACH
、MARKED_STALLED
、STATE
、EVENT_COUNT
、ACCUMULATED_EVENT_TIME
、EXEC_COUNT
和ACCUMULATED_EXEC_TIME
將下列欄新增至
tp_thread_group_state
表格:EFFECTIVE_MAX_TRANSACTIONS_LIMIT
、NUM_QUERY_THREADS
、TIME_OF_LAST_THREAD_CREATION
、NUM_CONNECT_HANDLER_THREAD_IN_SLEEP
、THREADS_BOUND_TO_TRANSACTION
、QUERY_THREADS_COUNT
和TIME_OF_EARLIEST_CON_EXPIRE
。
如需更多資訊,請參閱 第 7.6.3 節「MySQL Enterprise Thread Pool」和 第 29.12.16 節「Performance Schema Thread Pool Tables」。
Information Schema PROCESSLIST 表格使用率。 雖然
INFORMATION_SCHEMA.PROCESSLIST
表格已在 MySQL 8.0.35 和 8.2.0 中棄用,但對於追蹤其使用率的興趣仍然存在。此版本新增了兩個系統狀態變數,提供有關存取PROCESSLIST
表格的資訊,如下所示Deprecated_use_i_s_processlist_count
提供自上次伺服器啟動以來,查詢中對PROCESSLIST
表格的參考次數計數。Deprecated_use_i_s_processlist_last_timestamp
儲存上次存取PROCESSLIST
表格的時間。這是時間戳記值(自 Unix Epoch 以來的微秒數)。
用於集合運算的雜湊表最佳化。 MySQL 8.2 透過新的雜湊表最佳化來改善使用集合運算
EXCEPT
和INTERSECT
的陳述式的效能。此最佳化會自動為這類陳述式啟用,並由設定hash_set_operations
優化器開關來控制。若要停用此最佳化,並使優化器使用先前 MySQL 版本中的舊臨時表格最佳化,請將此旗標設定為off
。可以透過設定
set_operations_buffer_size
伺服器系統變數的值來控制為此最佳化配置的記憶體量。增加緩衝區大小可以進一步改善使用這些運算的一些陳述式的執行時間。如需更多資訊,請參閱 第 10.9.2 節「可切換最佳化」。
WITH_LD CMake 選項。
WITH_LD
:定義是否使用 llvm lld 或 mold 鏈接器,否則使用標準鏈接器。WITH_LD
也取代了在 MySQL 8.3.0 中移除的USE_LD_LLD
CMake 選項。MySQL Enterprise Firewall 增強功能。 自 MySQL 8.0 以來,MySQL Enterprise Firewall 進行了一些增強。這些增強功能列在此處。
MySQL Enterprise Firewall 提供的預存程序現在以交易方式運作。當執行防火牆預存程序時發生錯誤時,會報告錯誤,並且將該預存程序到目前為止所做的所有變更都回滾。
防火牆預存程序現在會避免執行不必要的
DELETE
加INSERT
陳述式組合,以及INSERT IGNORE
加UPDATE
操作的組合,因此消耗的時間和資源更少,使其更快更有效率。在 MySQL 8.0.26 中已棄用的基於使用者的預存程序和 UDF,現在會引發棄用警告。特別是呼叫
sp_set_firewall_mode()
或sp_reload_firewall_rules()
中的任何一個都會產生此類警告。如需更多資訊,請參閱防火牆帳戶設定檔預存程序,以及將帳戶設定檔移轉至群組設定檔。MySQL Enterprise Firewall 現在允許定期重新載入其記憶體快取,其中包含儲存在防火牆資料表中的資料。
mysql_firewall_reload_interval_seconds
系統變數會在執行階段設定要使用的定期重新載入排程,或者預設會停用重新載入。先前的實作僅在伺服器啟動時或重新安裝伺服器端外掛程式時才重新載入快取。新增了
mysql_firewall_database
伺服器系統變數,以允許在自訂綱要中儲存內部資料表、函式和預存程序。新增了
uninstall_firewall.sql
指令碼,以簡化移除已安裝的防火牆。
如需有關防火牆預存程序的更多資訊,請參閱MySQL Enterprise Firewall 預存程序。
可插拔驗證。 新增了在 WebAuthn 環境中使用智慧卡、安全金鑰和生物識別讀取器等裝置對 MySQL 伺服器進行驗證的支援。新的 WebAuthn 驗證方法以 FIDO 和 FIDO2 標準為基礎。它使用一對外掛程式,伺服器端的
authentication_webauthn
和用戶端端的authentication_webauthn_client
。伺服器端 WebAuthn 驗證外掛程式僅包含在 MySQL Enterprise Edition 發行版中。金鑰環移轉。 支援從金鑰環元件移轉到金鑰環外掛程式。若要執行此類移轉,請使用 MySQL 8.4.0 中引入的
--keyring-migration-from-component
伺服器選項,將--keyring-migration-source
設定為來源元件的名稱,並將--keyring-migration-destination
設定為目標外掛程式的名稱。如需更多資訊,請參閱使用移轉伺服器進行金鑰移轉。
MySQL Enterprise Audit。 新增了
audit_log_filter_uninstall.sql
指令碼,以簡化移除 MySQL Enterprise Audit。新關鍵字。 MySQL 8.4 中自 MySQL 8.0 以來新增的關鍵字。保留關鍵字標示為 (R)。
AUTO
、BERNOULLI
、GTIDS
、LOG
、MANUAL
(R)、PARALLEL
(R)、PARSE_TREE
、QUALIFY
(R)、S3
和TABLESAMPLE
(R)。搶佔式群組複寫認證垃圾收集。 MySQL 8.4.0 中新增的系統變數
group_replication_preemptive_garbage_collection
可為在單一主要模式下執行的群組複寫啟用搶佔式垃圾收集,僅保留尚未提交的那些交易的寫入集。這可以節省時間和記憶體消耗。另一個系統變數group_replication_preemptive_garbage_collection_rows_threshold
(也在 MySQL 8.4.0 中引入)設定了在啟用搶佔式垃圾收集時觸發搶佔式垃圾收集所需的認證列數下限;預設值為 100000。在多個主要模式下,從交易獲得認證的那一刻起,直到所有成員都提交交易為止,認證資訊中的每個寫入集都是必要的,這使得偵測交易之間的衝突變得必要。在單一主要模式下,我們只需要關心交易相依性,這不是問題;這表示只需要保留寫入集直到認證完成即可。
請參閱第 20.7.9 節,「使用效能綱要記憶體儀器監控群組複寫記憶體使用量」,以取得有關此程序所消耗記憶體資訊的協助。
經過清理的中繼記錄復原。 在 MySQL 8.4.0 及更新版本中,可以復原已移除任何未完成交易的中繼記錄。現在,當伺服器以
--relay-log-recovery=OFF
(預設值)啟動時,中繼記錄會經過清理,表示以下所有項目都會被移除。在中繼記錄結尾處保持未完成的交易
僅包含未完成交易或其部分的中繼記錄檔案
中繼記錄索引檔案中,指向已移除的中繼記錄檔案的參考
如需更多資訊,請參閱
relay_log_recovery
伺服器系統變數的說明。MySQL 升級歷史記錄檔案。 在 MySQL 8.4.0 及更新版本中,作為安裝程序的一部分,會在伺服器的資料目錄中建立一個名為
mysql_upgrade_history
的 JSON 格式檔案,如果檔案已存在,則會更新它。此檔案包含有關已安裝的 MySQL 伺服器版本、安裝時間以及該版本是否屬於 LTS 系列或 Innovation 系列的資訊。典型的
mysql_upgrade_history
檔案可能看起來像這樣(為方便閱讀而調整格式){ "file_format":"1", "upgrade_history": [ { "date":"2024-03-15 22:02:35", "version":"8.4.0", "maturity":"LTS", "initialize":true }, { "date":"2024-05-17 17:46:12", "version":"8.4.1", "maturity":"LTS", "initialize":false } ] }
此外,安裝程序現在會檢查是否存在
mysql_upgrade_info
檔案(已在 MySQL 8.0 中棄用,不再使用)。如果找到,將會移除該檔案。
以下功能在 MySQL 8.4 中已棄用,並可能在未來的版本中移除。如果顯示替代方案,則應更新應用程式以使用這些方案。
對於使用 MySQL 8.4 中已棄用,但在後續 MySQL 版本中已移除的功能的應用程式,從 MySQL 8.4 來源複寫到執行較新版本的複本時,陳述式可能會失敗,或在來源和複本上具有不同的效果。若要避免此類問題,應修訂使用 8.4 中已棄用功能的應用程式,以避免使用這些功能,並在可能的情況下使用替代方案。
group_replication_allow_local_lower_version_join 系統變數。
group_replication_allow_local_lower_version_join
系統變數已棄用,設定此變數會導致記錄警告(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT
)。您應該預期此變數會在未來的 MySQL 版本中移除。由於設定
group_replication_allow_local_lower_version_join
所啟用的功能不再有用,因此沒有計劃為其提供替代方案。群組複寫復原中繼資料。 群組複寫復原不再依賴將檢視變更事件寫入二進位記錄檔,以標記群組成員資格的變更;相反地,當群組的所有成員都是 MySQL 8.3.0 或更新版本時,成員會共用壓縮的復原中繼資料,並且當新成員加入群組時,不會記錄此類事件(或指派 GTID)。
復原中繼資料包括 GCS 檢視 ID、已認證交易的
GTID_SET
和認證資訊,以及線上成員的清單。由於
View_change_log_event
不再在復原中扮演角色,因此不再需要group_replication_view_change_uuid
系統變數,因此現在已棄用;預計會在未來的 MySQL 版本中移除。您應該注意,此變數或其功能沒有計劃替代方案或替代方法,並相應地開發您的應用程式。WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() 函式。
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()
SQL 函式已在 MySQL 8.0 中棄用,並且從 MySQL 8.2 開始不再支援。現在嘗試叫用此函式會導致語法錯誤。建議您使用
WAIT_FOR_EXECUTED_GTID_SET()
,而不是WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()
,這可讓您等待特定的 GTID。無論指定的交易透過哪個複寫通道或使用者用戶端到達伺服器,此方法都有效。基於 GTID 的複寫和 IGNORE_SERVER_IDS。 當全域交易識別碼 (GTID) 用於複寫時,已套用的交易會自動忽略。這表示
IGNORE_SERVER_IDS
與 GTID 模式不相容。如果gtid_mode
為ON
,則使用非空的IGNORE_SERVER_IDS
清單的CHANGE REPLICATION SOURCE TO
會因為錯誤而被拒絕。同樣地,如果任何現有的複寫通道是使用要忽略的伺服器 ID 清單建立的,則也會拒絕SET gtid_mode=ON
。在開始基於 GTID 的複寫之前,請檢查並清除所涉及伺服器上的任何已忽略的伺服器 ID 清單;您可以透過檢查SHOW REPLICA STATUS
的輸出來執行此操作。在這種情況下,您可以透過發出具有空伺服器 ID 清單的CHANGE REPLICATION SOURCE TO
來清除清單,如下所示CHANGE REPLICATION SOURCE TO IGNORE_SERVER_IDS = ();
如需更多資訊,請參閱第 19.1.3.7 節,「使用 GTID 複寫的限制」。
二進位記錄檔交易相依性追蹤和記錄格式。 已發現使用寫入集資訊進行衝突偵測會導致相依性追蹤出現問題;因此,我們現在將寫入集的使用限制在僅當行式記錄有效時進行衝突檢查。
這表示在這種情況下,
binlog_format
必須是ROW
,並且不再支援MIXED
。expire_logs_days 系統變數。 已移除在 MySQL 8.0 中棄用的
expire_logs_days
伺服器系統變數。現在嘗試在執行階段取得或設定此變數,或使用等效選項 (--expire-logs-days
) 啟動 mysqld,都會導致錯誤。請改用
binlog_expire_logs_seconds
,而非expire_logs_days
,它允許您指定非整數天數的過期時間。資料庫授權中的萬用字元。 在 MySQL 8.2.0 中,資料庫授權中將字元
%
和_
作為萬用字元的用法已被棄用。您應該預期萬用字元功能將在未來的 MySQL 版本中移除,並且這些字元將始終被視為字面值,如同當partial_revokes
伺服器系統變數的值為ON
時一樣。此外,從 MySQL 8.2.0 開始,伺服器在檢查權限時將
%
視為localhost
同義詞的處理方式也已被棄用,因此將在未來的 MySQL 版本中移除。--character-set-client-handshake 選項。
--character-set-client-handshake
伺服器選項,原本旨在用於從非常舊版本的 MySQL 升級,現在已被棄用,並且每當使用時都會發出警告。您應該預期此選項將在未來的 MySQL 版本中移除;依賴此選項的應用程式應盡快開始從中遷移。非標準外鍵。 將非唯一或部分索引鍵用作外鍵是不標準的做法,並且在 MySQL 中已被棄用。從 MySQL 8.4.0 開始,您必須通過將
restrict_fk_on_non_standard_key
設定為OFF
,或使用--skip-restrict-fk-on-non-standard-key
啟動伺服器,來明確啟用此類索引鍵。restrict_fk_on_non_standard_key
預設為ON
,這表示嘗試在CREATE TABLE
或其他 SQL 語句中使用非標準索引鍵作為外鍵時,將會被拒絕,並出現ER_WARN_DEPRECATED_NON_STANDARD_KEY
錯誤。將其設定為ON
允許執行此類語句,但它們會發出相同的錯誤作為警告。即使有包含參考非唯一或部分索引鍵的外鍵的資料表,也支援從 MySQL 8.0 升級。在這種情況下,伺服器會寫入一個警告訊息清單,其中包含任何參考非標準索引鍵的外鍵名稱。
以下項目已過時,並已在 MySQL 8.4 中移除。如果顯示了替代方案,則應更新應用程式以使用它們。
對於使用 MySQL 8.4 中移除的功能的 MySQL 8.3 應用程式,當從 MySQL 8.3 來源複寫到 MySQL 8.4 複本時,語句可能會失敗,或在來源和複本上產生不同的效果。為避免此類問題,使用 MySQL 8.4 中移除的功能的應用程式應進行修訂以避免使用它們,並在可能的情況下使用替代方案。
伺服器選項和變數已移除。 在先前版本的 MySQL 中支援的許多伺服器選項和變數已在 MySQL 8.4 中移除。嘗試在 MySQL 8.4 中設定它們中的任何一個都會引發錯誤。這些選項和變數在此列出
binlog_transaction_dependency_tracking
:在 MySQL 8.0.35 和 MySQL 8.2.0 中已棄用。沒有計劃替換此變數或其功能,該功能已成為伺服器的內部功能。在 MySQL 8.4(及更高版本)中,當使用多執行緒複本時,來源 mysqld 始終使用 writesets 為二進制日誌產生相依性資訊;這與在先前版本的 MySQL 中將binlog_transaction_dependency_tracking
設定為WRITESET
的效果相同。group_replication_recovery_complete_at
:在 MySQL 8.0.34 中已棄用。在 MySQL 8.4 及更高版本中,分散式復原過程中應用的策略始終是僅在新成員接收、認證並應用其加入群組之前發生的所有交易後才將其標記為上線;這相當於在先前版本的 MySQL 中將group_replication_recovery_complete_at
設定為TRANSACTIONS_APPLIED
。avoid_temporal_upgrade
和show_old_temporals
:這兩個變數都在 MySQL 5.6 中已棄用;它們在最近版本的 MySQL 中均不起作用。這兩個變數都已被移除;沒有計劃替換它們中的任何一個。--no-dd-upgrade
:在 MySQL 8.0.16 中已棄用,現在已移除。請改用--upgrade=NONE
。--old
和--new
:都在 MySQL 8.0.35 和 MySQL 8.2.0 中已棄用,現在已移除。--language
:在 MySQL 5.5 中已棄用,現在已移除。--ssl
和--admin-ssl
伺服器選項,以及have_ssl
和have_openssl
伺服器系統變數,在 MySQL 8.0.26 中已棄用。它們在此版本中均已移除。請改用--tls-version
和--admin-tls-version
。default_authentication_plugin
系統變數,在 MySQL 8.0.27 中已棄用,從 MySQL 8.4.0 開始移除。請改用authentication_policy
。作為移除
default_authentication_plugin
的一部分,authentication_policy
的語法已變更。有關更多資訊,請參閱authentication_policy
的描述。--skip-host-cache 伺服器選項。 此選項已移除;請改用
--host-cache-size=0
啟動伺服器。請參閱 第 7.1.12.3 節「DNS 查閱和主機快取」。--innodb 和 --skip-innodb 伺服器選項。 這些選項已移除。
InnoDB
儲存引擎始終啟用,並且無法停用它。--character-set-client-handshake 和 --old-style-user-limits 伺服器選項。 這些選項以前用於與不再支援或維護的非常舊版本的 MySQL 相容,因此不再有任何實際用途。
FLUSH HOSTS 語句。
FLUSH HOSTS
語句在 MySQL 8.0.23 中已棄用,現在已移除。若要清除主機快取,請發出TRUNCATE TABLE
performance_schema.host_cache
或 mysqladmin flush-hosts。
已過時的複寫選項和變數。 許多與 MySQL 複寫相關的選項和變數在先前版本的 MySQL 中已棄用,並且已從 MySQL 8.4 中移除。現在嘗試使用它們中的任何一個都會導致伺服器引發語法錯誤。這些選項和變數在此列出
--slave-rows-search-algorithms
:複寫應用程式在應用更新或刪除時用來查詢資料表列的演算法現在始終為HASH_SCAN,INDEX_SCAN
,並且不再由使用者設定。log_bin_use_v1_events
:這允許執行 MySQL 5.7 及更新版本的來源伺服器複寫到不再支援或維護的較早版本的 MySQL。--relay-log-info-file
、--relay-log-info-repository
、--master-info-file
、--master-info-repository
:將檔案用於應用程式中繼資料存放庫和連線中繼資料存放庫已被可安全崩潰的資料表取代,不再支援。請參閱 第 19.2.4.2 節「複寫中繼資料存放庫」。transaction_write_set_extraction
group_replication_ip_whitelist
:請改用group_replication_ip_allowlist
。group_replication_primary_member
:不再需要;請改為檢查 Performance Schemareplication_group_members
資料表的MEMBER_ROLE
資料行。
複寫 SQL 語法。 許多在較早版本的 MySQL 中已棄用、用於 MySQL 複寫的 SQL 語句在 MySQL 8.4 中不再支援。現在嘗試使用這些語句中的任何一個都會產生語法錯誤。這些語句可以分為兩組:一組與來源伺服器相關,另一組與複本相關,如下所示
作為此工作的一部分,
CREATE EVENT
和ALTER EVENT
的DISABLE ON SLAVE
選項現在已棄用,並由DISABLE ON REPLICA
取代。對應的術語SLAVESIDE_DISABLED
現在也已棄用,並且不再用於事件描述中,例如 Information SchemaEVENTS
資料表中;現在改為顯示REPLICA_SIDE_DISABLED
。已移除的、與複寫來源伺服器相關的語句在此列出
CHANGE MASTER TO
:請使用CHANGE REPLICATION SOURCE TO
。RESET MASTER
:請使用RESET BINARY LOGS AND GTIDS
。SHOW MASTER STATUS
:請使用SHOW BINARY LOG STATUS
。PURGE MASTER LOGS
:請使用PURGE BINARY LOGS
。SHOW MASTER LOGS
:請使用SHOW BINARY LOGS
。
已移除的、與複本相關的 SQL 語句在此列出
START SLAVE
:請使用START REPLICA
。STOP SLAVE
:請使用STOP REPLICA
。SHOW SLAVE STATUS
:請使用SHOW REPLICA STATUS
。SHOW SLAVE HOSTS
:請使用SHOW REPLICAS
。RESET SLAVE
:請使用RESET REPLICA
。
先前列出的所有語句都已從 MySQL 測試程式和檔案以及任何其他內部使用中移除。
此外,許多以前由
CHANGE REPLICATION SOURCE TO
和START REPLICA
支援的已棄用選項已被移除,並且伺服器不再接受。接下來列出每個 SQL 語句的已移除選項。從
CHANGE REPLICATION SOURCE TO
中移除的選項在此列出MASTER_AUTO_POSITION
:使用SOURCE_AUTO_POSITION
。MASTER_HOST
:使用SOURCE_HOST
。MASTER_BIND
:使用SOURCE_BIND
。MASTER_UseR
:使用SOURCE_UseR
。MASTER_PASSWORD
:使用SOURCE_PASSWORD
。MASTER_PORT
:使用SOURCE_PORT
。MASTER_CONNECT_RETRY
:使用SOURCE_CONNECT_RETRY
。MASTER_RETRY_COUNT
:使用SOURCE_RETRY_COUNT
。MASTER_DELAY
:使用SOURCE_DELAY
。MASTER_SSL
:使用SOURCE_SSL
。MASTER_SSL_CA
:使用SOURCE_SSL_CA
。MASTER_SSL_CAPATH
:使用SOURCE_SSL_CAPATH
。MASTER_SSL_CIPHER
:使用SOURCE_SSL_CIPHER
。MASTER_SSL_CRL
:使用SOURCE_SSL_CRL
。MASTER_SSL_CRLPATH
:使用SOURCE_SSL_CRLPATH
。MASTER_SSL_KEY
:使用SOURCE_SSL_KEY
。MASTER_SSL_VERIFY_SERVER_CERT
:使用SOURCE_SSL_VERIFY_SERVER_CERT
。MASTER_TLS_VERSION
:使用SOURCE_TLS_VERSION
。MASTER_TLS_CIPHERSUITES
:使用SOURCE_TLS_CIPHERSUITES
。MASTER_SSL_CERT
:使用SOURCE_SSL_CERT
。MASTER_PUBLIC_KEY_PATH
:使用SOURCE_PUBLIC_KEY_PATH
。GET_MASTER_PUBLIC_KEY
:使用GET_SOURCE_PUBLIC_KEY
。MASTER_HEARTBEAT_PERIOD
:使用SOURCE_HEARTBEAT_PERIOD
。MASTER_COMPRESSION_ALGORITHMS
:使用SOURCE_COMPRESSION_ALGORITHMS
。MASTER_ZSTD_COMPRESSION_LEVEL
:使用SOURCE_ZSTD_COMPRESSION_LEVEL
。MASTER_LOG_FILE
:使用SOURCE_LOG_FILE
。MASTER_LOG_POS
:使用SOURCE_LOG_POS
。
此處列出從
START REPLICA
陳述式中移除的選項。MASTER_LOG_FILE
:使用SOURCE_LOG_FILE
。MASTER_LOG_POS
:使用SOURCE_LOG_POS
。
系統變數與 NULL。不建議或支援將 MySQL 伺服器啟動選項設定為 NULL (
--my-option=NULL
) 並讓伺服器將其解譯為 SQLNULL
,而且這應該是不可能的。MySQL 8.1 (以及更新版本) 明確禁止以這種方式將啟動選項設定為NULL
,並會拒絕嘗試,並顯示錯誤。嘗試使用SET
或在 mysql 用戶端中使用類似的方式將對應的伺服器系統變數設定為NULL
也會被拒絕。下列清單中的伺服器系統變數不在此限制之內。
另請參閱第 7.1.8 節,〈伺服器系統變數〉。
以錢字符號開頭的識別碼。在 MySQL 8.0 中,不使用引號括住的識別碼以錢字符號 (
$
) 作為開頭的用法已遭到棄用,而在 MySQL 8.1 及更新版本中受到限制;使用以錢字符號開頭且包含一或多個錢字符號 (除了第一個) 的不使用引號括住的識別碼,現在會產生語法錯誤。如果以
$
開頭的不使用引號括住的識別碼未包含任何額外的$
字元,則不受此限制影響。
此外,作為此工作的一部分,下列先前已棄用的伺服器狀態變數已移除。此處列出這些變數及其取代變數。
Com_slave_start
:使用Com_replica_start
。Com_slave_stop
:使用Com_replica_stop
。Com_show_slave_status
:使用Com_show_replica_status
。Com_show_slave_hosts
:使用Com_show_replicas
。Com_show_master_status
:使用Com_show_binary_log_status
。Com_change_master
:使用Com_change_replication_source
。
剛才列為已移除的變數不再出現在
SHOW STATUS
等陳述式的輸出中。另請參閱Com_xxx 變數。外掛程式。 MySQL 8.4.0 中移除了許多外掛程式,此處列出這些外掛程式,以及與這些外掛程式相關聯的任何系統變數和其他功能 (這些外掛程式也已移除,或受到移除外掛程式的影響)。
authentication_fido
和authentication_fido_client
外掛程式:請改用authentication_webauthn
外掛程式。請參閱第 8.4.1.11 節,〈WebAuthn 可插入式驗證〉。也移除了
authentication_fido_rp_id
伺服器系統變數、mysql 用戶端--fido-register-factor
選項,以及-DWITH_FIDO
CMake 選項。keyring_file
外掛程式:請改用component_keyring_file
元件。請參閱第 8.4.4.4 節,〈使用 component_keyring_file 基於檔案的金鑰環元件〉。也移除了
keyring_file_data
系統變數。此外,還移除了 CMake 選項-DINSTALL_MYSQLKEYRINGDIR
和-DWITH_KEYRING_TEST
。keyring_encrypted_file
外掛程式:請改用component_keyring_encrypted_file
元件。請參閱第 8.4.4.5 節,〈使用 component_keyring_encrypted_file 加密式基於檔案的金鑰環元件〉。也移除了
keyring_encrypted_file_data
和keyring_encrypted_file_password
系統變數。keyring_oci
外掛程式:請改用component_keyring_oci
元件。請參閱第 8.4.4.9 節,〈使用 Oracle Cloud Infrastructure Vault 金鑰環元件〉。也移除了下列伺服器系統變數:
keyring_oci_ca_certificate
、keyring_oci_compartment
、keyring_oci_encryption_endpoint
、keyring_oci_key_file
、keyring_oci_key_fingerprint
、keyring_oci_management_endpoint
、keyring_oci_master_key
、keyring_oci_secrets_endpoint
、keyring_oci_tenancy
、keyring_oci_user
、keyring_oci_vaults_endpoint
和keyring_oci_virtual_vault
。openssl_udf
外掛程式:請改用 MySQL Enterprise Encryption (component_enterprise_encryption
) 元件;請參閱第 8.6 節,〈MySQL Enterprise Encryption〉。
支援弱式密碼。設定加密連線時,MySQL 8.4.0 及更新版本不再允許指定不符合下列任何需求的密碼。
符合適當的 TLS 版本 (TLS v1.2 或 TLSv1.3,視情況而定)
提供完善的前向安全性
在密碼、憑證或兩者中使用 SHA2
在 GCM 或任何其他 AEAD 演算法或模式中使用 AES
這會對設定下列系統變數產生影響。
請參閱這些變數的描述,以瞭解 MySQL 8.4 中允許的值及更多資訊。
注意libmysqlclient
繼續支援不滿足這些條件的其他密碼,以便保留連線到舊版 MySQL 的能力。INFORMATION_SCHEMA.TABLESPACES。實際上未使用的
INFORMATION_SCHEMA.TABLESPACES
資料表已在 MySQL 8.0.22 中遭到棄用,現在已移除。注意對於
NDB
資料表,資訊結構描述FILES
資料表提供與資料表空間相關的資訊。對於
InnoDB
資料表,資訊結構描述INNODB_TABLESPACES
和INNODB_DATAFILES
資料表提供資料表空間中繼資料。DROP TABLESPACE 和 ALTER TABLESPACE:ENGINE 子句。
DROP TABLESPACE
和ALTER TABLESPACE
語句的ENGINE
子句在 MySQL 8.0 中已被棄用。在 MySQL 8.4 中,不再支援此子句,如果您嘗試將其與DROP TABLESPACE
或ALTER TABLESPACE ... DROP DATAFILE
一起使用,將會導致錯誤。ENGINE
也不再支援ALTER TABLESPACE
的所有其他變體,但此處列出的兩個例外情況除外:ALTER TABLESPACE ... ADD DATAFILE ENGINE={NDB|NDBCLUSTER}
ALTER UNDO TABLESPACE ... SET {ACTIVE|INACTIVE} ENGINE=INNODB
有關更多資訊,請參閱這些語句的文件。
LOW_PRIORITY 與 LOCK TABLES ... WRITE。
LOCK TABLES ... WRITE
語句的LOW_PRIORITY
子句自 MySQL 5.5 起就沒有作用,並在 MySQL 5.6 中被棄用。在 MySQL 8.4 中不再支援此子句;現在在LOCK TABLES
中包含它會導致語法錯誤。EXPLAIN FORMAT=JSON 格式版本。現在可以使用此版本中引入的伺服器系統變數
explain_json_format_version
,在EXPLAIN FORMAT=JSON
語句使用的 JSON 輸出格式的 2 個版本之間進行選擇。將此變數設定為1
會使伺服器使用版本 1,也就是在 MySQL 8.2 及更早版本中,此類語句始終使用的線性格式。這是 MySQL 8.4 中的預設值和格式。將explain_json_format_version
設定為2
會使伺服器使用版本 2 格式;此 JSON 輸出格式基於存取路徑,旨在提供與未來版本的 MySQL Optimizer 更好的相容性。有關更多資訊和範例,請參閱取得執行計畫資訊。
擷取 EXPLAIN FORMAT=JSON 輸出。
EXPLAIN FORMAT=JSON
已擴充INTO
選項,該選項提供將 JSON 格式的EXPLAIN
輸出儲存在使用者變數中的功能,該變數可以使用 MySQL JSON 函數進行處理,如下所示:mysql> EXPLAIN FORMAT=JSON INTO @myex SELECT name FROM a WHERE id = 2; Query OK, 0 rows affected (0.00 sec) mysql> SELECT JSON_EXTRACT(@myex, "$.query_block.table.key"); +------------------------------------------------+ | JSON_EXTRACT(@myex, "$.query_block.table.key") | +------------------------------------------------+ | "PRIMARY" | +------------------------------------------------+ 1 row in set (0.01 sec)
只有在
EXPLAIN
語句也包含FORMAT=JSON
的情況下,才能使用此選項;否則會導致語法錯誤。此要求不受explain_format
的值影響。INTO
可以與任何可解釋的語句一起使用,但EXPLAIN FOR CONNECTION
除外。它不能與EXPLAIN ANALYZE
一起使用。有關更多資訊和範例,請參閱取得執行計畫資訊。
EXPLAIN FOR SCHEMA。為
EXPLAIN
語句新增了FOR SCHEMA
選項。語法如下所示,其中stmt
是一個可解釋的語句:EXPLAIN [options] FOR SCHEMA schema_name stmt
這會導致
stmt
像在指定的 schema 中執行一樣執行。FOR DATABASE
也被支援作為同義詞。此選項與
FOR CONNECTION
不相容。有關更多資訊,請參閱取得執行計畫資訊。
保留客戶端註解。在 MySQL 8.0 中,從 mysql 客戶端中剝離註解是預設行為;預設設定已變更為保留此類註解。
若要啟用如 MySQL 8.0 及更早版本中執行的註解剝離,請使用
--skip-comments
啟動 mysql 客戶端。AUTO_INCREMENT 和浮點數欄。在
CREATE TABLE
和ALTER TABLE
語句中,將AUTO_INCREMENT
修飾詞與FLOAT
和DOUBLE
欄搭配使用在 MySQL 8.0 中已被棄用;在 MySQL 8.4 中完全移除對它的支援,它會引發ER_WRONG_FIELD_SPEC
(欄的欄規範不正確)。在從先前的版本升級到 MySQL 8.4 之前,您必須修正任何包含
FLOAT
或DOUBLE
且帶有AUTO_INCREMENT
的資料表,以便該資料表不再使用這些資料類型中的任何一種。否則,升級將會失敗。mysql_ssl_rsa_setup 公用程式。已移除在 MySQL 8.0.34 中已棄用的 mysql_ssl_rsa_setup 公用程式。對於使用 OpenSSL 編譯的 MySQL 發行版本,MySQL 伺服器可以在啟動時自動產生遺失的 SSL 和 RSA 檔案。有關更多資訊,請參閱第 8.3.3.1 節,「使用 MySQL 建立 SSL 和 RSA 憑證和金鑰」。
MySQL 權限。新增了用於 definer 物件建立的
SET_ANY_DEFINER
權限和用於孤立物件保護的ALLOW_NONEXISTENT_DEFINER
權限。這些權限與已棄用的SET_USER_ID
權限共存。SET_USER_ID 權限。在 MySQL 8.2.0 中已棄用的
SET_USER_ID
權限已被移除。現在在GRANT
語句中使用會導致語法錯誤。您可以使用
SET_ANY_DEFINER
權限來建立 definer 物件,並使用ALLOW_NONEXISTENT_DEFINER
權限來保護孤立物件,而不是使用SET_USER_ID
。使用
CREATE PROCEDURE
、CREATE FUNCTION
、CREATE TRIGGER
、CREATE EVENT
或CREATE VIEW
產生孤立的 SQL 物件需要這兩種權限。--abort-slave-event-count 和 --disconnect-slave-event-count 伺服器選項。MySQL 伺服器啟動選項
--abort-slave-event-count
和--disconnect-slave-event-count
之前用於測試,在 MySQL 8.0 中已棄用,並在此版本中移除。現在嘗試使用這些選項中的任何一個啟動 mysqld 都會導致錯誤。mysql_upgrade 公用程式。在 MySQL 8.0.16 中已棄用的 mysql_upgrade 公用程式已被移除。
mysqlpump 公用程式。已移除在 MySQL 8.0.34 中已棄用的 mysqlpump 公用程式及其 helper 公用程式 lz4_decompress 和 zlib_decompress。請改用 mysqldump 或 MySQL Shell 的傾印公用程式。
已過時的 CMake 選項。使用 CMake 編譯伺服器的以下選項已過時並已移除:
USE_LD_LLD
:請改用WITH_LD=lld
。WITH_BOOST
、DOWNLOAD_BOOST
、DOWNLOAD_BOOST_TIMEOUT
:這些選項不再必要;現在 MySQL 在從原始碼編譯時會包含並使用捆綁的 Boost 版本。
已移除的關鍵字。自 MySQL 8.0 起,在 MySQL 8.4 中移除的關鍵字。保留的關鍵字標示為 (R)。
GET_MASTER_PUBLIC_KEY
、MASTER_AUTO_POSITION
、MASTER_BIND
(R)、MASTER_COMPRESSION_ALGORITHMS
、MASTER_CONNECT_RETRY
、MASTER_DELAY
、MASTER_HEARTBEAT_PERIOD
、MASTER_HOST
、MASTER_LOG_FILE
、MASTER_LOG_POS
、MASTER_PASSWORD
、MASTER_PORT
、MASTER_PUBLIC_KEY_PATH
、MASTER_RETRY_COUNT
、MASTER_SSL
、MASTER_SSL_CA
、MASTER_SSL_CAPATH
、MASTER_SSL_CERT
、MASTER_SSL_CIPHER
、MASTER_SSL_CRL
、MASTER_SSL_CRLPATH
、MASTER_SSL_KEY
、MASTER_SSL_VERIFY_SERVER_CERT
(R)、MASTER_TLS_CIPHERSUITES
、MASTER_TLS_VERSION
、MASTER_USER
和MASTER_ZSTD_COMPRESSION_LEVEL
。分割索引中的前置詞。在 MySQL 8.0 中,索引前置詞的資料行允許在分割資料表的分割索引鍵中使用,並且在建立、變更或升級分割資料表時會引發警告,而沒有其他影響。分割資料表中不再允許此類資料行,並且在分割索引鍵中使用任何此類資料行,都會導致
CREATE TABLE
或ALTER TABLE
語句發生錯誤而遭拒絕。有關更多資訊,請參閱金鑰分割不支援資料行索引前置詞。