0%

mysql | 如何从 5 过渡到 8

公司中经常有测试相关的人,需要将 5 过度到 8 版本,但是,总是会出现这样那样的问题,这里根据我的经验进行汇总。

注意,环境均在 win10 上。

卸载 mysql5「默认 exe 安装方式」

首先,很难把 mysql5 卸载干净,总是会出现这样那样的残留,但是,我觉得问题不大。究其原因,因为绿色版本安装的时候,会重新把 MySQL 指向你安装的版本,即便是卸载不干净也是不耽误使用。

但是,为了少出错,还是卸载干净的好。

停止服务

win + R 输入 services.msc 。停掉 MySQL 或者 MySQL80 服务。

为什么会有 MySQL 或者 MySQL80 呢?这两个都是 mysql 的服务,只不过 exe 安装方式,默认 mysql 服务的名字叫做 MySQL80,而有时候你会自定义这个名字,或者绿色安装的时候你的配置文件写的服务名字是 MySQL,参考 安装 mysql 中 win10安装过程 绿色安装版本「推荐」的 「将mysql注册为windows系统服务」的执行命令。

卸载程序

win10 自带的卸载程序,把相关的程序都卸载掉。

删除 MySQL 相关文件和目录

  • C:/ProgramData/MySQL/
  • C:\Program Files\MySQL
  • C:\Program Files(x86)\MySQL

上面的文件夹有就删除,没有的话,可以看看 my.ini 配置文件中的路径是什么,找不到的话,就不管了。

删除注册表

win + R 输入 regedit ,删除

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 文件夹
  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 文件夹
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL

有就删除,没有就不用管

重启

所有的弄完后重启。

ps: 从道理上来讲,可能已经卸载干净了,但是,总会有或多或少的残余或者不知名情况,我觉得不用过于纠结。

检测 mysql 残留

为什么还要检测 mysql 残留呢?

考虑这样一种情况,你电脑上的 mysql 根本不是单独安装的,而是某一个程序中的一个组件,所以,即便是你把程序卸载了,但是,那个组件一开启还是会重新安装 MySQL。具体案例请看 mysql | 记录一次远程协助安装 mysql 的经历

可以通过 MySQL client 或者 Nvicat 进行检测。

安装 mysql 绿色安装

具体请参考 安装 mysql win10安装过程 绿色安装版本「推荐」。

可能出现的错误

这是因为 mysql5 的密码连接方式是明文连接,但是 8 以后,默认加密连接。但是,你的 nvicat 有可能是原来的连接 5 的配置,或者没有对 8 进行更改。

如果,只是本地使用的话,可以让 mysql8 的加密方式进行降级,变成明文连接。

  • mysql -uroot -p
  • ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  • FLUSH PRIVILEGES;

命令毫无反应

任何 MySQL 命令都毫无反应,没有成功,也没有失败。

一般就解决了。

请我喝杯咖啡吧~