为什么升级?

  1. 遇到BUG,而在新的版本中可以被解决
  2. 想要常识新版本的新特性,但是当前的数据库版本太低
  3. 等等

升级需要注意什么?

  1. 不同的版本中,参数的差异:
    1. 哪些参数不再支持了
    2. 哪些参数是新增的
    3. 哪些参数虽然还在支持,但是:
      1. 作用机制发生了变化
      2. 默认配置发生了变化
  2. 不同版本中,数据库运行机制的变化
  3. 不同版本中,数据库相关的文件或脚本的变化
  4. 升级后,对当前架构的影响
    1. 对于复制架构,在多版本混用的应用场景中,如果主库低于MySQL 5.7,则从库不建议升级到5.7,因为,可能会导致莫名其妙的SQL线程错误;【因为不同MySQL的版本,对于各个组件的支持与考量是不同的,有的在之前的版本中是被允许的,而同样的设置在较新的版本中被认为是不允许的】
    2. 等等

例如:

  • MySQL 5.5.x,不支持innodb_undo_directory参数
  • MySQL 5.5.x,初始化完成后,不会产生ibdata1与ib_logfile*文件,这两类文件是到启动MySQL服务的时候才会产生的
  • MySQL 5.5.x,的mysql_install_db是Shell脚本,只能在UNIX平台上使用;但是在MySQL 5.6.8以后的版本中,该脚本使用Perl进行了改写,可以在任何安装了Perl语言支持的平台上使用

有哪些方法可以实施升级?

  • 使用mysql_upgrade直接升级数据字典库
  • 使用mysqldump逻辑备份数据

注意:

使用mysql_upgrade直接升级数据字典库,这种方式的升级,不可以跨越大版本。


升级:从【MySQL 5.5.54】到【MySQL 5.6.35】


使用:mysql_upgrade的方式

大概有以下几步:

  1. 停止MySQL 5.5.54
  2. 修改my.cnf:
    1. 添加skip_grant_tables
    2. 替换basedir
  3. 升级前备份数据
  4. 启动并升级MySQL
  5. 重启MySQL,并访问数据;验证升级之后是否可以正常访问

具体如下:


使用:mysqldump的方式

这种方式等于先使用mysqldump,以逻辑的方式全备份数据,并保存到SQL文件中;
等完整的安装好新版本的MySQL 5.6.35后,再把备份的SQL文件,导入到新版本的数据库中;
然后,执行mysql_upgrade升级数据库字典库:

  • 如果数据库的字典库的表结构没有发生变化则不需要执行;
  • 如果发生了变化,则需要执行,否则可能会出现异常;

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装