Linux MySQL 5.7二进制小版本升级

  

Linux MySQL 5.7二进制小版本升级

  

MySQL5.7二进制安装在Unix/Linux上升级时,分为就地和逻辑升级方法。

  

1就地升级

  

就地升级包括关闭旧的MySQL服务器,用新的MySQL服务器替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL,以及运行mysql_upgrade。

  

1.1 XA事务InnoDB

  

如果您使用XA事务InnoDB,请XA恢复在升级之前运行以检查未提交的XA事务。如果返回结果,则通过发出XA提交或XA回滚声明来提交或回滚XA事务。

  

1.2配置MySQL以通过设置innodb_fast_shutdown为执行慢速关闭0。

  
 <代码类=" language-shell "> mysql - u root - p——执行=叭騣nnodb_fast_shutdown=0” 
  

在关闭过程中,InnoDB执行完全清除并在关闭之前更改缓冲区合并,这可确保在发布版本之间存在文件格式差异时完全准备好数据文件。

  

1.3关闭旧的MySQL服务器

  
 <代码类=" language-shell "> mysqladmin - u root - p关闭 
  

1.4安装新的MySQL二进制包

  

下载,解压新的MySQL二进制分发包;

  

授权:   

 <代码类=" language-shell ">乔恩- r mysql。mysql/usr/loacl/mysql_new  
  

把MySQL的软连接指向新的MySQL服务

  
 <代码类=" language-shell ">拆开/usr/loacl/mysql
  ln - s/usr/loacl/mysql_new/usr/loacl/mysql  
  

1.5使用现有数据目录启动新MySQL 5.7服务器

  
 <代码类=" language-shell "> mysqld_safe——用户=mysql datadir=/道路//existing-datadir  
  

1.6运行mysql_upgrade

  
 <代码类=" language-shell "> mysql_upgrade - u root - p  
  

mysql_upgrade检查所有数据库中的所有表是否与当前版本的MySQL不兼容.mysql_upgrade还会升级MySQL系统数据库,以便您可以利用新的权限或功能。

  
      <李>注意
    mysql_upgrade不会升级帮助表的内容。   
  

1.7关闭并重新启动MySQL服务器以确保对系统表所做的任何更改都生效

  
 <代码类=" language-shell "> mysqladmin - u root - p关闭
  mysqld_safe——用户=mysql datadir=/道路//existing-datadir  
  

2逻辑升级

  

逻辑升级涉及使用备份或导出实用程序(如,mysqldump)从旧MySQL实例导出SQL,安装新的MySQL服务器以及将SQL应用于新的MySQL实例。
简单说明逻辑升级就是导出数据,然后升级,最后再导入数据,安全性高,主要针对数据量不大的数据库;常用的工具:mysqldump和Xtrabackup。

  

2.1从以前的MySQL安装中导出现有数据:

  
 <代码类=" language-shell ">, mysqldump - u root - p
  ——add-drop-table——常规——事件
  ——所有数据库——力比;data-for-upgrade.sql  
  
      <李>   

    注意
    如果数据库包含存储的程序,请使用,例程和mysqldump的事件——选项(如上所示)。该选项包括转储中的所有数据库,包括保存系统表的数据库。——all-databasesmysql

      李   <李>重要
    如果您有包含生成列的表,请使用MySQL 5.7.9或更高版本提供的,mysqldump实用程序来创建转储文件。早期版本中提供的,mysqldump实用程序对生成的列定义使用了错误的语法(错误# 20769542)。您可以使用该INFORMATION_SCHEMA。列表来标识具有生成列的表。   
  

2.2关闭旧的MySQL服务器

  
 <代码类=" language-shell "> mysqladmin - u root - p关闭 
  

2.3安装MySQL 5.7

  

参考:
mysql 5.7.21二进制安装

  

2.4初始化新数据目录

  
 <代码类=" language-shell "> mysqld——初始化——datadir=/道路//5.7 -datadir  
  

复制“根”@“localhost”显示在屏幕上的临时密码或写入错误日志以供日后使用。

  

2.5使用新数据目录启动MySQL 5.7服务器:

  
 <代码类=" language-shell "> mysqld_safe——用户=mysql datadir=/道路//5.7 -datadir  
  

2.6重置根密码:

  
 <代码类=" language-shell "> shell>mysql - u root - p
  输入密码:* * * * & lt; -输入临时根密码
  mysql>改变用户的用户()被“新密码”, 
  

2.7将先前创建的转储文件加载到新的MySQL服务器中

  
 <代码类=" language-shell "> mysql - u root - p -力& lt;data-for-upgrade.sql  
  
      <李>注意
    gtid_mode=在如果转储文件包含系统表,则不建议在服务器()上启用GTID时加载转储文件,mysqldump。为使用非事务性MyISAM存储引擎的系统表发出DML指令,并且在启用GTID时不允许这种组合。另请注意,将启用了GTID的服务器中的转储文件加载到启用了GTID的另一台服务器中会导致生成不同的事务标识符。

    Linux MySQL 5.7二进制小版本升级