• 2.Mysql升级


    1.背景介绍

      当前随着Mysql版本的迭代,Mysql的性能也是越来越好且新版中又添加了新的特性,因此对于目前服务器上的低版本Mysql升级也是一件刻不容缓的事情了! 

    2.升级前知道的事情

    • 支持从 MySQL 5.7 升级到 8.0。但是,仅在正式发布 (GA) 版本之间支持升级。对于 MySQL 8.0,需要从 MySQL 5.7 GA 版本(5.7.9 或更高版本)升级。不支持从 MySQL 5.7 的非 GA 版本升级。

    • 在升级到下一个版本之前,建议升级到最新版本。例如,在升级到 MySQL 8.0 之前升级到最新的 MySQL 5.7 版本。

    • 不支持跳过版本的升级。例如,不支持直接从 MySQL 5.6 升级到 8.0。

    • 一旦发布系列达到正式发布 (GA) 状态,就支持在发布系列内升级(从一个 GA 版本到另一个 GA 版本)。例如,从 MySQL 8.0 升级。x到 8.0。y支持。(不支持涉及处于开发状态的非 GA 版本的升级。)还支持跳过版本。例如,从 MySQL 8.0 升级。x到 8.0。z支持。MySQL 8.0.11 是 MySQL 8.0 版本系列中的第一个 GA 状态版本。   

    3.Mysql升级主要的事情

      第一步:检查当前Mysql版本下的数据库是否存在问题

        -->mysqlcheck -u root -p -S /data/3307/mysql.sock  --all-databases --check-upgrade      

      第二步:不得有使用不具有本机分区支持的存储引擎的分区表。要识别此类表,请执行以下查询    

    SELECT TABLE_SCHEMA, TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLES
    WHERE ENGINE NOT IN ('innodb', 'ndbcluster')
    AND CREATE_OPTIONS LIKE '%partitioned%';

      .....(省略)

      具体查看官网升级前要做的检查!   https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html

    4.开始升级

      方法1:in-place upgrade(就地升级)  5.7-->8.0

          第一步:如果您通常运行配置为innodb_fast_shutdownset to 2(cold shutdown) 的MySQL 服务器 ,请通过执行以下任一语句将其配置为执行快速或慢速关机         

    SET GLOBAL innodb_fast_shutdown = 1; -- fast shutdown
    SET GLOBAL innodb_fast_shutdown = 0; -- slow shutdown

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

          -->mysqladmin -u root -p shutdown

           第三步:下载新版版的Mysql(比如我的:这里可以将软连接重新指到最新版本的Mysql上)

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

               -->mysqld_safe --user=mysql --datadir=/path/to/existing-datadir &               ##这里的datadir数据目录是旧版本5.7的数据目录路径

         第五步:  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 &

             

      方法2: logical upgrade(逻辑升级)

           第一步:从以前的 MySQL 安装导出现有数据(备份全库):           

    mysqldump -u root -p
      --add-drop-table --routines --events
      --all-databases --force > data-for-upgrade.sql

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

            -->mysqladmin -u root -p shutdown

          第三步:安装 MySQL 8.0  (此处可以参考前一章Mysql的安装流程)  包括初始化,启动,安全加固等等

          第四步:导入数据

            -->mysql -u root -p --force < data-for-upgrade.sql

          第五步:执行剩余的升级操作:在 MySQL 8.0.16 及更高版本中,关闭服务器,然后使用--upgrade=FORCE执行剩余升级任务选项重新启动它 

            -->mysqladmin -u root -p shutdown         ##关闭数据库

            -->mysqld_safe --user=mysql --datadir=/path/to/8.0-datadir --upgrade=FORCE &     ##启动并强制升级数据库

          第六步:在 MySQL 8.0.16 之前,执行 mysql_upgrade执行剩余的升级任务:

            -->mysql_upgrade -u root -p

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

            -->mysqladmin -u root -p shutdown

            -->mysqld_safe --user=mysql --datadir=/path/to/8.0-datadir &

    补充:

      关于mysql_upgrade命令参数:只升级系统表,不升级数据,这样在升级数据量很大的数据库时,可以缩短升级的时间(这里在姜承尧的资料中有提到过,不过官方上升级并没有具体说明)

     -s, --upgrade-system-tables 
                          Only upgrade the system tables, do not try to upgrade the
                          data.

            

      

             

  • 相关阅读:
    线程池及其原理和使用
    多线程通信Queue
    Condition实现线程通信
    守护线程和锁
    习题 7:更多的打印
    习题 6:字符串和文本
    习题 5:更多的变量和打印
    习题 4:变量和命名
    习题 3:数字和数学计算
    习题 2:注解和#号
  • 原文地址:https://www.cnblogs.com/zmc60/p/14877213.html
Copyright © 2020-2023  润新知