|
|
51CTO旗下网站
|
|
移步端
  • MySQL DBA必备:MySQL 5.7升级8.0经过(全)

    每个 DBA 在办事中都会面临必发娱乐登录升级的题材,本文详细介绍MySQL 副 5.7 升级到 8.0 的经过,瞩望可以协助到大学者。

    笔者:刘少奇 来源:必发娱乐登录开发| 2020-07-31 13:55

    为什么升级到MySQL 8.0

    1.  基于安全考虑
    2.  基于性能和 稳定考虑:
    3.  mgr研制 ,并行复制writeset 等效果,性能提升
    4.  新的功能:
    5.  Hash join ,入海口函数,DDL当前,json 支持
    6.  原来环境中版本太多,联合版本
    7.  8.0本子基本已到稳定期,可以大量投入生产环境中

    升级之前需要了解

    1.     必发娱乐登录字典升级

      schema,mysql,information_schema,performance_schema,sys

      比如:电码测试 mysql_native_password → caching_sha2_password

        2.  关键词是不是兼容

      https://dev.mysql.com/doc/refman/8.0/en/keywords.html

      关键词 added in查询

        3.  SQL只是兼容

      Group by拍卖上的不兼容,传感器,存储过程

      5.6 可以跑select id,count(*)from group by name;

      5.7,8.0只是允许的 sql_mode控制

        4.  数量文件存储格式是不是可以直接升级

      Perconal 和 mysql 存储引擎一直,可以完全兼容

        5.  现有应用的丰富性是否满足

      自定义函数,一部分不规范的SQL说话等等

        6.  电码策略

    What Is New in MySQL 8.0

    表现DBA要求着力了解8.0的组成部分功能,参考:https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html

  •  Added in 补充功能
  •  Features Deprecated 弃用功能
  •  Features Removed 移除功能
  • 升级准备事项

    已经了解8.0的性状,应对升级需要事先进行检查和准备工作

    1.  高考库升级,使用验证
    2.  必发娱乐登录升级,末知问题发生
    3.  my.cnf安排信息调整
    4.  不兼容的借鉴方式,影响复制
    5.  一度平稳的筛选,趟如先升级一个下库,到全方位从库
    6.  最少停机时间,同样生产数据恢复到环境,拓展模拟升级,评估时间
    7.  怎样进行数据验证:行数,表面的多寡 等等
    8.  考虑回滚方案
    9.  必发娱乐登录备份

    升级前检查

    Mysql8.0还是提供了众多方便,不像之前一样5.6升级5.7那样。如今得以通过mysql shell拓展确认。

    https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html

    下2种方法

          
    1. #mysqlsh root:123456@192.168.244.130:3410 -e 'util.checkForServerUpgrade({"targetVersion":"8.0.19","configPath":"/etc/my3410.cnf"})';  
    2. MySQL  JS > util.checkForServerUpgrade('root@192.168.244.130:3410', {"password":"123456", "targetVersion":"8.0.11", "configPath":"/etc/my3410.cnf"}) 

    按照提示的要求开展更改

    虽然shell做的很好,但还是生活一些缺陷。

    比如以下内容都不会生活提示:

    1. basedir,

    2. sql_mode ,

    3. 半同步配置,

    4. 电码策略:default_authentication_plugin = mysql_native_password

    起来升级

    官网下载对应的tar包

    https://downloads.mysql.com/archives/community/

    下是单机升级,高可用架构下 要求先升级从库,在逐步升级主库。

    推行mysql_upgrade命令,会唤起如下:

          
    1. #/mysql8.0.19/bin/mysql_upgrade -uroot -p123456 

    在MySQL 8官方mysql_upgrade客户端现已弃用。升级客户端执行的借鉴现在由服务器完成。

    要升级,请使用较旧的多寡目录启动新的 MySQL 批办制文件。机动修复用户表。升级后不需要重新启动。

    故此必须在测试环境模拟准备对应SQL说话

    是的操作如下:

    1)登录服务器进行例行关闭:innodb_fast_shutdown是公认是1,常常认为是安全关闭

    关闭innodb数确认

          
    1. mysql> show variables like 'innodb_fast_shutdown';+----------------------+-------+| Variable_name        | Value |+----------------------+-------+| innodb_fast_shutdown | 1     |+----------------------+-------+1 row in set (0.00 sec) 

    确保数据都刷到硬盘上,改变成0

          
    1. mysql> set global innodb_fast_shutdown=0;Query OK, 0 rows affected (0.01 sec)  
    2. mysql> shutdown;Query OK, 0 rows affected (0.00 sec)  
    3. *拓展小修。 

    2)用mysql8.0.19客户端直接启动

    起先mysql劳务

          
    1. [root@ss30 bin]# /opt/mysql8.0.19/bin/mysqld_safe --defaults-file=/etc/my3400.cnf --user=mysql &  
    2. [1] 15400  
    3. [root@ss30 bin]# 2020-04-25T13:07:16.591560Z mysqld_safe Logging to '/opt/data3400/logs/error.log'.  
    4. 2020-04-25T13:07:16.636879Z mysqld_safe Starting mysqld daemon with databases from /opt/data3400/mysql  
    5. ##开拓另一番出口查看error日志  
    6. [root@ss30 ~]# tail -f /opt/data3400/logs/mysql_error.log 

    登录服务器确认

          
    1. [root@ss30 ~]# mysql -uroot -p -S /opt/data3400/mysql/mysql.sockEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 10Server version: 8.0.19 MySQL Community Server - GPLCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> select version();+-----------+| version() |+-----------+| 8.0.19    |+-----------+1 row in set (0.01 sec) 

    产业化myisam引擎

          
    1. mysql> SELECT table_schema,table_name,engine FROM information_schema.tables where engine!='InnoDB'; 

    剩下的就是检察 和 工作确认否应用正常。

    总结

    任何从升级准备开始 到结束,中间包含很多细致的上班。比如版本确认,效益确认,高考,未雨绸缪,备份,检验,高可用切换等等。最初需要投入很多精力进行准备,这样才能完成一步到位。

    升级完,从一地踏上8.0的采取旅程。

    【编纂推荐】

    1. 为什么我不希罕必发娱乐登录三范式?
    2. 我C,MySQL双主架构,原本能这么玩
    3. 还在手动整理必发娱乐登录文档?尝试这个工具
    4. MySQL同步延迟,是个问题
    5. 同事问我MySQL怎么递归查询,我懵逼了...
    【义务编辑: 庞桂玉 TEL:(010)68476606】

    点赞 0
  • MySQL  必发娱乐登录  DBA
  • 分享:
    大家都在看
    猜你喜欢
  • 订阅专栏+更多

    大数据安全运维实战

    大数据安全运维实战

    CDH+Ambari
    共20章 | 数据陈浩

    91人口订阅学习

    实操老:Jenkins接轨交付和后续部署

    实操老:Jenkins接轨交付和后续部署

    微服务架构下的无部署
    共18章 | freshman411

    188人口订阅学习

    思科交换网络安全指南

    思科交换网络安全指南

    安全才能无忧
    共5章 | 思科小牛

    110人口订阅学习

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO劳务号

    51CTO官微