7

mysql | 如何从 5 过渡到 8

 1 year ago
source link: https://benpaodewoniu.github.io/2023/01/03/mysql16/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

公司中经常有测试相关的人,需要将 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安装过程 绿色安装版本「推荐」。

可能出现的错误

Navicat连接MySQL数据库的1251错误

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

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

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

命令毫无反应

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

一般就解决了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK