基於centos7的MySQL5.7的RPM本地升級

龍山游龍發表於2021-08-09

第一部分資料庫備份

在升級資料庫之前,首先對資料庫進行備份。可以採用冷備或熱備。

1.1冷備

如果伺服器有足夠的時間能夠停機進行備份操作,可以直接採用冷備的方式。在將資料庫關閉之後,直接將資料目錄複製到備份目錄中。

shell> mkdir -p /var/lib/mysql2
shell> cp /var/lib/mysql/* /var/lib/mysql

注意:冷備前需要先檢視配置檔案,確認資料庫的所有檔案是否都在資料目錄中,部分日誌有沒有設定到其他目錄中。

1.2邏輯熱備

mysqldump是MySQL自帶的備份工具,我們只需要直接使用就行。

shell> mysqldump -uroot -pAbcd321# --single-transaction --master-data=2 -E -R --all-databases >full.sql

使用上述命令備份全庫至指定目錄。

shell> tail -1 full.sql
-- Dump completed on 2020-10-29  9:23:04

若最後輸出Dump completed on,則說明備份成功。

1.3物理熱備

下載XtraBackup 2.4:

使用https: // ,登入官網XtraBackup 2.4下載區,下載最新版本的二進位制包。

在Linux系統上傳介質包percona-xtrabackup-2.4.20-Linux-x86_64.el7.tar.gz,建立/Xtrabackup目錄。

shell> mkdir -p /Xtrabackup
sftp> cd /Xtrabackup
sftp> put percona-xtrabackup-2.4.20-Linux-x86_64.el7.tar.gz

解壓介質包,並設定環境變數。

shell> cd /Xtrabackup/
shell> tar zxf percona-xtrabackup-2.4.20-Linux-x86_64.el7.tar.gz
shell> cd percona-xtrabackup-2.4.20-Linux-x86_64/bin/
shell> pwd 
/Xtrabackup/percona-xtrabackup-2.4.20-Linux-x86_64/bin
shell> vi /root/.bash_profile
export PATH=/Xtrabackup/percona-xtrabackup-2.4.20-Linux-x86_64/bin:$PATH
shell> source /root/.bash_profile
shell> su -

至此,Percona Xtrabackup部署完成。然後開始備份。

shell> mkdir /Xtrabackup/backup
shell> xtrabackup --defaults-file=/etc/my.cnf -uroot -pAbcd321# --backup --target-dir=/Xtrabackup/backup
......
201029 09:32:42 completed OK!

最後輸出completed OK!,則說明備份成功。

第二部分升級資料庫

就地升級包括關閉舊的MySQL伺服器,用新的二進位制包替換舊的二進位制包,在現有資料目錄上重新啟動MySQL,以及升級現有安裝中需要升級的剩餘部分。

2.1升級前準備

開啟mysql官網下載頁面:https: // dev.mysql.com/downloads/mysql/,下載要升級的對應版本的資料庫,並上傳到指定目錄。

檢查你的升級路徑,資料庫升級不支援跳過版本的升級,例如,不支援直接從MySQL 5.5升級到5.7。建議先升級到最新版本,再升級到下一版本。支援在發行系列中進行升級。

檢查你的配置檔案,檢視引數設定是否與新版本的資料庫相容。

2.2提交或回滾分散式事務

如果在InnoDB中使用XA事務,請在升級之前執行XA RECOVER以檢查未提交的XA事務。如果有返回結果,則透過發出XA COMMIT或 XA ROLLBACK語句來提交或回滾XA事務。

mysql> XA RECOVER;
mysql> XA COMMIT xid;

2.3配置慢關機

如果您使用InnoDB,請透過InnoDB_fast_shutdown配置MySQL執行慢關機。

mysql> set global innodb_fast_shutdown=0;

2.4關閉原資料庫

RPM安裝的MySQL可用service停止服務:

shell> service mysqld stop

mysqld為預設的服務名。

2.5備份配置檔案

檢查配置檔案,檢視升至新版本是否有過期的引數選項並備份。

shell> cp /etc/my.cnf /etc/my.cnf.bak

2.6解壓新版RPM包

開啟MySQL官網的下載區https://dev.mysql.com/downloads/mysql/,下載MySQL5.7.33,並上傳到Linux的指定路徑。

建立新的安裝目錄,並將新版本的資料庫解壓到安裝目錄中:

shell> mkdir /root/base
shell> cd /root/base
shell> tar -xvf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar

2.7MySQL RPM安裝必備依賴包

MySQL在安裝RPM包時,會需要許多依賴包,提前安裝好所需的依賴包。如果在安裝步驟已經安裝過了可以跳過。

shell> yum install -y gcc* gcc-c++ ncurses* ncurses-devel* cmake* make* perl* bison* libaio-devel* libgcrypt*

2.8解除安裝作業系統中的衝突包

作業系統中的mariadb-libs包會在MySQL安裝RPM包時產生衝突。

shell> rpm -qa|grep -i mariadb-libs
mariadb-libs-5.5.68-1.el7.x86_64
shell> rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

2.9升級資料庫

直接執行下列語句完成安裝。注意,RPM包之間有相互依賴關係,所以不能分開安裝。

shell> rpm -Uvh mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-devel-5.7.33-1.el7.x86_64.rpm mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm

2.10重啟資料庫

升級後,my.cnf將丟失,將備份的配置檔案覆蓋回去,並啟動MySQL:

shell> cp /etc/mysql.cnf.bak /etc/my.cnf
shell> service mysqld start

安裝完成後,對資料庫進行mysql_upgrade -uroot -p 升級檢查,看是否升級成功。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30310891/viewspace-2786039/,如需轉載,請註明出處,否則將追究法律責任。

相關文章