尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
MySQL5.6逻辑升级到MySQL8.4的踩坑记录
MySQL5.6到MySQL8.4区别过大由于我升级的数据库结构比较简单只选择了MySQL5.7作为跳板按照官方的推荐流程应该是MySQL5.6-MySQL5.7-MySQL8.0-MySQL8.4MySQL的逻辑升级通俗的说就是把数据库里的数据导出后导入版本高的数据库中相对的本地升级是直接在原有的数据库上做版本升级一、安装注意事项MySQL 官网提供两种安装包- 标准安装包.msi 或 .dmg- 免安装压缩包解压即用如果使用免安装包需要手动添加 my.ini 配置文件否则服务无法启动。二、导出命令1.MySQL5.6-MySQL5.7导出命令mysqldump --all-databases --single-transaction --routines --triggers --events --default-character-setutf8mb4 --hex-blob -u root -p --result-filexxx.sql--all-databases导出整体数据库在MySQL5.6升级到MySQL5.7的过程中可以使用MySQL8.4不允许直接导入系统库也就无法使用了--single-transaction保证innoDB表的数据一致性导出的即执行命令这个时点的数据在导出过程中他人修改数据库产生的增量是不会导出的使用该命令最好选择业务低峰期或者将数据库修改为只读--default-character-setutf8mb4 和--result-filexxx.sql确定生成的sql文件的编码格式使用powershell默认导出的文件编码会变成utf16无法正常导入--result-file别忘客户没用result-file跑来问为什么导出来的编码还是utf16的,导入高版本时建议也把--default-character-set加上--hex-blob保护二进制数据用的将二进制数据变成十六进制存放保证数据一致2.MySQL5.7-MySQL8.4导出命令由于MySQL8.4不允许直接修改系统库所以只能拆分成数据和用户及权限两个部分的sql文分别导入了数据的导出和5.6到5.7的命令差不多就把--all-databases改成--databases 数据库名 就行了导出用户的命令mysqlpump -u root -p --exclude-databases% --users --exclude-usersmysql.sys,mysql.session,mysql.infoschema,root --result-fileusers.sqlmysqlpump,别写成mysqldump了--exclude-databases%所有数据库不导出--users导出所有用户--exclude-users...排除这些用户三、关于用户的密码先导入MySQL5.6的数据再去执行mysql_upgrade命令MySQL5.7将原来存放在Password列的密码换到了authentication_string列而MySQL5.7自带的mysql_upgrade命令能自动将密码换到authentication_string列而MySQL8.4默认使用caching_sha2_password,所以导入8.4前在my.ini文件中[mysqld]后添加上mysql_native_passwordON重启MySQL服务(其实这步多余了升级后还是要明文重新设置密码旧密码的哈希值没用了)四、关于字符集和排序规则升级完执行sql文会发现提示要把utf8mb3升到utf8mb4根据原来的数据库选择utf8mb4_general_ci还是utf8mb4_0900_ai_ci我这边原先使用的就是utf8_general_ci就直接选择utf8mb4_general_ci做升级了升级之后记得检查不直接写collate utf8mb4_general_ci很容易被误认成utf8mb4_0900_ai_ci等其他规则collation_connection默认设置是utf8mb4_0900_ai_ci在执行 WHERE 列名 中文 这类查询时会提示utf8mb4_0900_ai_ci和utf8mb4_general_ci的冲突这点实在没啥办法只能在连接设置里写个预执行语句SET NAMES utf8mb4 COLLATE utf8mb4_general_ci;保证打开workbench就将collation_connection设置成utf8mb4_general_ci五、关于安全模式我使用的是workbench8.0.36在Perferences里的SQL Editor可以设置关闭Safe Updates刚升级完没必要强求使用安全模式先保证业务能正常执行六、关于零日期刚升级完先别急着修改可以先把sql_mode改回去保证业务正常后再考虑将零日期修改成合法日期
RELATED

相关推荐

苹果手机微信视频美颜怎么设置最好 iOS 如何微信视频美颜设置

苹果手机微信视频美颜怎么设置最好 iOS 如何微信视频美颜设置

很多iOS用户折腾遍手机所有设置,依旧调不出满意的微信视频美颜。大家常用的原生人像模式、灯光调节,只能虚化背景、提亮画面,根本做不到精细化肤质修饰,素颜出镜依旧显暗沉、显瑕疵。想要适配iOS系统特性,调出高清不假…

📅 2026/8/21 4:21:53
TranslucentTB终极指南:三分钟打造Windows透明任务栏的视觉盛宴

TranslucentTB终极指南:三分钟打造Windows透明任务栏的视觉盛宴

TranslucentTB终极指南:三分钟打造Windows透明任务栏的视觉盛宴 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否厌倦了…

📅 2026/9/8 12:28:08
C盘各文件夹能不能删?一张对照表说清(建议收藏)

C盘各文件夹能不能删?一张对照表说清(建议收藏)

清 C 盘时最纠结的一步:打开 C 盘一看,几十个文件夹,哪个能删、哪个碰了要命?下面这张表是我一项项查证、亲手清过之后整理的,先给结论,能删的、别碰的、要用专门方法的分开列。看不懂的直接照着做就行。 一…

📅 2026/8/21 4:21:54
MORE NEWS

更多资讯

📰

光猫超级管理员账号密码和Telnet登陆

文章目录三大运营商默认的超级管理员账号密码移动联通电信2025.8更新:光猫救砖必要备份其他备份救砖操作动态密码如何处理初始化前的准备和初始化后的注册打开Telnet端口为user用户提权2024.03更新2024.08更新2025.08更新zte光猫超级运维工具包(自用版本…

📰

常用linux命令(更新中...)自用记录

常用命令(右边侧栏可以查看目录) 查看 #查看ip地址ip aip addr #查看系统时间date # 重启reboot # 注销logout # 关机shutdown now #清屏clear #另起一行,输入其他指令,跳出上一个运行中的指令,把上一个运行程序放到后…

📰

Vue开发工具链配置:Vetur、ESLint、Prettier在VS Code中的协同使用

写 Vue 项目也有一阵子了,前面几篇笔记记的大多是组件、路由这一类的业务代码,今天这篇笔记有点特别——不谈业务,先把 Vetur、ESLint、Prettier 三个工具在 VS Code 里的配合关系理顺。很多新手遇到的“代码高亮没有”“保存不格式化”“保存…

📰

MySQL两阶段提交:Redo-log与binlog一致性原理

1. 这不是“教科书里的两阶段提交”,而是MySQL里一次真实的崩溃抢救现场你有没有遇到过这样的情况:一条INSERT语句执行成功,返回了“Query OK”,但重启MySQL后,这条数据却凭空消失了?或者更诡异的是——数据…

📰

基于Java实现的一个FTP服务

资源下载地址:https://download.csdn.net/download/sheziqiong/85706472 资源下载地址:https://download.csdn.net/download/sheziqiong/85706472 一、系统概述 1.1 业务背景 FTP 服务提供了对文件传输的支持,Web 服务提供了可供浏览的网页…

📰

品质管理基础知识:从QC七工具到Cpk与Python实践

简介:《品质管理基础知识》是一份面向质监员、品管部员工及企业管理者的培训课件,旨在系统梳理品质管理核心框架。内容涵盖质量管理从质量检验、质量控制到全面质量管理的发展历程,提炼用数据说话、关注客户要求、预防为主等基本原则&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬