mysql5.7保留数据升级到8.0



我发现网上关于MySQL5.7升级到8.0的博客写的很不全,没找到写的详细的过程
自己更新了一把,下面是详细过程

我是使用ZIP文件升级的

个人博客:https://abilish.top

1、官方文档:https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html#windows-upgrading-zip-distribution

下载、安装的过程,官网文档写的很清楚了,照着一步步来就行

替换原来的mysql文件夹,并更改文件夹名字(主要是更改版本号,以免混淆)

下面是需要更改的地方

2、更改环境变量,path中有两个地方需要更改,一个是 mysql文件夹,一个是mysql文件夹下的bin目录。其他情况请自行变化。在这里插入图片描述

这里是因为更改了文件夹的名字,所以需要更新一下

3、配置一下 my.ini 文件(原my-default.ini配置文件)

my.ini 文件在

### 升级 MySQL 5.7数据8.0 的注意事项 #### 字符集设置 在升级过程中,为了避免新旧对象字符集不一致的情况,建议在配置文件中明确设置字符集和校验规则为旧版本的字符集和比较规则[^1]。例如,可以在 `my.cnf` 文件中添加以下内容: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci ``` #### 密码认证插件变更 MySQL 8.0 默认使用 `caching_sha2_password` 认证插件,这可能导致旧应用程序无法连接数据库。为了兼容性,可以将用户认证插件更改为 `mysql_native_password`,通过以下 SQL 命令实现: ```sql ALTER USER 'your_user'@'host' IDENTIFIED WITH mysql_native_password BY 'your_password'; ``` 此操作确保了与旧版本客户端的兼容性[^1]。 #### SQL 模式支持问题 MySQL 8.0 不再支持 `NO_AUTO_CREATE_USER` 的 SQL 模式。如果当前配置中包含此模式,需要从 `sql_mode` 中移除该选项以避免升级后的问题[^1]。可以通过以下命令检查并修改 SQL 模式: ```sql SELECT @@sql_mode; SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,...'; -- 移除 NO_AUTO_CREATE_USER ``` #### 系统表升级MySQL 8.0.16 版本之前,必须手动执行 `mysql_upgrade` 工具来完成系统表的升级。而在 8.0.16 及之后的版本中,这一过程由 `mysqld` 自动完成[^1]。确保在升级前了解目标版本的具体要求。 #### 升级路径 官方强烈建议从 MySQL 5.7 升级8.0 时,先将当前的 5.7 版本升级到最新的 GA 版本(如 5.7.31),然后再进行到 8.0升级。直接从 MySQL 5.6 或更早版本升级8.0 是不支持的[^1]。 #### 小版本升级 在同一 GA 系列内,支持从小版本到大版本的升级,例如从 8.0.x 升级8.0.y。但不支持涉及开发状态非 GA 版本的升级,也不建议跨多个小版本直接升级[^1]。 #### 环境变量配置 如果在同一台机器上同时安装了 MySQL 5.78.0,需注意环境变量的优先级。确保 MySQL 5.7 的配置路径在 MySQL 8.0 之前,否则可能会误执行 8.0 的指令[^2]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值