1、環境說明html
操做系統:Windows Server2008 R2mysql
數據庫版本:MySql 8.0.19 數據庫中數據量很小,處於測試環境,風險較低sql
2、升級緣由升級是由於測評漏洞,在進行國家三級等級保護測評過程當中,漏掃發現多個MySql漏洞。數據庫
一共包含3個高危漏洞以及約50個高危漏洞,通過總體整改建議查看,須要升級到8.0.20版本後能夠解決相關漏洞,所以評估對版本進行升級,發現最新版本的爲8.0.22版本,直接一步到位,升級到最新版。windows
3、升級方法測試
查了相關資料,MySql升級從8.0.16是一個分水嶺,在該版本先後的升級方法有所不一樣,8.0.16版本以後升級方法大大簡化。剛好我這裏是8.0.16版本後的,暗自慶幸一下。操作系統
網上大部分資料都是介紹8.0.16以前的版本升級,8.0.16後的版本升級資料很少,我這裏是直接按照官方文檔進行的升級操做,簡單的大概分爲三步便可【停服務】—>【文件覆蓋】—>【啓服務】(像不像把大象放進冰箱裏面的操做,只要三步,打開冰箱—>放進大象—>關上冰箱(* ̄︶ ̄))。htm
下面來介紹一下具體的操做:blog
官方升級文檔參考:ip
https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html#windows-upgrading-zip-distribution
大概總結以下(官方步驟中有一個操做可能能夠經過多種方式實現):
一、下載最新的安裝包,我這裏使用的是解壓包的方式,因此下載的爲ZIP格式文件(使用exe升級的方式大同小異,能夠一樣參考官方文檔進行操做);
下載地址:https://dev.mysql.com/downloads/mysql/
二、查看已安裝Mysql的版本
能夠經過 SELECT VERSION(); 語句查看;
SELECT VERSION();
或者經過CMD命令中執行命令查看
MYSQL -V
三、中止服務前肯定數據庫的引擎類型以及服務重啓方式。
查看數據庫默認引擎類型
show variables like '%storage_engine%';
查看提供的存儲引擎
show engines;
也能夠經過表查看某一個表的了類型,在表的建立語句中找到ENGINE名稱,通常是InnoDB。
show create table 表名;
設置服務關閉方式,
show variables like '%innodb_fast_shutdown%';
設置爲0:會作清除髒頁和插入緩衝區的合併操做,也會將髒頁所有刷新到磁盤上面去,可是這個時候關閉的速度也是最慢的;
設置爲1:關閉MySQL的時候不會作清除髒頁和插入緩衝區的合併操做,也不會將髒頁刷新到磁盤;
設置爲2:不會作清除髒頁和插入緩衝區的合併操做,也不會將髒頁刷新到磁盤,可是會刷新到redo log裏面,再下次啓動mysql的時候恢復;
默認設置爲1,能夠經過 set global innodb_fast_shutdown=0 語句進行設置,建議設置爲0或者1。
三、操做前備份
mysqldump -u root -p db-mcms-open > D:\backup20210106.sql
在cmd中經過語句輸入密碼進行數據庫備份。
數據備份後,對原始的Mysql安裝包也進行備份,以防萬一。
四、中止服務
右鍵中止服務便可。
五、文件替換
將下載的最新安裝包解壓,並覆蓋已安裝版本,選擇文件夾合併以及文件覆蓋(新的包裏面沒有data文件夾以及my.ini配置文件)。
六、同第四步操做,啓動服務便可
七、經過第二步語句進行版本驗證以及數據庫登陸、應用等驗證工做。
至此,整個升級完畢,我的升級比較順利,過程當中並未遇到什麼問題,並且升級後進行了應用等驗證,均無問題。