因修复绿盟扫出来的一系列漏洞进行版本升级
msyql下载链接:https://dev.mysql.com/downloads/mysql/
1.选择对应linux版本下载
有两种方式,一种是用rz命令选择文件直接上传。
没有rz命令,需要先下载:
# yum -y install lrzsz
# rz
另一种是xftp ,需要下载客户端:https://www.netsarang.com/zh/all-downloads/
2.查看一下当前mysql版本
# rpm -qa|grep mysql
【我这里是vm虚拟机测试已经升级到了8.0.23】
3.备份数据库(这个很重要)也有几种备份方式。
3.1 通过mysqldump命令来进行备份,个人感觉这种备份方式最方便。
# mysqldump -uroot -p --all-databases>/你想存放的路径/备份的名称.sql 【备份全部数据库】
# mysqldump -uroot -p -wisdom>/opt/tess.sql 【备份单个数据库可指定数据库名称】
# mysqldump -uroot -p --default-character-set=utf8 wisdom>/opt/test.sql 【也可指定编码格式】
执行后可到备份的路径下查看有没有备份成功。不放心可以用另外一种备份方式再备份一遍。
3.2 通过MySQL管理工具Navicat或者sqlyog都可以进行备份
3.2.1 我这里用Navicat,右键数据库-转储sql文件-结构和数据;
3.2.2 或者也可以选择一个数据库-点击备份-点击新建备份。可以选择表或者视图一起进行备份。
4.清缓存避免升级版本产生差异
# mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
5.关闭数据库
#systemctl stop mysqld
或者
#service mysql stop
6.mysql数据库升级
# rpm -Uvh *.rpm
# rpm -Uvh *.rpm --nodeps --force
可能会报依赖检测失败的错误,后边加个 --nodeps --force
再次执行:
7.启动升级
# systemctl mysqld start
# mysql_upgrade -uroot -p 【这个命令5.7版本都可以的】
# mysqld --upgrade=NONE 【8.0.16之后用这个】
好像是权限不够,又加了一个 --user=root
# mysqld --upgrade=NONE --user=root
需要注意的是MySQL 8.0.16开始 mysql_upgrade 升级程序已经废弃
MySQL 8.0.16之后 新的升级方式,整体来讲分为2个步骤。
1.升级数据字典(DD)
2.服务器升级:升级 MySQL 系统表、升级用户表、升级 sys 表、升级帮助更新表
新的选项都表明什么?
**NONE:**不尝试进行升级
**AUTO:**默认选项,MySQL 进行数据字典升级和服务升级
**MINIMAL:**仅升级数据字典
**FORCE:**强制升级,相似旧的 mysql_upgrade –force
8.升级成功后查看版本
# mysql - V
9.数据库数据还原
数据库还原,可以随便指定一个自带的数据库,后边跟sql文件的路径。执行命令:
# mysql -uroot -p --default-character-set=utf8 数据库名 </opt/mysqlbak.sql
*所遇问题记录
我在虚拟机中先安装了一个8.0.11版本然后升级到8.0.23,这个过程可以说是顺利的,然后就去服务器进行操作,就遇到了一个升级完成后无法成功启动mysql服务的问题。搞了一下午还是没升级成功,由于时间紧急,最后还是把所有有关mysql的服务全部卸载,重新装了一遍。
1.也就是上述步骤的第七步,启动mysql服务报错:
2.这是搜到的其他人的处理方法:https://blog.csdn.net/eagle89/article/details/79918256
3.我是先卸载mysql相关服务重装了一遍,过程倒也不是太麻烦~
参考这位的博客:https://blog.csdn.net/private66/article/details/80624212
我下边做一个引用:
卸载mysql服务
1.查看mysql安装了哪些包
# rpm -qa|grep mysql
2.mysql服务关闭并卸载
# service mysqld status -- [查看mysql服务运行状态]
# service mysqld stop --[关闭mysql]
# rpm -ev mysql-5.1.73-8.el6_8.x86_64 --[rpm -ev 跟已安装的包名]
# rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64
注意:可能会抛依赖错误错 error:Failed dependencies:
,则加上 --nodeps不检查依赖关系删除
# rpm -e --nodeps 包名
3.删除遗留的mysql文件和依赖库
# find / -name mysql
# rm -rf /var/lib/mysql
4.msyql配置文件删除
# rm -rf /etc/my.cnf
5.检查一遍mysql 是否成功删除
# rpm -qa|grep mysql