mysql 5.7 升级 8.0_MySQL 5.7升级到8.0

原地升级

原地升级包括关闭旧的MySQL服务器,用新的MySQL二进制文件或软件包替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL以及升级现有安装中需要升级的任何其余部分。

注意

如果要升级最初通过安装多个RPM软件包而产生的安装,请升级所有软件包,而不只是某些软件包。例如,如果您以前安装了服务器和客户端RPM,则不要仅升级服务器RPM。

对于某些Linux平台,从RPM或Debian软件包安装的MySQL包括对管理MySQL服务器启动和关闭的系统支持。在这些平台上,未安装mysqld_safe。在这种情况下,请使用systemd来启动和关闭服务器,而不要使用以下说明中使用的方法。

要执行原地升级:

备份好数据,包括系统库;

知晓数据库驱动、字段类型等兼容性问题;

如果使用了innodb的XA事务,在升级之前运行XA RECOVER来检查未提交的XA事务。如果返回结果,则通过XA COMMIT或者XA ROLLBACK语句来提交或者回滚XA事务;

如果存在加密的InnoDB表空间,请执行以下语句:

ALTER INSTANCE ROTATE INNODB MASTER KEY;

如果使用innodb_fast_shutdown=2来启动MySQL服务器,通过执行以下任一语句,将其配置为执行快速或慢速关闭:

SET GLOBAL innodb_fast_shutdown = 1; -- fast shutdown

SET GLOBAL innodb_fast_shutdown = 0; -- slow shutdown

通过快速关闭或缓慢关闭,InnoDB会将其撤消日志和数据文件保持在某种状态下,以防止版本之间的文件格式差异。

关闭旧的MySQL服务器。例如:

mysqladmin -u root -p shutdown

升级MySQL二进制文件或软件包。如果要升级二进制安装程序,请解压缩新的MySQL二进制分发程序包。对于基于软件包的安装,请安装新软件包。

使用现有数据目录启动MySQL 8.0服务器。例如:

mysqld_safe --user=mysql --datadir=/path/to/existing-datadir &

在上一步中,服务器将根据需要升级数据字典。现在有必要执行所有剩余的升级操作:

从MySQL 8.0.16开始,服务器将在上一步中完成此操作:在MySQL 5.7和MySQL 8.0之间的mysql系统模式中进行所需的任何更改,以便可以利用新的特性或功能。它还使MySQL 8.0的Performance Schema,INFORMATION_SCHEMA和sys模式保持最新,并检查所有用户模式与当前版本的MySQL的兼容性。

在MySQL 8.0.16之前,服务器仅在上一步中升级数据字典。MySQL 8.0服务器成功启动后,执行mysql_upgrade来执行其余的升级任务:

mysql_upgrade -u root -p

然后关闭并重新启动MySQL服务器,以确保对系统表所做的所有更改均生效。例如:

mysqladmin -u root -p shutdown

mysqld_safe --user=mysql --datadir=/path/to/existing-datadir &

第一次启动MySQL 8.0服务器时(在较早的步骤中),可能会在错误日志中注意到有关未升级表的消息。如果mysql_upgrade已成功运行,则第二次启动服务器时不应出现此类消息。

注意

升级过程不会升级时区表的内容。如果升级过程使用mysql_upgrade(即MySQL 8.0.16之前的版本),则该过程也不会升级帮助表的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值