0


Linux 环境下mysql8.0.35升级到mysql8.0.39

每季度漏扫的过程中,扫出mysql8.0.35有安全漏洞,具体漏洞描述:远程主机上安装的 MySQL Server 版本受到 2024 年 1 月 CPU 通报中提到的多个漏洞的影响。根据漏洞内容,对mysql进行升级。

一、下载mysql8.0.39安装包

官方下载地址:MySQL :: Download MySQL Community Server

这里我选择的是.xz格式的包。

根据自己的Linux 版本号,去选择对应的版本下载;

ldd --version 查看自己对应的版本号。

​ 如果有人不知道自己Linux 是否x86 或者64 可以用如下命令查看:uname -m

下载后,上传到自己对应的安装目录;

二、开始升级操作

1)首先如果mysql 在启动状态,先停止mysql (做这步之前,记得自己备份数据,因为我做了快照,这里没有具体表明做数据库备份。)

由于我做了环境变量设置,我可以直接操作:

service mysql stop

如果没有做环境变量,需要用如下命令来停止:

sudo systemctl stop mysql

如果上述命令,都无法进行停止操作,用如下命令

ps -er|grep mysql 查看当前运行的mysql进程,根据进程直接kill掉所有mysql 进程服务。

2)解压刚刚下载的文件

tar -Jxvf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz

备份:my.cnf、my.cnf.d

mv my.cnf my.cnf.bakmv

mv my.cnf.d my.cnf.d.bak

解压后,把原有mysql文件夹 备份 mv mysql-8.0 mysql-8.0.bak

把解压后的文件夹名称变更成mysql-8.0

mv mysql-8.0.39-linux-glibc2.17-x86_64 mysql-8.0

3)变更完后执行

进入刚刚解压的mysql-8.0/bin目录下。执行如下语句;

./mysqld --user=mysql --lower-case-table-names=1 --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize

执行完后会得到一个临时密码,如果没有临时密码,进入目录cd /etc

编辑:my.cnf 文件

vi my.cnf ,在[mysqld]下面 增加一行代码:skip-grant-tables 不验证root密码:

wq! 结束编写;

4)启动mysql,开始调整密码及权限

进入/etc目录,把刚刚备份的my.cnf.bak、my.cnf.d.bak 重新变更名称

mv my.cnf.bak my.cnf

mv my.cnf.d.bak my.cnf.d

把刚刚mysql-8.0文件夹、/etc/my.cnf 都给到mysql用户组和root用户组权限。(这里注意,如果你的用户组,不叫mysql,或者不是root。根据自己实际情况来给予用户组权限。不然会重启不起来)

chown -R root:root /usr/local/mysql/mysql-8.0

chown -R mysql:mysql /usr/local/mysql/mysql-8.0

sudo chmod 644 /etc/my.cnf

sudo chown mysql:mysql /etc/my.cnf

sudo chown root:root /etc/my.cnf

开始启动mysql

service mysql start

mysql -u root -p临时密码(ps:

因为备份了原有数据库,我们进行这里进行了还原配置文件,如果临时密码错误,建议用原有mysql的密码进行登录。

)

如果上述方案都不行,且没有临时密码,直接使用mysql -u root登录(这里登录的原则,是要在my.cnf 文件里面[mysqld]下面 增加一行代码:skip-grant-tables 不验证root密码:)

进入mysql 后,修改mysql root账户权限

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

flush privileges;

quit;

重新登录 mysql -u root -p新密码 登录

设置远程连接

use mysql;

update user set host='%' where user = 'root';

flush privileges;

在这里,我们可以在Linux系统里面直接通过selelct version();查看mysql 版本;

因为远程端口已经打开,也可以用navicat 链接数据库,通过selelct version(); 查看数据库新版本

接下来,还原原有数据库;此次数据库升级完成。

标签: linux 数据库 mysql

本文转载自: https://blog.csdn.net/yuanjun242/article/details/140921320
版权归原作者 yuanjun242 所有, 如有侵权,请联系我们删除。

“Linux 环境下mysql8.0.35升级到mysql8.0.39”的评论:

还没有评论