基於centos7的MySQL5.7的RPM本地升級
第一部分資料庫備份
在升級資料庫之前,首先對資料庫進行備份。可以採用冷備或熱備。
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於Windows的MySQL5.7本地升級WindowsMySql
- 基於centos7的MySQL5.7二進位制安裝包的本地升級CentOSMySql
- 基於centos7的MySQL5.7二進位制安裝包的邏輯升級CentOSMySql
- 基於centos7的MySQL8.0二進位制安裝包的本地升級CentOSMySql
- RPM包的安裝與升級
- 基於LINUX的MySql二進位制本地升級實施文件LinuxMySql
- 基於centos7的MySQL8.0二進位制安裝包的邏輯升級CentOSMySql
- centos7 核心升級CentOS
- 升級MySQL5.7,開發不得不注意的坑MySql
- rpm包安裝升級與解除安裝
- 基於Http協議的軟體自動升級HTTP協議
- 基於Linux的MySQL5.7RPM包安裝LinuxMySql
- phpStudy2018 升級資料庫 MySQL5.7PHP資料庫MySql
- CentOS7 升級 Git 歷程CentOSGit
- CentOS7升級openssl1.1.1CentOS
- 基於ObjectMapper的本地快取ObjectAPP快取
- centos7 RPM MySQL5.5CentOSMySql
- 基於Linux的MySQL5.7的二進位制安裝LinuxMySql
- windows10 MySQL5.7升級至MySQL8.0WindowsMySql
- centos7 mysql5.6升級5.7CentOSMySql
- Centos7 升級openssh到最高版本CentOS
- CentOS 下 MySQL 5.6 基於 RPM 的下載、安裝、配置CentOSMySql
- yum如何解除安裝已安裝的rpm並安裝本地rpm包
- 基於Linux的MySQL5.7原始碼編譯安裝LinuxMySql原始碼編譯
- Linux下Centos7以rpm方式離線安裝MySQL5.7教程以及部分報錯解決方案LinuxCentOSMySql
- 軟硬協同:基於倚天的影片雲編碼效能升級
- Linux RPM包安裝、解除安裝、升級命令講解Linux
- mysql5.7安裝_centos7MySqlCentOS
- CentOS7 安裝mysql5.7CentOSMySql
- MySQL5.5升級到MySQL5.7踩坑日記MySql
- IT 基礎升級
- 基於linux離線部署nginx,使用rpmLinuxNginx
- 升級centos7自帶的Python2.7到Python3.8CentOSPython
- 基於TRIZ理論的高效製冷系統智慧管控升級
- CentOS7 yum安裝MySQL5.7CentOSMySql
- SAP Spartacus 升級時關於 schematics 的更新
- Centos7 openssh升級到7.9p1CentOS
- centos7 ruby版本過低,升級ruby版本CentOS