原系统用的是mysql5.7.10版本,被扫出了好多漏洞,想修复只能升级到最新版
一番周折之后升级完成了,下面记录下以备后面升级使用
1.下载最新版mysql
官网:https://dev.mysql.com/downloads/mysql/
可以看到最新版为 5.7.43,果断下载
2.通过服务查看原始mysql安装信息
我这里为安装后的信息
之前的信息为
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57
从上面可以得知
程序路径为 C:\Program Files\MySQL\MySQL Server 5.7
配置文件路径为:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
打开配置文件查看关键参数
注意:路径basedir是指mysql安装路径,datadir是存放数据库文件路径
basedir="C:/Program Files/MySQL/MySQL Server 5.7/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.7/Data"
3.停止mysql,上传mysql最新版安装包并解压,把data数据库目录和 my.ini配置文件拷贝至新目录,并修改my.ini配置文件
这里有个思考:就是如何部署mysql数据库才是最合理的
是把data数据库目录和 my.ini放在mysql程序同级目录,还是专门用一个目录存储他们,每次升级修改配置指向他们即可?
其实mysql升级之后会有些功能语法上的不同,新版本数据库不一定能兼容旧版本,如果只用一个目录存放不做备份,那升级失败回滚就容易出问题
所以:
(1)如果data数据库文件不大(5G以内):建议每次升级都把 data数据库目录和 my.ini配置文件拷贝一份到新mysql程序同级目录,这样每个版本的mysql程序和data数据库目录一一对应,这让回滚轻而易举
(2)如果data数据库文件比较大(5G以上):还是建议每次升级都把 data数据库目录和 my.ini配置文件拷贝一份到新mysql程序同级目录,不过保留上一个版本的mysql data数据库目录和 my.ini作为备份即可,其他版本可以删除
操作步骤
在服务里面停止mysql服务
上传并解压新mysql目录,不建议放在C盘,放在空间更大的D盘更合适
然后把原来data数据库目录和 my.ini配置文件拷贝至新目录
修改my.ini配置文件basedir和datadir指向新目录
basedir="D:\mysql\mysql-5.7.43-winx64\"
datadir="D:\mysql\mysql-5.7.43-winx64\Data"
4.卸载旧mysql程序,安装新mysql程序
进入到原来mysql文件夹bin目录下面执行
注意:--remove后面的的 MySQL需要和服务里名称保持一致
mysqld --remove MySQL
进入到新版mysql的bin文件里面执行mysql安装
mysqld --install MySQL
启动mysql服务
net start MySQL
这个在服务里面操作也可以
5.升级mysql数据库,兼容最新版特性
mysql_upgrade -uroot -p
输入数据库密码即可
重启mysql服务
net stop mysql
net start mysql
也可以在服务里面操作
用navicat等工具登陆,验证版本是否为最新版
select version();
参考文档:
https://blog.csdn.net/solly793755670/article/details/131681532
https://blog.csdn.net/qq_41554892/article/details/131809683
https://blog.csdn.net/qq_42212501/article/details/122894158