讲师中心 微信公众号
AI工具推荐 视频效率加速

mysql如何进行小版本平滑升级_mysql原地升级步骤

浅浩吖_8561

浅浩吖_8561

发布时间:2026-03-08 08:21:59

|

796人浏览过

|

来源于php中文网

原创

MySQL小版本原地升级可行是因为同主版本内数据格式与系统表结构兼容,只需替换二进制文件并执行mysqld --upgrade=FORCE重启;须确保不跳版本、不混发行版,并完成空间、引擎、SQL模式三项检查。

mysql如何进行小版本平滑升级_mysql原地升级步骤

MySQL 小版本升级为什么能原地做

因为同一大版本下的小版本(比如 8.0.33 → 8.0.34)是向后兼容的:数据文件格式没变、系统表结构没变、mysqld 启动时能直接识别旧数据目录。这不是“迁移”,而是“替换二进制文件 + 重启服务”。但前提是——你没跳过中间小版本,也没混用不同发行版(比如从 Oracle 官方包切到 Percona Server)。

常见错误现象:mysqld 启动失败,报错 Table 'mysql.func' doesn't exist 或 Unknown table engine 'InnoDB',基本都是跳版本或未运行 mysql_upgrade(新版已弃用,实际应执行 mysqld --upgrade=FORCE)。

  • 只适用于同一主版本内升级(5.7.x → 5.7.y,8.0.x → 8.0.y),跨主版本必须停机迁移
  • 确认当前 mysql --version 和目标包的 mysqld --version 输出是否都落在 8.0.* 这类一致主版本下
  • 官方 tar.gz 包和系统包管理器(apt/yum)升级行为不同:后者可能自动执行 --upgrade,前者必须手动触发

原地升级前必须做的三件事

不是“备份完就能上”,而是备份只是底线。真正决定成败的是这三项检查:

Mysql Skill 1.0.0 (3)
Mysql Skill 1.0.0 (3)

MySQL 数据库管理技能,能够通过自然语言查询和管理数据库,支持 SELECT/INSERT/UPDATE/DELETE、表管理、备份恢复等操作。当用户提及 MySQL、数据库查询、建表或数据备份时使用此技能。

下载
  • 检查 datadir 所在文件系统剩余空间 ≥ 当前 ibdata1 + ib_logfile* 总和的 2 倍(升级过程会写临时日志、重建部分系统表)
  • 确认所有表引擎为 InnoDB 或 CSV/MEMORY;MyISAM 表在 8.0.34+ 已被禁用,升级会失败
  • 执行 SELECT VERSION(), @@sql_mode;,若返回 STRICT_TRANS_TABLES 以外的严格模式(如含 NO_AUTO_CREATE_USER),需提前清理——该模式在 8.0.11+ 已移除,升级时会报错

升级命令执行顺序不能错

顺序错了轻则启动卡住,重则元数据损坏。核心原则:停服务 → 换二进制 → 修权限 → 强制升级 → 启服务。中间任何一步跳过或颠倒,都会让 mysqld 拒绝启动。

  • 停服务:systemctl stop mysql(或 service mysqld stop),确认 ps aux | grep mysqld 无残留进程
  • 替换二进制:cp /path/to/new/mysqld /usr/sbin/mysqld,注意保留原 mysqld_safe(如使用)和配置文件位置不变
  • 修复权限:chown -R mysql:mysql /usr/sbin/mysqld,尤其当新包解压自 root 用户时,否则启动报 Permission denied
  • 强制升级:mysqld --datadir=/var/lib/mysql --upgrade=FORCE(路径按实际改),不加 --upgrade 参数会导致后续启动失败

升级后第一件事不是连业务,而是验证元数据

很多团队升级后立刻切流量,结果半小时后发现 performance_schema 表缺失或 information_schema 字段类型异常。这是因为 --upgrade=FORCE 只保证系统表结构就绪,不校验业务表一致性。

  • 先连本地:mysql -u root -S /var/run/mysqld/mysqld.sock,避免走网络层干扰判断
  • 快速验证:SELECT COUNT(*) FROM mysql.user;(非空)、SHOW ENGINES;(InnoDB 行 State = YES)、SELECT * FROM performance_schema.setup_actors LIMIT 1;(不报错)
  • 如果业务用到 mysql_innodb_cluster_metadata 库(Group Replication / InnoDB Cluster),必须运行 mysqlsh --sql -e "ALTER INSTANCE RESTART" 触发元数据刷新

最易被忽略的是 slow log 格式变更:8.0.30+ 默认启用 log_output='TABLE',但旧配置若设了 slow_query_log_file,升级后会静默失效。得手动删掉该配置项再重启。

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2533

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

1519

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

895

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

3612

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

6248

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

1319

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

6511

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

5582

2023.08.14

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

0

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 194人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn