0.緒論 html
公司爲了安全須要,要將mysql版本升級至最新版本mysql5.7.21,升級以前的版本是mysql5.7.20。本文是升級過程記錄。 mysql
因爲yum的資源中沒有mysql的安裝包,所以本文選擇先在mysql官網上下載rpm安裝包,而後再經過yum安裝。linux
根據mysql的官方說明,mysql在連續的小版本之間升級很容易,好比mysql5.5升級到5.6,本文中就更簡單了,小版本都沒變。sql
mysql小版本之間的升級的基本過程以下:數據庫
(1)rpm包下載centos
(2)解壓rpm包,並安裝新版本:安全
yum install mysql-community-{server,client,common,libs}-*
(3)啓動mysql服務便可:service mysqld start服務器
(4)在命令窗口執行mysql_update,解決舊版本數據跟新版本mysql的不兼容問題(注意,該命令會使用mysql用戶'root'@'localhost'登陸mysql,密碼爲空。執行以前先確保你的mysql存在對應用戶和密碼,不然會報錯。)spa
(5)驗證升級成功與否操作系統
說明:
升級過程其實就是上述過程的第2步(yum install mysql-community-{server,client,common,libs}-*
),也就是說升級過程所有由mysql官方提供。對用戶來講,跟安裝一個新的mysql過程是同樣的。在yum install時,首先會監測mysql服務有沒有啓動,若是mysql服務啓動的話,會首先將mysql服務關閉。其次,mysql會檢測系統中已安裝的rpm包,而且將舊的rpm包刪除,而後再安裝新的rom包。
值得注意的是,咱們數據庫中的記錄在整個升級過程當中都沒有被改變。升級以後,原有的數據仍然在,這是一個很是使人開心的點。
1.升級記錄截圖
(1)升級以前,查看一下舊的安裝包:
(2)根據服務器操做系統,在mysql官網下載指定版本的mysql rpm包。本文中要升級的服務器操做系統是centos6,所以選擇下圖紅框中的rpm壓縮包。
說明一下,mysql官方對每一個版本都提供了不少rpm包,包括rpm bundle是mysql全部rpm包的壓縮包,很是方便。
(3)將rpm包上傳至服務器,並解壓
解壓命令:tar -xvf mysql-5.7.21-1.el6.x86_64.rpm-bundle.tar
(4)將解壓出的rpm包移動到一個目錄下
(5)關閉服務器的mysql服務(這步能夠省略,根據官方說明,mysql在更新時首先會關閉本機的mysql服務,而後再執行更新)
(6)在rpm包目錄執行如下命令,直接安裝5.7.21
命令:yum install mysql-community-{server,client,common,libs}-*
(7)更新完畢,重啓服務便可
(8)更新命令:負責解決舊版本數據跟新版本mysql的不兼容問題
命令:mysql_upgrade
注意,該命令會使用mysql用戶'root'@'localhost'登陸mysql,密碼爲空。執行以前先確保你的mysql存在對應用戶和密碼,不然會報錯。
(9)登陸mysql,驗證版本
(10)結果驗證:查看安裝的rpm包,能夠看到都更新爲了mysql5.7.21版本的
2.跨版本的mysql升級
以前還有一次從mysql5.1升級到mysql5.7的經歷,在此一塊兒記錄一下。
流程跟上面的基本一致,可是有幾個問題列一下:
(1)在第二步(yum install)時報錯:mysql舊版本的rpm包存在yum沒法解決的依賴關係,沒法卸載
解決:使用yum remove命令手動卸載原有rpm包,再次安裝便可
(2)yum install以後,啓動mysql服務失敗
緣由及解決:5.7沒法讀取5.1的mysql.user表,解決方法使用--skip-grant-tables參數跳過受權驗證。(參考博客)
執行命令:mysqld_safe --skip-grant-tables&