序
昨天突然看到MySQL有新版本发布,而我作为一个有着“极客精神”的运维人员,肯定是要升级滴!于是下班后就抽空将本网站使用的数据库升级到了新版本,然后就有了今天的升级文档。
版本升级说明
MySQL 社区版 8.0.26 -> MySQL 社区版 8.0.27
升级方法介绍
虽然我的英文水平排在全国的十几亿位,但我还是决定查看官方升级文档。因为适合我的可能不适合你,并且使用网上其他博主写的的流程也可能会让你产生误解或歧义。这句话不是说其他人写的不好,反之,我觉的网络上任何一个博主写的都比我好。只是我个人认为,最好的学习方式是阅读官方文档,当然,也可以结合网络上其他博主发布的文档一起阅读,来更快的让自己理解官方文档。最重要的就是,必须实践。
说的有点跑题了,转到官方文档上,啊,不是,转到升级文档上来。通过查询官方文档的升级文档后,我发现不同的安装方式还对应不同的升级步骤。由于我是使用二进制包安装的数据库,于是就简单看了下关于二进制包升级的方法。
基于二进制包安装的MySQL数据库升级有三种方法:
- In-Place Upgrade(就地升级)
- Logical Upgrade(逻辑升级)
- MySQL Cluster Upgrade(集群升级)
这三种方法中,就地升级方式,简单理解起来就是使用新的二进制包指定原来的数据目录启动;逻辑升级方式,就是通过mysqldump备份旧数据,再重新安装个新的数据库并将数据导入;集群升级,由于我个人暂时还没有用到,就暂时没看(其实还是偷懒了)。
阅读官方文档后,结合我个人的使用场景,就决定采用最简单的就地升级方式。(还是懒)
升级步骤
在升级之前,我们除了升级步骤外,还需要注意数据库的版本。因为MySQL 8.0.16之前的版本中,二进制包只包含数据字典,在之后的版本中才包括对系统表的更改和架构的升级等。因此,在使用MySQL 8.0.16之前的版本升级到新版本时,除了使用新的二进制启动外,还需要使用mysql_upgrade命令执行其他任务。
好,看过这里后,我觉得我行了,开干吧!
1、下载二进制包
升级也好,安装也好,第一步肯定是要先下载MySQL的安装包。由于我的服务器是能访问外网的,所以就直接复制了官网的下载链接,然后使用服务器中的wget命令下载到服务器中。如果你的服务器是内网,可能就需要手动下载好后,再上传到服务器中。
[root@localhost src]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-el7-x86_64.tar
2、解压tar并重命名
服务器中有MySQL的二进制包后,我们就可以直接解压了。压缩包中有三个文件,解压后就能在当前目录下看到三个tar.gz文件,这三个文件分别是mysql-test、mysql、mysql-router。我们只需要再解压mysql的tar.gz包就行了,至于说mysql-test,一看就是测试用的,另一个mysql-router,一看我也不知道。
解压
[root@localhost src]# tar xvf mysql-8.0.27-el7-x86_64.tar
[root@localhost src]# tar xvf mysql-8.0.27-el7-x86_64.tar.gz
解压完后,就到了重命名了。重命名这一步呢,对你们来说,做不做都无所谓。欸!别激动,别激动,重命名的原因只是我自己不喜欢mysql名称后面跟上版本号。如果你也要跟我一样改名称,得记得将旧的mysql目录给改个名称,不然报错可别怪我啊!(我这里是删除旧的目录,然后直接改名的。)
[root@localhost src]# mv mysql-8.0.27-el7-x86_64 mysql
3、关闭旧数据库并启动新数据库
重命名后,接下来的事情就简单了。关闭旧的数据库,再使用新的数据库的mysqld_safe指定旧的数据目录启动。这里理解起来很容易,就不多哔哔了。
关闭MySQL数据库
[root@localhost src]# mysql/bin/mysqladmin -uroot -p shutdown
启动mysqld_safe
[root@localhost src]# mysql/bin/mysqld_safe
启动成功后,只要数据库没有报错,使用mysql命令连接到命令行就可以看到新的版本号了。如果你的不幸升级失败了,那么就一点点的排查日志报错吧!(哈哈哈哈哈!无情嘲笑)
附上升级完截图:
评论区