自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

新特性解讀 | MySQL 5.7升級到MySQL 8.0的注意事項

數(shù)據(jù)庫 MySQL
本文對MySQL 5.7到MySQL 8.0的升級過程中出現(xiàn)部分易出現(xiàn)問題進(jìn)行整理:升級對MySQL版本的要求、升級都做了哪些內(nèi)容、數(shù)據(jù)庫升級做了哪些步驟以及注意事項,希望對大家版本升級有幫助。

新特性解讀 | MySQL 5.7升級到MySQL 8.0的注意事項

引言

近期項目進(jìn)行MySQL 5.7.21到MySQL 8.0.13的升級測試,采用邏輯升級,配置文件來自于生產(chǎn)環(huán)境。在初始化MySQL 8.0時,初始化命令秒級完成,而數(shù)據(jù)目錄卻是空的,執(zhí)行初始化操作的shell窗口也沒有任何的報錯提示。

通過翻閱官方手冊發(fā)現(xiàn)MySQL 8.0.13中NO_AUTO_CREATE_USER這種sql_mode已經(jīng)廢棄,而配置文件的sql_mode有這個配置項,最終導(dǎo)致了實例初始化失敗。為了減少升級過程中出現(xiàn)類似問題,因此對MySQL 5.7到8.0的升級進(jìn)行部分整理,主要包括:升級對MySQL版本的要求、升級都做了哪些內(nèi)容、數(shù)據(jù)庫升級做了哪些步驟以及注意事項。

升級要求

  • MySQL 5.7升級到MySQL 8.0,要求MySQL5.7的版本是MySQL 5.7.9或者更高的GA版
  • 不支持跨版本升級

升級內(nèi)容

  • 升級數(shù)據(jù)字典表的版本
  • 升級MySQL server 版本,主要包括system表以及其他schema對象

升級步驟

  • 升級數(shù)據(jù)字典,這個階段主要升級MySQL庫的數(shù)據(jù)字典表。數(shù)據(jù)字典的升級在數(shù)據(jù)庫服務(wù)啟動過程自動完成。
  • 升級MySQL庫的系統(tǒng)表(剩余的非字典表);升級Performance schema、 information schema 、sys schema;升級用戶schema。在MySQL 8.0.16版本之前,需要手動的執(zhí)行MySQL_upgrade來完成該步驟的升級,在MySQL 8.0.16版本是由MySQLd來完成該步驟的升級。

升級注意事項

  • caching_sha2_password認(rèn)證插件提供更多的密碼加密方式,并且在加密方面具有更好的表現(xiàn),目前MySQL 8.0選用caching_sha2_password作為默認(rèn)的認(rèn)證插件,MySQL 5.7的認(rèn)證插件是MySQL_native_password。如果客戶端版本過低,會造成無法識別MySQL 8.0的加密認(rèn)證方式,最終導(dǎo)致連接問題。
  • MySQL存儲引擎現(xiàn)在負(fù)責(zé)提供自己的分區(qū)處理程序,而MySQL服務(wù)器不再提供通用分區(qū)支持,InnoDB和NDB是唯一提供MySQL 8.0支持的本地分區(qū)處理程序的存儲引擎。 如果分區(qū)表用的是別的存儲引擎,存儲引擎必須進(jìn)行修改。要么將其轉(zhuǎn)換為InnoDB或NDB,要么刪除其分區(qū)。通過MySQLdump從5.7獲取的備份文件,在導(dǎo)入到8.0環(huán)境前,需要確保創(chuàng)建分區(qū)表語句中指定的存儲引擎必須支持分區(qū),否則會報錯。
  • MySQL 8.0的默認(rèn)字符集utf8mb4,可能會導(dǎo)致之前數(shù)據(jù)的字符集跟新建對象的字符集不一致,為了避免新舊對象字符集不一致的情況,可以在配置文件將字符集和校驗規(guī)則設(shè)置為舊版本的字符集和校驗規(guī)則。
  • MySQL 8.0啟動使用的lower_case_table_names值必須跟初始化時使用的一致。使用不同的設(shè)置重新啟動服務(wù)器會引入與標(biāo)識符的排序和比較方式不一致的問題。

< lower_case_table_names >

https://dev.mysql.com/doc/refman/8.0/en/server-systemvariables.html#sysvar_lower_case_table_names

  • 要避免MySQL 8.0上的啟動失敗,MySQL配置文件中的sql_mode系統(tǒng)變量不能包含NO_AUTO_CREATE_USER。
  • 從MySQL 5.7.24和MySQL 8.0.13開始,MySQLdump從存儲程序定義中刪除了NO_AUTO_CREATE_USER。 必須手動修改使用早期版本的MySQLdump創(chuàng)建的轉(zhuǎn)儲文件,以刪除NO_AUTO_CREATE_USER。
  • 在MySQL 8.0.11中,刪除了這些不推薦使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。從5.7到8.0的復(fù)制場景中,如果語句使用到廢棄的SQL Mode會導(dǎo)致復(fù)制異常。
  • 在執(zhí)行到MySQL 8.0.3或更高版本的in-place升級時,BACKUP_ADMIN權(quán)限自動授予具有RELOAD權(quán)限的用戶。

本文對MySQL 5.7到MySQL 8.0的升級過程中出現(xiàn)部分易出現(xiàn)問題進(jìn)行整理:升級對MySQL版本的要求、升級都做了哪些內(nèi)容、數(shù)據(jù)庫升級做了哪些步驟以及注意事項,希望對大家版本升級有幫助。

原創(chuàng)作者: 郭斌斌

責(zé)任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2022-06-20 12:00:43

MySQL數(shù)據(jù)庫升級

2020-07-31 13:55:57

MySQL數(shù)據(jù)庫DBA

2023-11-15 07:57:56

SpringBootJava框架

2011-04-12 09:23:29

CentOS 5.6

2021-08-25 07:56:37

MySQLMyRocks存儲

2013-06-07 17:40:11

Windows 8Windows 8.1

2011-03-31 13:39:14

mysql3mysql5亂碼

2013-05-20 10:39:55

MariaDB

2024-04-18 09:00:00

MySQL數(shù)據(jù)庫

2012-07-05 14:38:14

Windows 8操作系統(tǒng)

2010-07-12 15:57:24

Exchange Se升級

2019-05-14 15:55:15

Fedora 29Fedora 30Linux

2019-11-05 13:20:00

Fedora 30Fedora 31Linux

2020-05-08 17:55:35

Fedora 31Fedora 32Linux

2010-11-26 16:27:01

MySQL使用變量

2011-03-24 09:15:14

Ubuntu 11.0Linux 內(nèi)核2.6

2011-05-03 13:35:56

2020-12-31 05:35:53

MySQL 8.0MySQL 5.7JSON

2010-03-18 17:58:26

至強(qiáng)5500至強(qiáng)5600

2010-02-02 10:33:09

Linux升級系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號