MySQL Shell 1.0 发行说明  /  MySQL Shell 1.0.11 的变化(2017-11-30,全面上市)

MySQL Shell 1.0.11 的变化(2017-11-30,全面上市)

InnoDB Cluster 添加或更改的功能

  • 当您创建集群或添加实例时,您现在可以覆盖默认组名、本地地址和组种子。这使得自定义集群变得更加容易。dba.createCluster()cluster.addInstance()命令 中添加了以下选项:

    • 使用groupNamewith dba.createCluster()设置集群的名称

    • 用于localAddress设置实例提供的与其他实例通信的地址

    • 用于groupSeeds设置实例加入集群时用作种子的实例

    有关详细信息,请参阅 自定义 InnoDB 集群。(错误#26485254,错误#26838005)

  • 添加 WL#10611WL#10960 后,无法添加或重新加入属于集群(或复制组)的实例,因为 super_read_only=ON在停止时由组复制设置。为确保AdminAPI支持运行MySQL 8.0.2及以上版本的实例,修改了以下函数:

    • dba.configureLocalInstance()

    • dba.createCluster()

    • dba.rebootClusterFromCompleteOutage()

    • dba.dropMetadataSchema()

    现在,如果针对具有 的实例发出这些函数中的任何一个super_read_only=ON,在交互模式下,您可以选择设置 super_read_only=OFF。要强制 super_read_only=OFF在脚本中设置函数,请将clearReadOnly选项集传递给 true. 例如 dba.configureLocalInstance({clearReadOnly: true}).有关更多信息,请参阅 超级只读和实例。(缺陷号 26422638)

修复了 InnoDB 集群错误

  • 除非会话帐户存在,否则帐户验证无法正常工作。现在,验证是使用服务器验证过的帐户完成的。(漏洞#26979375)

  • MySQL Shell 中用于处理 InnoDB 集群的 AdminAPI 仅支持与服务器实例的 TCP 连接。AdminAPI 现在会在开始需要访问数据库的操作之前检查 TCP 连接是否正在使用,而不是尝试使用其他连接类型进行操作但未成功。(缺陷号 26970629)

  • 有时dba.addInstance()命令失败并出现错误,表明服务器 RECOVERING尽管处于状态但仍处于状态 ONLINE。此修复可确保返回正确的实例状态。(漏洞#26834542)

  • 如果运行 MySQL Shell 的用户对 AdminAPI 配置的选项文件没有写权限,则不会显示错误。(缺陷号 26830224)

  • 由于使用的是 Python 版本,在需要 SSL 的 Windows 上使用 AdminAPI 命令会导致错误。(漏洞#26636911)

  • adoptFromGR通过将选项与命令一起 使用,从现有组复制部署创建 InnoDB 集群dba.createCluster()将失败,并出现错误,指出该实例已经是复制组的一部分。该问题仅出现在 MySQL Shell 默认向导模式中。该修复确保dba.createCluster() 命令的交互层允许使用该adoptFromGR 选项。(漏洞#26485316)

  • 创建和添加沙箱实例时生成的警告已得到改进。(缺陷号 26393614)

  • 使用具有 的实例时 require_secure_transport=ON,需要连接到实例的 AdminAPI 命令失败。(缺陷号 26248116)

  • Cluster.dissolve()命令试图停止在元数据中注册的所有实例上的组复制,如果这些实例中的任何一个不可联系,换句话说,状态将导致连接错误 (MISSING)ONLINE该修复程序确保仅停止可以联系的实例,换句话说,与 state 联系的实例 。(漏洞 #26001653)

  • 使用适当的 AdminAPI 操作将实例添加到 InnoDB Cluster 时,会执行检查以验证任何现有表的兼容性。如果检测到不兼容的表(例如使用MyISAM),则会发出错误。但是,错误消息指的是 AdminAPI 操作不可用的选项:--allow-non-compatible-tables。(缺陷号 25966731)

  • cluster.rejoinInstance()命令尝试重新加入一个实例,即使该实例已经是集群的一部分。现在,只MISSING 接受状态中的 实例cluster.rejoinInstance()。尝试重新加入处于任何其他状态的实例失败并出现错误。(漏洞 #87873,漏洞 #26870329)

  • 在 Unix 上,如果安装了 Python 3,则 AdminAPI 命令失败。(错误#87731,错误#26785584)

  • 使用 dba.checkInstanceConfiguration()and dba.configurelocalinstance()命令时,如果它有足够的权限来实际执行命令,则不会检查正在使用的帐户。此修复可确保该帐户在继续之前具有所需的权限。这还需要更改授予 clusterAdmin用户的权限。(漏洞 #87300,漏洞 #26609909)

修正错误

  • MySQL Shell 创建了一个记录器,但在退出 shell 时没有释放它。(缺陷号 25238576)

  • 数组和对象现在接受IN 运算符。例如:

    collection.find("'Fred' IN username")