Mysql 5.7 小版本升级&降级& 5.7 升级到8.0

本文详细介绍了MySQL 5.7的小版本升级和降级步骤,包括检查XA事务、设置innodb_fast_shutdown为0、关闭与启动MySQL服务、备份数据、更换二进制文件、执行inplace升级/降级以及重启服务等关键操作。同时,还提及了从MySQL 5.7升级到8.0的准备工作,如使用mysql-shell验证、备份数据、下载新版本MySQL并修改配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql 5.7 小版本升级

1.检查XA事务

# XA检查是否有值

mysql> XA RECOVER;

Empty set (0.00 sec)

# 若有值,则需要 COMMIT 或 ROLLBACK xid

# mysql> XA COMMIT xid;

# 或

# mysql> XA ROLLBACK xid;

2.innodb_fast_shutdown设置为0

通过慢速关机,在关机InnoDB前执行完全清除和更改缓冲区合并,以确保在版本之间文件格式存在差异的情况下数据文件已做好充分准备。

mysql -h localhost -u root -p -P3306 --execute="SET GLOBAL innodb_fast_shutdown=0"

3.关闭MySQL服务器

# 关闭MySQl

service mysqld stop

mysqladmin -h 127.0.0.1 -u root -p shutdown

4.升级前备份

备份前注意看下容量是否足够

# 备份下数据文件,防止有问题需回滚,备份前注意看下容量是否足够,拷贝时长看数据大小

cp -rp /data/mysql3306 /data/mysql3306_bak

5.升级 MySQL 二进制安装或软件包

# cd 到安装文件目录下

tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local

# 原来的软链

lrwxrwxrwx. 1 root root         46 Nov 12  2019 mysql -> /usr/local/mysql-5.7.34-linux-glibc2.12-x86_64 

# 删除软链

cd /usr/local

unlink mysql

# 重建软链

ln -s mysql-5.7.37-linux-glibc2.12-x86_64 mysql

# 新的软链,链接到了新版本

lrwxrwxrwx  1 root root         35 Jun 24 15:16 mysql -> mysql-5.7.37-linux-glibc2.12-x86_64  

6.启动MySQL

service mysqld start

mysqld_safe --defaults-file=/etc/my.cnf --user=mysql 2>&1

7.执行inplace升级

需要 root 最大权限

# 检查下是否当前客户端符合当前的版本,需要与当前升级到的版本相同

[root@VM_0_9_centos bin]# mysql --version

mysql  Ver 14.14 Distrib 5.7.37, for linux-glibc2.12 (x86_64) using  EditLine wrapper

[root@VM_0_9_centos bin]# mysql_upgrade --version

mysql_upgrade  Ver 2.0 Distrib 5.7.37, for linux-glibc2.12 (x86_64)

[root@VM_0_9_centos bin]# mysql_upgrade -uroot -p

Enter password:

Checking if update is needed.

Checking server version.

Running queries to upgrade MySQL server.

Checking system database.

mysql.columns_priv                                 OK

mysql.db                                           OK

mysql.engine_cost                                  OK

mysql.event                                        OK

mysql.func                                         OK

mysql.general_log                                  OK

mysql.gtid_executed                                OK

mysql.help_category                                OK

mysql.help_keyword                                 OK

mysql.help_relation                                OK

mysql.help_topic                                   OK

mysql.innodb_index_stats                           OK

mysql.innodb_table_stats                           OK

mysql.ndb_binl

### 将MySQL 8.0降级MySQL 5.7的方法与注意事项 #### 方法概述 仅支持通过逻辑降级方式(即使用`mysqldump`工具备份并恢复数据)来实现从MySQL 8.0MySQL 5.7的版本回退[^1]。 #### 数据库准备阶段 在执行具体的操作前,需确认目标环境已安装好MySQL 5.7,并理解自MySQL 5.7以来的一些变更点。例如,在MySQL 5.7中仍保留了`.frm`文件用于表定义存储;而到了更高版本这些功能可能已被移除或替代[^2]。 #### 备份现有数据库 利用`mysqldump`命令导出当前MySQL 8.0实例中的所有必要数据: ```bash mysqldump -u root -p --all-databases > alldb_backup.sql ``` 此过程会创建一个包含全部结构及记录的SQL脚本文件,适用于后续迁移工作。 #### 停止服务并清理旧版残留 停止正在运行的MySQL 8.0服务器进程,确保没有任何活动连接影响到即将进行的数据转移操作。对于某些特定配置下的启动参数调整也应在此时完成,比如修改默认字符集设置等[^3]。 #### 安装新版本软件包 按照官方指南或其他可靠资源指导部署MySQL 5.7发行版,注意选择合适的操作系统平台对应的安装包形式[^4]。 #### 导入先前保存的数据副本 当新的MySQL 5.7已经成功搭建完毕之后,就可以把之前制作好的全量备份重新加载进来: ```bash mysql -u root -p < alldb_backup.sql ``` 需要注意的是,由于不同版本间可能存在语法差异等问题,因此建议先仔细阅读相关文档说明再决定是否继续导入流程。 #### 验证系统状态正常 最后一步是要检查整个转换后的数据库能否稳定运作,包括但不限于测试常用查询语句、应用程序接口调用等功能项。另外还需特别留意权限管理方面是否有异常情况发生,因为这涉及到安全性和访问控制策略的有效实施[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值