SHO酱的Blog

SHO酱的Blog

离线安装与升级 MySQL 服务

143
2023-08-04
离线安装与升级 MySQL 服务

版本信息

  • 操作系统:CentOS 7.9

  • MySQL原有版本:8.0.28 / 8.0.29

  • MySQL升级版本:8.0.34(当前8.0的最新版本)

起因

工作过程中安全部门反馈MySQL 8.0.29的安全漏洞,官方给的补丁似乎需要购买企业版的服务号,可咱用的是社区版,不知道去哪里搞到服务号;一不做二不休干脆把MySQL版本升级了,不知道新的版本是不是修正了老版本已知的安全漏洞。

过程概述

安全起见,现在本地通过虚拟环境测试一下MySQL升级过程。

注:因为生产服务器多为仅有内网环境,所以 MySQL 的安装和升级过程完全是离线状态的

  1. 安装系统 CentOS 7.9(文章中不再赘述);

  2. 安装老版本的 MySQL;

  3. 对现有数据库新建数据库、新建表、新建数据记录测试;

  4. 升级 MySQL 版本;

  5. 查看升级结果。

离线安装 MySQL 服务

下载离线安装包

登录地址 https://dev.mysql.com/downloads/mysql/ 下载 MySQL 离线安装包;

目前最新版本是8.0.34,在本例中为了测试后面的升级过程,现在的版本为8.0.28;

因为是离线安装,所以请下载标记 bundle(捆绑包)的 rpm 文件。

离线安装与升级MySQL服务01.png

安装

检测并删除系统自带的mariadb

# 查看系统自带的 mariadb
[root]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
# 卸载系统自带的 mariadb
[root]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 删除etc目录下的my.cnf
[root]# rm /etc/my.cnf

解压 tar 包

将下载的 MySQL 套件包上传到服务器中,使用 tar 命令解压

tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

安装 MySQL 服务

按照顺序依次执行如下安装命令

rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm

创建用户组和用户

groupadd mysql
useradd -g mysql mysql

初始化 Mysql

mysqld --initialize --console

修改权限

chown -R mysql:mysql /var/lib/mysql/

启动服务

systemctl start mysqld

查看初始密码

cat /var/log/mysqld.log  | grep localhost

使用初始密码登陆 mysql,修改默认密码

mysql -u root -p
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> flush privileges;

修改全网允许 root 用户访问

mysql> use mysql
mysql> update user set host = '%'  where user ='root';
mysql> flush privileges;
mysql> select host,user from user where user='root';
mysql> quit

升级

下载、上传、解压过程与安装步骤一致。

查看已安装的 MySQL 包

root:> rpm -qa | grep -i mysql
mysql-community-libs-8.0.28-1.el7.x86_64
mysql-community-common-8.0.28-1.el7.x86_64
mysql-community-client-8.0.28-1.el7.x86_64
mysql-community-server-8.0.28-1.el7.x86_64
mysql-community-client-plugins-8.0.28-1.el7.x86_64
mysql-community-icu-data-files-8.0.28-1.el7.x86_64

停止 MySQL 服务

root:> systemctl stop mysqld

根据已安装的包针对性更新

rpm -Uvh mysql-community-common-8.0.34-1.el7.x86_64.rpm \
mysql-community-client-plugins-8.0.34-1.el7.x86_64.rpm \
mysql-community-libs-8.0.34-1.el7.x86_64.rpm \
mysql-community-client-8.0.34-1.el7.x86_64.rpm \
mysql-community-server-8.0.34-1.el7.x86_64.rpm \
mysql-community-icu-data-files-8.0.34-1.el7.x86_64.rpm

启动 MySQL 服务

root:> systemctl start mysqld

安装和升级过程中可能遇到的问题

pkgconfig(openssl) is needed by...

参考

浅谈centos7 MySQL 8.0.13升级至8.0.32

Centos离线安装MySQL

离线安装openssl

CentOS 离线安装 MySQL8

【已解决】CentOS 7 安装MySQL80报错:pkgconfig(openssl) is needed by mysql-community-devel-8.0.28-1.el7.x86_64

Linux rpm 命令