赞
踩
这里介绍的是对于MySQL,RPM包升级的两种方式
提示:以下是本篇文章正文内容,来自生产案例,适用RPM包部署的MySQL
这里是基于MySQL5.7.29->MySQL5.7.37的案例来做讲解:
[root@mysql ~]# rpm -qa|grep -i mysql
mysql-community-libs-5.7.29-1.el7.x86_64
mysql-community-server-5.7.29-1.el7.x86_64
mysql-community-common-5.7.29-1.el7.x86_64
mysql-community-libs-compat-5.7.29-1.el7.x86_64
mysql-community-devel-5.7.29-1.el7.x86_64
mysql-community-client-5.7.29-1.el7.x86_64
[root@mysql ~]#
注意:根据需要下载对应相关的包,我这里是升级到5.7.37
推荐下载路径清华源,因为官方在国外,清华源是国内的访问速度快
地址:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
#我这里已经下载好了
[root@mysql mysql5737]# ll
总用量 212048
-rw-r--r-- 1 root root 26670472 12月 16 10:01 mysql-community-client-5.7.37-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 318884 12月 16 10:01 mysql-community-common-5.7.37-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 4122424 12月 16 10:01 mysql-community-devel-5.7.37-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 2474780 12月 16 10:02 mysql-community-libs-5.7.37-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 1264836 12月 16 10:02 mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 182274360 12月 16 10:02 mysql-community-server-5.7.37-1.el7.x86_64.rpm
根据实际情况选择备份方式,数据量大就用物理工具,数据小就用原生自带的即可,这里就不多做介绍
# 备份数据库
mysqldump -u$MYSQL_ADMIN_USER -p $MYSQL_ADMIN_PASSWOR --all-databases --default-character-set=utf8 > /data/backup/databases.sql
# 备份配置文件
cp /etc/my.cnf /etc/my.cnf.bak
systemctl stop mysqld.service
rpm -qa | grep -i mysql | xargs rpm -ev --nodeps
# 按照顺序执行
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm
systemctl start mysqld.service
解释:mysql_upgrate进行系统数据库表检测,检测是否兼容,如果发现问题,则试图对其进行修复
# 以下全是ok代表没有问题 [root@mysql mysql5737]# mysql_upgrade -u$MYSQL_ADMIN_USER -p $MYSQL_ADMIN_PASSWOR mysql_upgrade: [Warning] Using a password on the command line interface can be insecure. Checking if update is needed. Checking server version. Running queries to upgrade MySQL server. Checking system database. mysql.columns_priv OK mysql.db OK mysql.engine_cost OK mysql.event OK mysql.func OK mysql.general_log OK mysql.gtid_executed OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.innodb_index_stats OK mysql.innodb_table_stats OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.proxies_priv OK mysql.server_cost OK mysql.servers OK mysql.slave_master_info OK mysql.slave_relay_log_info OK mysql.slave_worker_info OK mysql.slow_log OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK The sys schema is already up to date (version 1.5.2). Checking databases. sys.sys_config OK Upgrade process completed successfully. Checking if update is needed.
注意:如果数据有问题,可以利用备份好的sql文件,导入到数据库进行恢复
## 看到已经升级到指定版本 [root@mysql mysql5737]# mysql -uroot -p密码 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.37 MySQL Community Server (GPL) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
提示:这种方法很方便,通过指定mysql版本信息进行更新,没有第一种方式复杂,假如有自己的yum服务器,就上传至yum服务器,或者能连外网直接指定就行
mysqldump -u$MYSQL_ADMIN_USER -p $MYSQL_ADMIN_PASSWOR --all-databases --default-character-set=utf8 > /data/backup/databases.sql
cp /etc/my.cnf /etc/my.cnf.bak
[root@mysql ~]# rpm -qa|grep -i mysql
mysql-community-libs-5.7.29-1.el7.x86_64
mysql-community-server-5.7.29-1.el7.x86_64
mysql-community-common-5.7.29-1.el7.x86_64
mysql-community-libs-compat-5.7.29-1.el7.x86_64
mysql-community-devel-5.7.29-1.el7.x86_64
mysql-community-client-5.7.29-1.el7.x86_64
[root@mysql ~]#
提示:可以在此连接查询相关的版本信息包名https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
一般yum源是无法直接进行指定更新,需要修改成清华源并且加一条路径(自己有yum服务器则不用,上传包yum服务器就像),如下:
提示:可以直接复制,先把原有的文件进行备份,替换完后需要执行以下操作
yum clean all
yum makecache
[root@mysql yum.repos.d]# cat CentOS-Base.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7 #released updates [updates] name=CentOS-$releasever - Updates baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/ baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus gpgcheck=0 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
yum update -y mysql-community-server-5.7.37-1.el7.x86_64 \
mysql-community-common-5.7.37-1.el7.x86_64 \
mysql-community-libs-5.7.37-1.el7.x86_64 \
mysql-community-libs-compat-5.7.37-1.el7.x86_64 \
mysql-community-devel-5.7.37-1.el7.x86_64 \
mysql-community-client-5.7.37-1.el7.x86_64 \
数据库已经更新成指定的版本了
[root@Template yum.repos.d]# rpm -qa|grep mysql
mysql-community-libs-5.7.37-1.el7.x86_64
mysql-community-devel-5.7.37-1.el7.x86_64
mysql-community-common-5.7.37-1.el7.x86_64
mysql-community-client-5.7.37-1.el7.x86_64
mysql-community-libs-compat-5.7.37-1.el7.x86_64
mysql-community-server-5.7.37-1.el7.x86_64
systemctl restart mysqld.service
注意:全是ok说明没有问题,进入数据库查看数据是否正常或者访问业务页面看是否正常,数据不正常可以利用备份好的sql文件进行恢复
[root@mysql yum.repos.d]# mysql_upgrade -uroot -pLK@szgdjzc2022. mysql_upgrade: [Warning] Using a password on the command line interface can be insecure. Checking if update is needed. Checking server version. Running queries to upgrade MySQL server. Checking system database. mysql.columns_priv OK mysql.db OK mysql.engine_cost OK mysql.event OK mysql.func OK mysql.general_log OK mysql.gtid_executed OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.innodb_index_stats OK mysql.innodb_table_stats OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.proxies_priv OK mysql.server_cost OK mysql.servers OK mysql.slave_master_info OK mysql.slave_relay_log_info OK mysql.slave_worker_info OK mysql.slow_log OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK The sys schema is already up to date (version 1.5.2). Checking databases. sys.sys_config OK Upgrade process completed successfully. Checking if update is needed. [root@mysql yum.repos.d]#
两种方法都是用于RPM安装mysql的升级方式,根据需要选择适合的方式进行升级,升级前一定要做好备份!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。