ITPub博客

首页 > 数据库 > MySQL > 基于centos7的MySQL5.7的RPM本地升级

基于centos7的MySQL5.7的RPM本地升级

原创 MySQL 作者:龙山游龙 时间:2021-08-09 16:44:34 0 删除 编辑

第一部分数据库备份

在升级数据库之前,首先对数据库进行备份。可以采用冷备或热备。

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
拥有超过9年以上的MySQL/Oracle数据库领域从业经验,TB级高并发数据库的管理经验。对于MySQL/Oracle内部原理、体系结构,数据页/块结构原理有着深刻认识;对于MySQL/ORACLE新特性、分布式高可用架构和性能调优有着丰富的的实战经验。擅长故障诊断以及数据库异常打开及数据灾难挽救。

注册时间:2015-06-28

  • 博文量
    78
  • 访问量
    109784