MySQL升级之路(5.6-8.0)

本文详细介绍了从MySQL 5.6升级到8.0的完整过程,包括升级前的备份、确认更新内容、关闭数据库等步骤。在升级过程中,分别讲述了从5.6到5.7,再到8.0的升级策略,涉及版本之间的不兼容问题处理、错误排查及数据恢复。
摘要由CSDN通过智能技术生成

原文地址:https://www.jeremyjone.com/847/, 转载请注明。


这几天需要升级 MySQL,又折腾了半天,这个升级之路还是有一点曲折的。

升级之前

在升级之前需要做几件事情:

做好备份

  • 备份 /var/lib/mysql 路径下的所有文件

    cp -r /var/lib/mysql /var/lib/mysql_backup

  • 备份 /etc/my.cnf 文件

    cp /etc/my.cnf /etc/my_backup.cnf

  • 备份整个数据库

    mysqldump -u<username> -p --add-drop-table --routines --events --all-databases --force > data-for-upgrade.sql

确认更新内容

除了备份,还需要注意断档更新内容。主要是8.0的更新内容,详细内容可以参看 官方文档

关闭数据库

当然还需要将数据库关闭,这是在升级之前的最后步骤。

1、关闭服务

systemctl stop mysqld

2、停止数据库

mysql -u<username> -p --execute="SET GLOBAL innodb_fast_shutdown=0"
mysqladmin -u<username> -p shutdown

从 5.6 升级到 5.7

MySQL的每一次升级都很曲折,它不支持跨版本升级,需要一级一级的升,这就很麻烦。这也是因为每次升级都有断档的内容,所以需要格外谨慎,必须做好备份。

5.65.7 其实还算稳定,做好备份之后,直接升级即可。

1、下载 rpm

cd ~
wget https://repo.mysql.com/mysql57-community-release-el7.rpm

2、移除 5.6 版本

yum remove mysql-community-release

如果在后面安装 5.7 版本时提示存在冲突错误,可以使用 mysql-community-* 直接删除所有相关内容。

3、下载安装包

rpm -ivh mysql57-community-release-e17.rpm

4、更新

yum update mysql

5、启动

systemctl start mysqld

如果成功,继续向下。如果失败,可以检查一下错误。启动失败,通常报这样的一句话:

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

此时通过 systemctl status mysqld 可以查看服务的状态和基本错误信息。

通常,如果有以下错误的:

[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Failed to initialize builtin plugins.
[ERROR] Aborting

可以通过删除 /var/lib/mysql/ 文件夹中的以 ib_data 为前缀的文件修复。

如果有以下错误的:

[ERROR] Can‘t start server: Bind on TCP/IP port: Address already in use
[ERROR] Do you already have another mysqld server running on port: 3306 ?
[ERROR] Aborting
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值