背景:请安全公司来扫描系统发现了mysql版本低,有漏洞,需要升级版本
不哔哔,直接上步骤:
1.备份数据库数据
# 1.查看datadir位置,进行数据文件备份
[root@localhost ~]# cat /etc/my.cnf |grep datadir
#datadir=/var/lib/mysql
datadir=/file/mysql
[root@localhost ~]# cp -pr /file/mysql/ /file/mysql.bak
# 2.备份配置文件
[root@localhost ~]# cp /etc/my.cnf /etc/my.cnf.bak
# 3.备份sql数据
[root@localhost ~]# mysqldump -uroot -p --opt --socket=/file/mysql/mysql.sock --all-databases > /root/backup/mysqlbackup.20191226.sql //备份很重要,防止升级失败
#上述步骤3中--socket= 文件路径;这里的文件路径可以通过命令 cat /etc/my.cnf 来看到
注:上述步骤3中的“备份sql”数据可以通过数据库工具dbeaver可视化操作,一直下一步就行
2.开始升级
2.1 准备安装包:
2.1.1 下载安装包链接
MySQL最新版本下载地址: https://dev.mysql.com/downloads/mysql/
历史版本下载: https://downloads.mysql.com/archives/community/
2.1.2 确认CentOS的glibc版本
[root@lwej opt]# rpm -qa | grep glibc
2.1.3 下载Mysql
2.2 上传安装包并升级
2.2.1 查看当前mysql版本
2.2.2 停止当前运行mysql
[root@localhost ~]# service mysqld stop
2.2.3 将下载好的压缩包导入(8.0.33),解压压缩包
[root@localhost ~]# sudo tar -xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/
2.2.4 修改之前的文件名,将mysql改为mysqlold
[root@localhost ~]# sudo mv /usr/local/mysql/ /usr/local/mysqlold
2.2.5 修改新解压的文件名
[root@localhost ~]# sudo mv /usr/local/mysql-8.0.33-linux-glibc2.17-x86_64-minimal/ /usr/local/mysql
2.2.6 修改配置文件
#请注意!!!
#这儿修改配置文件的前提是:datadir目录在下述mysqlold中,如果datadir是单独在其他目录下,就可以跳过此步骤!
[root@localhost ~]# sudo vim /etc/my.cnf
修改前: datadir=/usr/local/mysql/data
修改后: datadir=/usr/local/mysqlold/data
2.2.7 拷贝启动文件到/etc/init.d/下并重命名为mysqld
[root@localhost ~]# sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2.2.8 增加执行权限
[root@localhost ~]# sudo chmod 777 /etc/init.d/mysqld
2.2.9 删除之前的软连接
[root@localhost ~]# rm -rf /usr/bin/mysql
2.2.10 创建新的软连接
[root@localhost ~]# sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
2.2.11 启动mysql
[root@localhost ~]# service mysql start