zoukankan      html  css  js  c++  java
  • MySQL系列

    三、MySQL系列 - MySQL各版本升级最佳实践


    一、升级前注意事项

    在开始之前,你要意识到这是一个很慎重的操作,将一步跨过一个重要的MySQL版本。也就是说,这是有风险的。用二进制文件升级是不建议的,而且这样直接跨越一个重要版本也是不安全的,所以你绝不能这样5.0->5.5,5.1->5.6,或者5.0->5.6做。有一个问题是,MySQL版本不是所有改变都前向兼容的。新版本中介绍的一些改变可能不仅会影响数据如何处理,还会影响服务器行为包括SQL语句和MySQL服务器和内部存储引擎(此处不知标准否)。另一个问题是MySQL5.0与5.6版本之间的变化,一些默认的设置变量被改变了,这可能会导致结果完全不一样或者行为完全不同。例如:MySQL5.5的默认存储引擎是InnoDB,MySQL5.6的存储引擎InnoDB将可以为每个数据库表创建单独表空间(separate tablespace),还有GTID复制(GTID replication)也被引入。有太多细节这里就不一一列举了,所有这些改变都被描述在MySQL的“升级文档”中,详情可以查看升级文档
    

    二、两种升级方式

    • 通常情况下,有两中升级方式:
      • 直接升级:安装好新版本数据库后,利用已经存在的数据文件夹,同时运行mysql_upgrade脚本来升级。
      • SQL 导出: 从一个较老版本的mysql把数据导出,然后恢复到新版本的数据库中。(利用mysqldump工具)。
        相比之下,第二种方式更安全些,但是这也会使得升级的过程要慢一些。
        理论上讲,最安全的方式是:
        • 导出所有用户的权限
        • 导出所有数据并恢复到新版本数据库中
        • 恢复用户权限到新数据库中

    三、具体步骤

    • 获取用户和权限信息. 该操作会备份所有用户的权限.
    1. $ wget percona.com/get/pt-show-grants;
    2. $ perl pt-show-grants --user=root --password=root --flush > /root/grants.sql
    • dump 数据库实例的所有信息(除去mysql, information_schema 和performance_schema数据库).
    1. $ mysql -uroot -proot -BNe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql', 'performance_schema', 'information_schema')" | tr 'n' ' ' > /root/dbs-to-dump.sql
    2. $ mysqldump --routines --events --single-transaction --databases $(cat /root/dbs-to-dump.sql) > /root/full-data-dump.sql
    • 停止数据库
    1. $ service mysql stop
    2. or
    3. $ /etc/init.d/mysql stop
    • 移动旧数据库(5.5版本)的数据目录(假设是/var/lib/mysql,此处应该改为你自己的数据目录)
    1. $ mv /var/lib/mysql/ /var/lib/mysql-55
    • 安装5.6版本(按照正常安装流程). 如果你不是用的yum/apt-get方式安装的,你需要执行 mysql_install_db 和mysql_upgrade两个命令.
    • 将在1)操作中导出的用户信息导入到新数据库中.
    1. mysql -uroot < /root/grants.sql
    • 将2)导出的数据导入到新数据库.
    1. $ mysql -e "SET GLOBAL max_allowed_packet=1024*1024*1024";
    2. $ mysql -uroot -p --max-allowed-packet=1G < /root/full-data-dump.sql;

    四、MySQL官方文档步骤






  • 相关阅读:
    学习Easyui
    JS链表
    Javascript数组
    布局管理器(转)
    JCombobox组合框效果实现(转)
    JComboBox
    java.lang.ClassFormatError
    JSplitPane demo
    USB OTG简单介绍
    Cookie/Session机制具体解释
  • 原文地址:https://www.cnblogs.com/sunofsummer/p/6381206.html
Copyright © 2011-2022 走看看