MySQL Shell版本说明/ MySQL Shell 1.0.10的更改(2017-07-28,通用可用性)

MySQL Shell 1.0.10的更改(2017-07-28,通用可用性)

InnoDB集群bug修复

  • 在进行集群拓扑或成员关系更改时,AdminAPI不会考虑的值group_replication_group_name在大脑分裂等情况下,这可能会导致不正确的、不确定的结果。现在,下面的命令验证InnoDB集群元数据和对应实例的元数据group_replication_group_name值:

    • dba.getCluster ()

    • Cluster.rejoinInstance ()

    • Cluster.forceQuorumUsingPartitionOf ()

    的值group_replication_group_name如果不匹配,则命令终止并出现错误。

    dba.rebootClusterFromCompleteOutage ()也进行了更新,以确保group_replication_group_name变量在重新连接实例之前未被更改。(错误# 26159339)

  • AdminAPI现在总是使用当前的活动用户值mysqlsh会话,无论该值是由用户显式指定的,还是由mysqlsh.(错误# 26132527)

  • addInstance ()函数在使用MySQL 8的服务器上运行时失败。(错误# 26085799)

  • 在Python版本低于2.7的服务器上执行AdminAPI命令失败,没有正确的错误消息。(错误# 25975317)

  • AdminAPI在发出时执行的检查dba.rebootClusterFromCompleteOutage ()比组复制要求的更严格。现在,AdminAPI认为具有等效主键(如非空惟一键)的表是兼容的,与当前的组复制需求相匹配。(错误# 25974689)

  • 执行dba.createCluster ()在一个实例中sql_mode = ANSI_QUOTES失败,出现错误。(错误# 25966057)

    参考文献:参见Bug #25990172。

  • 当在Windows上使用MySQL Shell时,任何创建或打开的文件,例如在dba.createSandboxInstance (),不能删除。(错误# 25789094)

  • 以前的限制auto_increment_increment的随机32位无符号整数设置服务器id系统变量已解析。现在,当操作在单主模式auto_increment_increment设置为1和auto_increment_offset设置为2。在多主模式下auto_increment_increment设置为7和auto_increment_offset设置为1加上server_id模7。(错误# 25724564)

  • 内部用户使用的随机生成的密码与运行密码验证插件的实例不兼容。(错误# 25714751)

  • 帮助dba。configureLocalInstance(实例[选项])已改进以描述返回的JSON对象。(错误# 25703028)

  • 发行configureLocalInstance ()当使用包含没有正确权限的用户的URI时,会导致创建错误的新用户。现在,如果用户configureLocalInstance ()URI没有足够的权限为在交互向导配置期间选择的新用户授予所有必要的权限,因此没有创建用户。(错误# 25614855)

  • 发行Cluster.rescan ()导致不确定的行为,这可能产生不正确的JSON输出,显示已经属于集群的实例属于newlyDiscoveredInstances []列表和到unavailableInstances[]列表。这还会导致MySQL Shell提示从集群中添加或删除实例。(错误# 25534693)

  • AdminAPI函数现在接受标准连接参数shell.connect.添加了新的验证require_secure_transport,现在不可能创建集群memberSslMode:禁用或者添加实例require_secure_transport =对到集群中memberSslMode:禁用.(错误# 25532298)

  • 帐户名的解析,例如在传递clusterAdmin选项dba.configureLocalInstance ()已得到改进。(错误# 25528695)

  • 发行configureLocalInstance ()两次都可能失败。(错误# 25519190)

  • 当通过rejoinInstances []选项dba.rebootClusterFromCompleteOutage (),如果没有rejoinInstances []选项,则在重新构建过程中对成员的处理不正确。对象中有资格添加的实例rejoinInstances []列表中指定的removeInstances []列表将被试图自动构建rejoinInstances []如果没有提供,请列出。此修复程序还确保交互式和非交互式使用MySQL Shell都正确地验证rejoinInstances []列表中不包含不可访问的实例。(错误# 25516390)

  • 当使用dba.deploySandboxInstance ()然后进来sandboxDir,指定的路径不能超过89个字符。(错误# 25485035)

  • 发行removeInstance()在一个簇的最后一个成员,特别是种子成员上,会导致一个簇不能解散。现在,发行removeInstance ()在群集的最后一个成员上执行将导致错误,因此必须使用溶解()以确保正确地解散群集。(错误# 25226130)

  • removeInstance ()在某些情况下会导致意外的行为,例如当空密码作为URI的一部分传递给实例时。(错误# 25111911)

  • 术语全局会话和活动会话的用法在用户界面中更加一致。(错误# 24954546)

  • removeInstance ()没有在已停止的实例上工作,并且无法从集群中删除不可用的实例。该修复增加了一个新选项到removeInstance()命令,以使您能够从永久不可用的元数据中删除实例,避免过时的数据保存在集群的元数据中。此外,当不使用强制选项时提供的错误消息已得到改进removeInstance ()也作了相应的更新。(错误# 24916064)

  • 创建使用Unix套接字连接的经典会话现在使用正确的缺省值,例如主机名。这解决了以前使用Unix套接字连接到InnoDB集群实例的限制。看到MySQL Shell连接有关如何将默认值应用于套接字连接的信息。(Bug #24848763, Bug #26036466)

    参考文献:参见Bug #24911068。

  • 通过发出而生成的错误消息dba.deployLocalInstance ()针对不合适或不兼容的实例进行了改进。(错误# 24598272)

  • dba.createCluster ()dba.getCluster (),dba.rebootClusterFromCompleteOutage ()函数已更新以验证集群名称,使用以下规则:

    • 名字必须以字母或_字符

    • 名称只能包含字母数字字符和_字符

    • 长度不能超过40个字符

    • 不能为空

    Cluster.addInstance ()函数已更新为验证在集群中实例上使用的标签,使用以下规则:

    • 标签只能包含字母、数字或_字符

    • 长度不能超过256个字符

    • 不能为空

    (错误# 24565242)

  • 当使用cluster.rejoinInstance ()在传入的连接字符串中指定的任何用户都被忽略,连接使用根用户。(Bug #85567, Bug #25786495)

  • 换句话说,在配置为多线程从的实例上slave_parallel_workers设置为大于0,并且与slave_parallel_type =数据库dba.checkInstanceConfiguration ()没有检测到实例没有正确配置为InnoDB集群使用。

  • 如果removeInstance ()由于连接错误而失败,报告了一个错误,但该实例被错误地从InnoDB集群元数据中删除,并且仍然是复制组的一部分。的结果正确更新元数据removeInstance().

  • 在选择了一个新的主实例的情况下,向集群添加一个新实例会导致一个错误,原因是到前一个主实例的连接失败。

  • 修改服务器变量的函数,例如dba.createCluster ()而且dba.validateInstance ()现在在交互模式输出和日志输出中提供更多关于执行时更改的服务器变量的信息。

  • 将实例部署到包含空格的目录的路径失败,没有错误。例如,使用双反斜杠来指定这样的路径集群D: \ \ \ \ foo酒吧

  • 从函数获得的Cluster对象,例如dba.createCluster ()dba.getCluster ()一旦创建对象的Shell会话连接到不同的服务器,该会话将不可用。修正修改了Cluster对象,这样:

    • Cluster对象持有对创建或检索它的Session的内部引用。

    • 修改Cluster的AdminAPI函数使用对象引用的会话生成。

安全记录

  • MySQL Shell Commercial的链接OpenSSL库已更新到1.0.2l版本。新OpenSSL版本中修复的问题描述在http://www.openssl.org/news/vulnerabilities.html

    此更改不影响oracle生产的MySQL Shell的MySQL社区构建,它使用yaSSL库代替。(错误# 26284262)

  • 在使用MySQL 8的服务器上对带有文本列的表执行查询时,会导致意外停止。

增加或更改的功能

  • clusterAdminType选择dba.createCluster ()未使用过,已被删除。(错误# 25585027)

  • ——帮助消息现在显示所有简短形式的选项。

    ——帮助的完整信息——json选择。

    shell.help(选项)现在返回可用的信息mysqlsh选项。

    cluster.help(“checkInstanceState”)现在报告正确的信息。

    cluster.help(“addInstance”)而且cluster.help(“rejoinInstance”)现在报告完整的信息。

    帮助()现在报告所有AdminAPI和Shell命令的完整信息。(Bug #24841493, Bug #24910540, Bug #24841749, Bug #25701345, Bug #24977542, Bug #25268410, Bug #25266846)

  • 调用修改()remove ()没有参数的函数会导致针对整个集合执行函数,这可能会导致意外的结果,例如删除表中的所有行。避免这种情况并使行为与update ()而且delete ()时抛出客户端异常修改()remove ()函数调用时不带形参。现在,要执行修改()remove ()函数使用求值为的表达式调用它们真正的例如,remove(“真正的”)修改(“真正的”)

错误修复

  • X DevAPI:可能从数据库中错误地读取未签名数据。(错误# 24912358)

  • 使用MySQL Shell在表中插入时间戳时错误地增加了月份。(错误# 26423177)

  • 服务器版本现在显示为连接到消息。(错误# 25824753)

  • 使用表单表达式的查询collection.find (标识符标识符导致异常mysqlsh退出。(错误# 25754078)

  • 如果AdminAPI函数被中断,例如Unix上的control-C,进程返回的退出码是1,而不是被终止进程所期望的退出码信号情报.(错误# 25728759)

  • MySQL Shell选项字典中的选项现在都有完整的文档说明。(错误# 25701345)

  • ——ssl选项已弃用,请使用——ssl-mode选择。现在,如果你用——ssl选项生成弃用警告——ssl-mode选项设置为任选一个禁用要求的值——ssl选择。(错误# 25403945)

  • shell.connect ()如果使用了无效参数,则不报告错误。一个ArgumentError现在对任何无效参数发出。

    下面的互斥选项对现在被选中,如果两者都被指定,则会发出错误:

    (错误# 25268670)

    参考文献:参见Bug #24911173。

  • 默认的提示符已经变得更加一致。(错误# 25039886)

  • 若干问题与输出shell.help(“提示”)已被更正。(Bug #25026855, Bug #25242638, Bug #25676343, Bug #25176769)

  • MySQL Shell现在显示无效的年份为0000,匹配MySQL提示符的行为,而不是as0.(错误# 24912061)

  • MySQL Shell没有为DATETIME列中的值显示小数秒。(错误# 24911885)

  • 作为URI一部分提供的Unix套接字的解析得到了改进。(错误# 24905066)

  • MySQL Shell命令行帮助输出的一些问题被修复。(Bug #24841749, Bug #24841493, Bug #24910540)

  • 如果现在发生错误,则错误编号和错误文本都将正确显示。(错误# 24816578)

  • 在MySQL Shell中隐藏密码时,uri解析错误。(错误# 24793956)

  • 使用——dba enableXProtocol安装X插件的选项失败。(错误# 23508428)

  • mysqlsh停止响应,如果\源命令被赋予了一个目录(而不是文件)参数。(Bug #23097932, Bug #81060)