MySQL rpm安裝 升級


之前數據庫的安裝是通下載mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar中的rpm包,進行安裝的,現在發現5.7.22版本有許多的安全漏洞,需要升級到最新版5.7.31版;在這里記錄一下通過rpm方式升級MySQL

下載最新版的MySQL安裝包

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

解壓
tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
把需要升級的rpm包放到一個目錄

-rw------- 1 root root 25820440 Jun 3 18:07 mysql-community-client-5.7.31-1.el7.x86_64.rpm -rw------- 1 root root 378784 Jun 3 18:07 mysql-community-common-5.7.31-1.el7.x86_64.rpm -rw------- 1 root root 3891548 Jun 3 18:07 mysql-community-devel-5.7.31-1.el7.x86_64.rpm -rw------- 1 root root 2511392 Jun 3 18:07 mysql-community-libs-5.7.31-1.el7.x86_64.rpm -rw------- 1 root root 169502800 Jun 3 18:08 mysql-community-server-5.7.31-1.el7.x86_64.rpm

升級

查看當前版本

方式一:mysql -V
方式二:rpm -qa |grep -i mysql
記錄當前版本信息

[root@localhost]# rpm -qa |grep -i mysql
 
mysql-community-common-5.7.22-1.el6.x86_64
mysql-community-server-5.7.22-1.el6.x86_64
mysql-community-client-5.7.22-1.el6.x86_64
mysql-community-libs-5.7.22-1.el6.x86_64
mysql-community-devel-5.7.22-1.el6.x86_64

備份

mysqldump -u root -p --add-drop-table --routines --events --all-databases --force > upgrade.sql

備份配置文件

cp /etc/my.cnf /etc/my.cnf.bak

cp  /usr/lib/systemd/system/mysqld.service    /usr/lib/systemd/system/mysqld.service.bak

flush tables with read lock;  關閉所有的表,並給所有數據庫的所有表加上一個global read lock。這對於backup操作來說很有用,加鎖之后,可以防止應用修改數據庫。這個是全局級別的鎖,而非表鎖。

設置參數使數據庫關閉時會清空緩存避免版本間緩存格式差異

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"

關閉數據庫(如果在升級安裝開始時MySQL服務器正在運行,則會在安裝結束時自動重啟,執行上述升級命令后,可直接查看版本號變為升級后的版本號)

systemctl stop mysqld


這里是關閉數據庫后再升級,那么升級完畢后要記得重啟.

升級:卸載和安裝信息二進制文件(即直接yum uninstall /rpm -ivh升級rpm包)數據庫目錄等都不變

 yum remove -y mysql-community-libs-5.7.22-1.el7.x86_64
 yum remove -y mysql-community-common-5.7.22-1.el7.x86_64
 rpm -qa |grep -i mysql  
 rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
 rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
 rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
 rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm  
 rpm -qa |grep -i mysql

啟動數據庫

mv  /etc/my.cnf.bak  /etc/my.cnf
mv   /usr/lib/systemd/system/mysqld.service.bak     /usr/lib/systemd/system/mysqld.service

先還原備份配置文件再啟動 systemctl start mysqld

啟動后 執行 unlock tables 防止表讀被鎖

檢查並可能解決舊數據和升級軟件之間的任何不兼容性

在這一步,如果是關閉數據庫升級,數據庫要已啟動

mysql_upgrade -uroot -p


當從5.7.29升級到5.7.30需要更新,當升級到最新的5.7.30后,就不用了.當然,如果非要更新(其實沒必要),要加–force選項.

驗證

rpm驗證

rpm -qa |grep -i mysql

mysql命令

mysql -V

進入msyql系統后驗證

mysql> select version();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM