0.绪论 html
公司为了安全须要,要将mysql版本升级至最新版本mysql5.7.21,升级以前的版本是mysql5.7.20。本文是升级过程记录。 mysql
因为yum的资源中没有mysql的安装包,所以本文选择先在mysql官网上下载rpm安装包,而后再经过yum安装。linux
根据mysql的官方说明,mysql在连续的小版本之间升级很容易,好比mysql5.5升级到5.6,本文中就更简单了,小版本都没变。sql
mysql小版本之间的升级的基本过程以下:数据库
(1)rpm包下载centos
(2)解压rpm包,并安装新版本:安全
yum install mysql-community-{server,client,common,libs}-*
(3)启动mysql服务便可:service mysqld start服务器
(4)在命令窗口执行mysql_update,解决旧版本数据跟新版本mysql的不兼容问题(注意,该命令会使用mysql用户'root'@'localhost'登陆mysql,密码为空。执行以前先确保你的mysql存在对应用户和密码,不然会报错。)spa
(5)验证升级成功与否操作系统
说明:
升级过程其实就是上述过程的第2步(yum install mysql-community-{server,client,common,libs}-*
),也就是说升级过程所有由mysql官方提供。对用户来讲,跟安装一个新的mysql过程是同样的。在yum install时,首先会监测mysql服务有没有启动,若是mysql服务启动的话,会首先将mysql服务关闭。其次,mysql会检测系统中已安装的rpm包,而且将旧的rpm包删除,而后再安装新的rom包。
值得注意的是,咱们数据库中的记录在整个升级过程当中都没有被改变。升级以后,原有的数据仍然在,这是一个很是使人开心的点。
1.升级记录截图
(1)升级以前,查看一下旧的安装包:
(2)根据服务器操做系统,在mysql官网下载指定版本的mysql rpm包。本文中要升级的服务器操做系统是centos6,所以选择下图红框中的rpm压缩包。
说明一下,mysql官方对每一个版本都提供了不少rpm包,包括rpm bundle是mysql全部rpm包的压缩包,很是方便。
(3)将rpm包上传至服务器,并解压
解压命令:tar -xvf mysql-5.7.21-1.el6.x86_64.rpm-bundle.tar
(4)将解压出的rpm包移动到一个目录下
(5)关闭服务器的mysql服务(这步能够省略,根据官方说明,mysql在更新时首先会关闭本机的mysql服务,而后再执行更新)
(6)在rpm包目录执行如下命令,直接安装5.7.21
命令:yum install mysql-community-{server,client,common,libs}-*

(7)更新完毕,重启服务便可

(8)更新命令:负责解决旧版本数据跟新版本mysql的不兼容问题
命令:mysql_upgrade
注意,该命令会使用mysql用户'root'@'localhost'登陆mysql,密码为空。执行以前先确保你的mysql存在对应用户和密码,不然会报错。
(9)登陆mysql,验证版本
(10)结果验证:查看安装的rpm包,能够看到都更新为了mysql5.7.21版本的
2.跨版本的mysql升级
以前还有一次从mysql5.1升级到mysql5.7的经历,在此一块儿记录一下。
流程跟上面的基本一致,可是有几个问题列一下:
(1)在第二步(yum install)时报错:mysql旧版本的rpm包存在yum没法解决的依赖关系,没法卸载
解决:使用yum remove命令手动卸载原有rpm包,再次安装便可
(2)yum install以后,启动mysql服务失败
缘由及解决:5.7没法读取5.1的mysql.user表,解决方法使用--skip-grant-tables参数跳过受权验证。(参考博客)
执行命令:mysqld_safe --skip-grant-tables&