10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 42.0 mb
PDF (A4)- 42.1 mb
手册页(TGZ)- 267.2 kb
手册页(邮政编码)- 376.9 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册摘录

MySQL 8.0参考手册// 升级MySQL在Unix / Linux二进制或包的安装

2.11.6升级MySQL在Unix / Linux二进制或包的安装

本节描述如何升级MySQL在Unix / Linux二进制和包安装。就地升级和逻辑方法。

就地升级

就地升级涉及关闭旧的MySQL服务器,替换旧的与新的MySQL的二进制文件或包,重新启动MySQL在现有数据目录,和升级现有的剩余部分安装,需要升级。什么可能需要升级的详细信息,请参见14节,“MySQL升级过程升级”

请注意

如果你是升级安装最初由安装多个RPM包,升级包,而不只是一些。例如,如果你之前安装的服务器和客户端RPM,不升级服务器RPM。

对于一些Linux平台上,MySQL安装RPM或Debian软件包管理包括systemd支持MySQL服务器启动和关闭。在这些平台上,mysqld_safe没有安装。在这种情况下,使用systemd服务器启动和关闭,而不是用于下面的说明方法。看到部分2.5.9,“与systemd管理MySQL服务器”

对于MySQL集群升级安装,见也MySQL集群升级

执行一个就地升级:

  1. 审核中的信息2.11.1节”,在你开始“

  2. 确保安装的升级准备通过完成初步检查部分2.11.5”,准备升级安装“

  3. 如果你使用XA事务InnoDB、运行XA恢复升级前检查未提交的XA事务。如果返回结果,要么通过发出一个XA事务提交或回滚XA提交XA回滚声明。

  4. 如果你从MySQL升级5.7.11 MySQL 8.0或更早,也有加密InnoDB表空间,旋转的密匙环主密钥通过执行这个语句:

    改变实例旋转INNODB万能钥匙;
  5. 如果你通常运行您的MySQL服务器配置innodb_fast_shutdown设置为2(冷停堆),配置它来执行一个快速或缓慢关闭通过执行这些语句:

    集全球innodb_fast_shutdown = 1;——快速关闭集全球innodb_fast_shutdown = 0;——缓慢关闭

    快或慢关闭,InnoDB让其undo日志和数据文件,可以处理的文件格式版本之间的区别。

  6. 关闭旧的MySQL服务器。例如:

    mysqladmin - u root - p关闭
  7. 升级MySQL的二进制文件或包。如果升级一个二进制安装,解压新的MySQL二进制发布包。看到获取和解压分布。对于基于包的安装,安装新的包。

  8. 启动MySQL 8.0服务器,使用现有的数据目录。例如:

    mysqld_safe——用户= mysql——datadir =/ / existing-datadir /路径&

    如果有加密InnoDB表空间,使用——early-plugin-load选择加载插件密匙环。

    当你开始MySQL 8.0服务器时,它会自动检测是否存在数据字典表。如果不是,在数据目录服务器创建它们,用元数据填充它们,然后用其收入正常的启动顺序。在这个过程中,服务器升级所有数据库对象的元数据,包括数据库、表空间,系统和用户表、视图和存储程序(存储过程和函数、触发器和事件调度器事件)。服务器还删除文件之前被用于元数据存储。例如,从MySQL 5.7到MySQL 8.0升级后,您可能会注意到,表不再有.frm文件。

    如果这一步失败,服务器返回的所有更改的数据目录。在这种情况下,您应该删除所有重做日志文件,开始你的MySQL 5.7服务器在同一数据目录,并修复任何错误的原因。然后执行5.7服务器的另一个缓慢关闭和启动MySQL 8.0服务器再试一次。

  9. 在前面的步骤中,服务器升级数据字典。现在有必要执行任何剩余的升级操作:

    • MySQL 8.0.16,服务器是作为前一步骤的一部分,需要进行任何更改mysql系统数据库MySQL 5.7和MySQL 8.0之间,这样你就可以利用新的特权或能力。它还带来了性能模式,INFORMATION_SCHEMA,sys更新数据库MySQL 8.0,检查所有用户数据库和MySQL的当前版本不兼容。

    • 在MySQL 8.0.16之前,服务器升级只前一步的数据字典。MySQL 8.0服务器成功启动后,执行mysql_upgrade执行剩下的升级任务:

      mysql_upgrade - u root - p

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

      mysqladmin - u root - p关闭mysqld_safe——用户= mysql——datadir =/ / existing-datadir /路径&

      你第一次启动MySQL 8.0服务器(在前面的步骤),你可能会注意到关于nonupgraded消息在错误日志表。如果mysql_upgrade已经成功运行,不应该有这样的消息你第二次启动服务器。

请注意

升级过程不升级的内容时区表。升级说明,请参阅5.1.15部分,“MySQL服务器时区支持”

如果升级过程使用mysql_upgrade(也就是说,在MySQL 8.0.16)之前,过程不升级的内容帮助表,。升级说明在这种情况下,看到部分5.1.17,“端帮助支持”

逻辑升级

逻辑升级涉及出口SQL从旧的MySQL实例使用备份或导出工具等,mysqldumpmysqlpump,安装新的MySQL服务器和应用SQL新的MySQL实例。什么可能需要升级的详细信息,请参见14节,“MySQL升级过程升级”

请注意

对于一些Linux平台上,MySQL安装RPM或Debian软件包管理包括systemd支持MySQL服务器启动和关闭。在这些平台上,mysqld_safe没有安装。在这种情况下,使用systemd服务器启动和关闭,而不是用于下面的说明方法。看到部分2.5.9,“与systemd管理MySQL服务器”

警告

将SQL从先前的MySQL版本应用到新的MySQL版本可能导致错误由于新引入的不兼容性,改变,弃用或删除的特性和功能。因此,SQL从先前的MySQL版本启用逻辑升级可能需要修改。

确定不兼容升级到最新MySQL 8.0版本之前,执行中所描述的步骤部分2.11.5”,准备升级安装“

执行逻辑升级:

  1. 审核中的信息2.11.1节”,在你开始“

  2. 出口你现有的数据从前面的MySQL安装:

    ,mysqldump - u root - p——add-drop-table——常规——> data-for-upgrade.sql事件——所有数据库——力量
    请注意

    使用——例程——事件选择与,mysqldump(如上所示)如果你的数据库包括存储程序。的——所有数据库选项包括所有数据库的转储,包括mysql数据库系统表。

    重要的

    如果你有包含生成的列的表,使用,mysqldump实用程序提供MySQL 5.7.9或更高版本创建转储文件。的,mysqldump实用程序提供了早期版本中使用不正确的语法生成的列定义(错误# 20769542)。您可以使用INFORMATION_SCHEMA.COLUMNS表来识别表生成的列。

  3. 关闭旧的MySQL服务器。例如:

    mysqladmin - u root - p关闭
  4. 安装MySQL 8.0。安装说明,请参阅第二章,安装和升级MySQL

  5. 初始化一个新的数据目录,如中描述2.10.1部分,“初始化数据目录”。例如:

    mysqld——初始化——datadir =/ / 8.0 -datadir /路径

    拷贝临时“根”@“localhost”密码显示给你的屏幕或写入错误日志,供以后使用。

  6. 启动MySQL 8.0服务器,使用新的数据目录。例如:

    mysqld_safe——用户= mysql——datadir =/ / 8.0 -datadir /路径&
  7. 重置密码:

    $ > mysql - u root - p输入密码:* * * * < -输入临时根密码
    mysql >改变用户确认的用户()”你的新密码”;
  8. 之前创建的转储文件加载到新的MySQL服务器。例如:

    mysql - u root - p < data-for-upgrade.sql——力量
    请注意

    不建议将加载一个转储文件当GTIDs上启用服务器(gtid_mode =对),如果你的转储文件包括系统表。,mysqldump问题DML指令的系统表使用非事务性MyISAM存储引擎,这个组合是不允许当GTIDs启用。也意识到从服务器加载转储文件启用GTIDs后,到另一个服务器启用了GTIDs,导致不同的事务标识符生成。

  9. 执行任何剩余的升级操作:

    • 在MySQL 8.0.16越高,关闭服务器,然后重新启动它——升级=力选项执行剩下的升级任务:

      mysqladmin - u root - p关闭mysqld_safe——用户= mysql——datadir =/ / 8.0 -datadir /路径——升级= &

      重启后,——升级=力,服务器中的任何变化需要mysqlMySQL 5.7和MySQL 8.0之间的系统模式,这样你可以利用新的特权或能力。它还带来了性能模式,INFORMATION_SCHEMA,sysMySQL 8.0模式更新,检查所有用户模式与MySQL的当前版本不兼容。

    • MySQL 8.0.16之前,执行mysql_upgrade执行剩下的升级任务:

      mysql_upgrade - u root - p

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

      mysqladmin - u root - p关闭mysqld_safe——用户= mysql——datadir =/ / 8.0 -datadir /路径&
请注意

升级过程不升级的内容时区表。升级说明,请参阅5.1.15部分,“MySQL服务器时区支持”

如果升级过程使用mysql_upgrade(也就是说,在MySQL 8.0.16)之前,过程不升级的内容帮助表,。升级说明在这种情况下,看到部分5.1.17,“端帮助支持”

请注意

加载一个转储文件,其中包含一个MySQL 5.7mysql不再使用的模式重新创建两个表:事件proc。(相应的MySQL 8.0表事件例程,这两个数据字典表和保护。)你满意,升级成功后,您可以删除事件proc通过执行这些SQL语句表:

删除表mysql.event;删除表mysql.proc;

MySQL集群升级

本节中的信息是就地升级过程中所描述的一个附属物就地升级,如果你升级使用MySQL集群。

MySQL 8.0.16, MySQL集群升级可以作为常规执行滚动升级,通常的三个命令的步骤:

  1. 升级米高梅节点。

  2. 升级一次一个数据节点。

  3. 一次升级API节点(包括MySQL服务器)。

升级的每个节点的方法仍然是几乎一样的MySQL 8.0.16之前因为分离升级系统表的数据字典和升级。每个人有两个步骤来升级mysqld:

  1. 导入数据字典。

    启动新服务器——升级=最小选择升级数据字典而不是系统表。这本质上是一样的pre-MySQL 8.0.16行动启动服务器,而不是调用mysql_upgrade

    必须连接到MySQL服务器NDB在这个阶段完成。如果有任何NDBNDBINFO表存在,和服务器无法连接到集群,它与一个错误消息:出口

    没有填充DD表。
  2. 升级系统表。

    在MySQL 8.0.16之前,DBA调用mysql_upgrade客户端升级系统表。MySQL 8.0.16,服务器执行此操作:每个人升级系统表,重启mysqld没有——升级=最小选择。