mysql升级到5.7会出现啥问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql升级到5.7会出现啥问题相关的知识,希望对你有一定的参考价值。

mysql升级到5.7会出现什么问题
首先要考虑升级是否能解决或优化在当前版本中遇到的问题
5.6迁移5.7的兼容性问题可以查看mysql的官方文档:
参考技术A 1. 下载 5.7.30 的 zip 包并解压到新的目录。
2. 安装 Visual C++ 2012/2013(或更多版本)。
3. 停应用,停止 5.6 实例(可以通过停服务来操作,停止服务前建议记录一下 GTID 或 binlog file 和 position 位置),删除服务。
4. 备份一份 5.6 实例的 datadir,包括 binlog(整个目录 copy 到别的目录存放)。
5. 拷贝 5.6 实例的 datadir 和 my.ini 到 5.7 实例 basedir 目录,调整并优化参数值(注意要确保路径一致,确认已开启 5.7 新特性相关参数,如增强半同步、MTS 等)。
6. 修改系统环境变量,把可执行路径指向 5.7 实例的 basedir/bin。
7. 启动 5.7 实例,创建服务并启动。
8. 验证服务端、客户端版本是否正确。
9. 确认无误后,执行 mysql_upgrade 升级数据字典(会升级系统库:mysql,ps,sys,没有会重建)。
10. 重启实例。
11. 再次校验 5.7 的参数,尽量保持与 5.6 的兼容,尤其要注意 sql_mode 的默认值对业务的影响。
12. 清理 5.6 实例的 basedir 和 datadir 目录(可选)。
13. 如果是主从环境,还要考虑 slave_net_timeout 参数默认值改变带来的影响(主库 error 日志中出现 “ER_RPL_ZOMBIE_ENCOUNTERED” 的报错)。
在 5.7.7 以前,该参数默认是 3600s,之后改为了 60s,需要重新执行 change master to 语句,并且显式指定 master_heartbeat_period=xx,因为从 5.7.4 开始,只有执行 reset slave 才能将其重置为默认值(slave_net_timeout 值的一半)。另外提一句,也是从 5.7.4 开始,执行 change master to 语句时,可以不用先停止复制线程了。

如果 php mysql 客户端与 mysql 服务器版本不匹配会出现啥问题?

【中文标题】如果 php mysql 客户端与 mysql 服务器版本不匹配会出现啥问题?【英文标题】:What problems can arise if php mysql client doesn't match the mysql server version?如果 php mysql 客户端与 mysql 服务器版本不匹配会出现什么问题? 【发布时间】:2010-10-14 04:16:21 【问题描述】:

我有两个 mysql 服务器 5.1.32 和 5.0.77 安装(同一台机器,os x leopard)。我的 php mysql 扩展是针对 5.0.77 编译的(这是最简单的事情,我是在安装 5.1.32 后完成的)。我正在使用 5.1.32 安装,因为那是我编译我的 python MySQLdb 扩展时所针对的。如果有的话,我不会在 php 中编码。我的php安装主要使用的是phpmyadmin。 phpmyadmin 针对 5.1.32 的 mysql 服务器以这种方式工作,但显示警告:

“您的 PHP MySQL 库版本 5.0.77 与您的 MySQL 服务器版本 5.1.32 不同。这可能会导致不可预知的行为。”。

我的问题。我可以期待 phpmyadmin 出现这种设置的任何严重问题吗?

我正在使用最新版本的 phpmyadmin,它通过 tcp 连接(不是套接字文件)进行连接。

【问题讨论】:

【参考方案1】:

您应该没有任何问题,所有查询都是通过 TCP 发送的,它们都非常标准。

我认为唯一不好的是你不能使用某些功能。

【讨论】:

【参考方案2】:

如果开发人员受人尊敬,在较新的服务器版本上使用较旧的客户端版本应该不会导致任何软件出现问题。

根据开发人员的政策,使用较新的客户端版本和较旧的服务器版本可能会导致问题。

【讨论】:

【参考方案3】:

您应该没问题,但是两个版本之间的某些功能/错误/怪癖可能会有所不同。我建议查看 MySQL 从 5.0.77 到 5.1.32 的变更日志(如果你有时间的话,可以查看过去)。

在 MySQL 4.11 版本和更高版本之间存储的 MySQL 用户密码连接到低于该版本的版本时存在问题。既然你已经这么远了,我敢肯定不是这样。作为参考,这是一个简单的修复方法,涉及使用 OLD_PASSWORD() 更新用户密码。

【讨论】:

以上是关于mysql升级到5.7会出现啥问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql5.6升级到5.7的注意事项

mysql从5.6升级到5.7后出现 Expression #1 of ORDER BY clause is not in SELECT list,this is incompatible with

如何将 MySQL 5.5.40 升级到 MySQL 5.7

mysql5.5升级到5.7

将 MySQL 5.6 升级到 5.7

MySQL 从 5.6 升级到 5.7 的 Grails 更改