每季度漏扫的过程中,扫出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(); 查看数据库新版本
接下来,还原原有数据库;此次数据库升级完成。
版权归原作者 yuanjun242 所有, 如有侵权,请联系我们删除。