最近護網操作比較緊,基線和漏洞檢查比較頻繁,新掃描出來的mysql漏洞需要修復,沒有啥好的修復方法,只剩下升級版本這一條路,生產環境是5.7.12,二進位制檔案直接解壓使用的,看了一下現在最新的版本,5.7.30,好像能解決所有的漏洞問題,直接就幹了。
mysql的小版本的升級,主要是有兩種方式,一種是物理升級,也就是本地停庫,替換二進位制檔案,然後重新啟動資料庫,執行線上upgrade操作,另一種是邏輯升級,將原有的資料庫資料,dump匯出為sql檔案,然後在新安裝的資料庫中進行匯入操作。
考慮到本地環境,資料量比較大,單獨硬碟儲存,我選擇了直接升級操作。
主要操作如下:
1.下載檔案:
直接訪問mysql官方站點下載mysql二進位制檔案,網路條件受限,下載很慢,整個二進位制包660M呢,根本下載不下來,還好國內有站點,選擇清華、網易等映象源,分分鐘就將安裝包下載下來了。
2.上傳檔案,解壓
直接在指定目錄下,解壓,生成mysql-5.7.30-log目錄
3.停庫
由於資料庫裡面有主從服務,先關閉主庫和從庫的slave程式,然後關閉日誌binlog同步服務,設定innodb的慢關閉,SET GLOBAL innodb_fast_shutdown=0;
4.解除安裝umount,建立軟連線
資料庫data目錄是單獨的掛載,等資料庫完全關閉後,執行umount操作,然後將原有的mysql目錄重新命名(以前直接是做的重新命名,沒有軟連線),將5.7.30目錄做軟連線,連結到mysql目錄上。
5.檢視命令,啟動資料庫
通過which檢視mysql等命令的位置,是否能查到,如果查不到,看一下本地path,mount資料目錄,然後啟動資料庫,看日誌是否有異常
6.執行upgrade操作
mysql_upgrade直接執行,如果有general_log和slow_log可能會有報錯,時間較長,但是無關緊要,畢竟不是真的資料
升級完成之後,直接關閉資料庫,然後重新啟動,就完成升級了。
總體來說,mysql的小版本升級,還是很簡單的,我這個操作是比較冒險的,升級前沒有做備份操作。