一、環境說明
作業系統:Windows Server2008 R2
資料庫版本:MySql 8.0.19 資料庫中資料量很小,處于測驗環境,風險較低
二、升級原因升級是因為測評漏洞,在進行國家三級等級保護測評程序中,漏掃發現多個MySql漏洞,


一共包含3個高危漏洞以及約50個高危漏洞,經過整體整改建議查看,需要升級到8.0.20版本后可以解決相關漏洞,因此評估對版本進行升級,發現最新版本的為8.0.22版本,直接一步到位,升級到最新版,
三、升級方法
查了相關資料,MySql升級從8.0.16是一個分水嶺,在該版本前后的升級方法有所不同,8.0.16版本之后升級方法大大簡化,恰好我這里是8.0.16版本后的,暗自慶幸一下,
網上大部分資料都是介紹8.0.16之前的版本升級,8.0.16后的版本升級資料不多,我這里是直接按照官方檔案進行的升級操作,簡單的大概分為三步即可【停服務】—>【檔案覆寫】—>【啟服務】(像不像把大象放進冰箱里面的操作,只要三步,打開冰箱—>放進大象—>關上冰箱(* ̄︶ ̄)),
下面來介紹一下具體的操作:
官方升級檔案參考:
https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html#windows-upgrading-zip-distribution


大概總結如下(官方步驟中有一個操作可能可以通過多種方式實作):
1、下載最新的安裝包,我這里使用的是解壓包的方式,所以下載的為ZIP格式檔案(使用exe升級的方式大同小異,可以同樣參考官方檔案進行操作);
下載地址:https://dev.mysql.com/downloads/mysql/

2、查看已安裝Mysql的版本
可以通過 SELECT VERSION(); 陳述句查看;
SELECT VERSION();

或者通過CMD命令中執行命令查看
MYSQL -V
![]()
3、停止服務前確定資料庫的引擎型別以及服務重啟方式,
查看資料庫默認引擎型別
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,
3、操作前備份
mysqldump -u root -p db-mcms-open > D:\backup20210106.sql
在cmd中通過陳述句輸入密碼進行資料庫備份,

資料備份后,對原始的Mysql安裝包也進行備份,以防萬一,
4、停止服務

右鍵停止服務即可,
5、檔案替換
將下載的最新安裝包解壓,并覆寫已安裝版本,選擇檔案夾合并以及檔案覆寫(新的包里面沒有data檔案夾以及my.ini組態檔),
6、同第四步操作,啟動服務即可
7、通過第二步陳述句進行版本驗證以及資料庫登錄、應用等驗證作業,
至此,整個升級完畢,個人升級比較順利,程序中并未遇到什么問題,而且升級后進行了應用等驗證,均無問題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/245622.html
標籤:其他
