在之前的版本中,安裝新的版本mysql之后,mysql server在下一次啟動時,會自動升級數據字典表,然后dba需要執行mysql_upgrade手動升級mysql schema中的系統表,以及其他schemas如sys schema、普通用戶schemas下的表。
從mysql 8.0.16開始,mysql server自己執行之前mysql_upgrade完成的任務。安裝新的版本之后,現在msyql server在下一次啟動時,會自動執行所有的upgrade任務,不在需要dba執行mysql_upgrade。此外,mysql server會升級幫助表的內容(有些mysql_upgrade不會升級)。
新的選項--upgrade控制mysql server如何執行自動數據字典和mysql server的升級操作。
安裝一個新版本的mysql server,可能需要升級以下內容:
1.mysq系統schema。mysql schema表主要分為兩類:數據字典表、系統表(遺留下的非數據字典表)
2.其他schema表。如performance_schema、sys schema,或其他用戶schema
兩個不同的版本號與可能需要升級的安裝部分相關聯:
1.數據字典版本。應用到數據集字典表
2.server版本,即mysql版本。應用到系統表和其它schema對象
兩個不同的版本,需要先升級數據字典:
第一步,數據字典升級。升級mysql schema中的數據字典表,再升級performance_schema和information_schema表。
這一步是由mysql server自動執行。
第二部,升級mysql server。升級mysql schema中的系統表,sys schema和用戶schema表
在mysql 8.0.16之前,mysql_upgrade升級performance_schema,information_schema,以及其它對象。需要dba執行mysql_upgrade
從mysql 8.0.16開始,mysql server執行mysql_upgrade的工作。