• MySQL 5.6升级到MySQL 5.7都有什么注意事项?


    MySQL 5.6升级到MySQL 5.7都有什么注意事项?
    
    
    一、升级方式
    MySQL升级的方式一般来说有两种
    1、通过inplace方式原地升级,升级系统表
    2、通过新建实例,高版本作为低版本的从库进行滚动升级
    
    MySQL5.7版本做了非常多的改变,升级5.6到5.7时需要考虑兼容性,避免升级到5.7之后因为种种参数设置不正确导致业务受影响,建议首先逐一查看release note
    
    
    二、需要注意的参数及问题:
    1、sql_mode:MySQL 5.7采用严格模式,例如ONLY_FULL_GROUP_BY等
    2、innodb_status_output_locks:MySQL 5.7支持将死锁信息打印到error log(其实这个参数MySQL 5.6就已支持)
    3、innodb_page_cleaners:MySQL 5.7将脏页刷新线程从master线程独立出来了,对应参数为innodb_page_cleaners
    4、innodb_strict_mode:控制CREATE TABLE, ALTER TABLE, CREATE INDEX, 和 OPTIMIZE TABLE的语法问题
    5、show_compatibility_56=ON:控制show变量及状态信息输出,如果未开启show status 命令无法获取Slave_xxx 的状态
    6、log_timestamps:控制error log/slow_log/genera log日志的显示时间,该参数可以设置为:UTC 和 SYSTEM,但是默认使用 UTC
    7、disable_partition_engine_check:在表多的情况下可能导致启动非常慢
    8、range_optimizer_max_mem_size:范围查询优化参数,这个参数限制范围查询优化使用的内存,默认8M
    9、MySQL 5.7新增优化器选项derived_merge=on,可能导致SQL全表扫描,而在MySQL 5.6下可能表现为auto key
    10、innodb_undo_directory && innodb_undo_logs:MySQL 5.7支持将undo从ibdata1独立出来(只支持实例初始化,不支持在线变更)
    11、主从复制问题:MySQL5.7到小于5.6.22的复制存在bug(bug 74683)
    12、SQL兼容性问题:SQL在MySQL 5.7和MySQL 5.6环境下结果可能不一致,因此建议获取线上SQL,在同样数据的环境下,在两个实例运行获取到的结果计算hash,比较hash值做兼容性判断
    
    
    三、友情提醒
    1、升级前一定要做好备份!!!
    2、升级正式环境前提前在测试环境进行仔细测试,确认无误以后再升级正式环境。
    3、做好相应的回退方案。
  • 相关阅读:
    python分析文本文件/json
    python中文件操作
    python异常处理
    socket网络模块
    层模型--固定定位
    层模型--相对定位
    层模型--绝对定位
    什么是层模型?
    浮动模型
    流动模型/a标签换行问题
  • 原文地址:https://www.cnblogs.com/zhouwanchun/p/13141682.html
Copyright © 2020-2023  润新知