-
在更改集群拓扑或成员资格时,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()
比 Group Replication 要求的检查更严格。现在,AdminAPI 认为具有等效主键(例如非空唯一键)的表是兼容的,符合组复制的当前要求。(漏洞#25974689)-
dba.createCluster()
在实例上 执行sql_mode=ANSI_QUOTES
失败并出现错误。(缺陷号 25966057)参考资料:另请参阅:Bug #25990172。
dba.createSandboxInstance()
在 Windows 上使用 MySQL Shell 时,无法删除 任何创建或打开的文件,例如在 期间使用的 文件。(缺陷号 25789094)以前
auto_increment_increment
根据用于server-id
系统变量的随机 32 位无符号整数设置的限制已得到解决。现在,在单主模式下运行时auto_increment_increment
设置为 1 并auto_increment_offset
设置为 2。在多主模式下auto_increment_increment
设置为 7 并auto_increment_offset
设置为 1 加上server_id
模 7。(缺陷 #25724564)内部用户使用的随机生成的密码与运行密码验证插件的实例不兼容。(漏洞 #25714751)
改进了帮助
dba.configureLocalInstance(instance[, options])
以描述返回的 JSON 对象。(缺陷号 25703028)使用包含没有正确权限的用户的 URI 时发出
configureLocalInstance()
,会导致创建不正确的新用户。现在,如果configureLocalInstance()
URI 中的用户没有足够的权限来为在交互式向导配置期间选择的新用户授予所有必要的权限,则不会创建该用户。(漏洞 #25614855)发布
Cluster.rescan()
导致非确定性行为,这可能会产生不正确的 JSON 输出,将已经属于集群的实例显示为属于newlyDiscoveredInstances[]
列表和unavailableInstances
[] 列表。这也导致 MySQL Shell 提示在集群中添加或删除实例。(漏洞#25534693)AdminAPI 函数现在接受
shell.connect
. 已为 whenrequire_secure_transport
is 添加了新验证ON
,现在无法使用 where 创建集群memberSslMode:DISABLED
或将实例添加require_secure_transport=ON
到集群 wherememberSslMode:DISABLED
。(漏洞 #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()
在集群的最后一个成员上发布会导致错误,您必须dissolve()
在该实例上使用以确保正确解散集群。(缺陷号 25226130)removeInstance()
在某些情况下会导致意外行为,例如,当将空密码作为 URI 的一部分传递给实例时。(漏洞 #25111911)术语全局会话和活动会话的使用在用户界面中更加一致。(漏洞#24954546)
无法在
removeInstance()
已停止的实例上工作,并且无法从集群中删除不可用的实例。该修复程序force
向 removeInstance() 命令添加了一个新选项,使您能够从元数据中删除永久不可用的实例,从而避免将过时的数据保留在集群的元数据中。此外,改进了不使用强制选项时提供的错误消息,并相应地removeInstance()
更新了联机帮助。(漏洞#24916064)-
创建使用 Unix 套接字连接的经典会话现在使用正确的默认值,例如主机名。这解决了以前使用 Unix 套接字连接到 InnoDB 集群实例的限制。 有关如何将默认设置应用于套接字连接的信息,请参阅MySQL Shell连接。(错误#24848763,错误#26036466)
参考资料:另请参阅:Bug #24911068。
dba.deployLocalInstance()
针对不合适或不兼容的实例 发出的错误消息 已得到改进。(漏洞 #24598272)-
、
dba.createCluster()
和 函数已更新为使用以下规则验证集群名称dba.getCluster()
:dba.rebootClusterFromCompleteOutage()
名称必须以字母或
_
字符 开头名称只能包含字母数字字符和
_
字符不能超过 40 个字符
不能为空
该
Cluster.addInstance()
函数已更新为使用以下规则验证集群中实例上使用的标签:标签只能包含字母数字或
_
字符不能超过 256 个字符
不能为空
(漏洞 #24565242)
当使用
cluster.rejoinInstance()
传入的连接字符串中指定的任何用户时,将被忽略并且连接正在使用 root 用户。(漏洞 #85567,漏洞 #25786495)在配置为多线程从属的实例上,换句话说
slave_parallel_workers
设置为大于 0,并且slave_parallel_type=DATABASE
没有dba.checkInstanceConfiguration()
检测到该实例没有正确配置 InnoDB 集群使用。如果
removeInstance()
由于连接错误而失败,则会报告错误,但实例会错误地从 InnoDB 集群元数据中删除,并且仍然是复制组的一部分。该修复确保元数据根据removeInstance
() 的结果正确更新。在选择新的主实例的情况下,向集群添加新实例会由于与先前主实例的连接失败而导致错误。
修改服务器变量的函数,例如
dba.createCluster()
和dba.validateInstance()
现在在交互模式输出和日志输出中提供了有关执行时更改的服务器变量的更多信息。将实例部署到包含空格的目录的路径失败且没有错误。使用双反斜杠指定此类路径,例如
D:\\Cluster\\foo bar
.-
一旦创建该对象的 Shell 会话连接到不同的服务器,从
dba.createCluster()
或 等函数获得的 Cluster 对象将 变得不可用。dba.getCluster()
该修复修改了 Cluster 对象,以便:Cluster 对象持有对创建或检索它的 Session 的内部引用。
修改集群的 AdminAPI 函数是使用对象引用的会话创建的。
-
用于 MySQL Shell Commercial 的链接 OpenSSL 库已更新至版本 1.0.2l。http://www.openssl.org/news/vulnerabilities.html中描述了新 OpenSSL 版本中修复的问题 。
此更改不影响 Oracle 生成的 MySQL Community 构建的 MySQL Shell,它使用 yaSSL 库。(缺陷号 26284262)
在使用 MySQL 8 的服务器上针对包含文本列的表运行查询会导致意外停止。
的
clusterAdminType
选项dba.createCluster()
未使用,已被删除。(缺陷号 25585027)-
该
--help
消息现在显示所有短格式选项。shell.help('options')
现在返回有关mysqlsh选项的可用信息。cluster.help('checkInstanceState')
现在报告正确的信息。cluster.help('addInstance')
现在cluster.help('rejoinInstance')
报告完整的信息。help()
现在报告所有 AdminAPI 和 Shell 命令的完整信息。(错误#24841493、错误#24910540、错误#24841749、错误#25701345、错误#24977542、错误#25268410、错误#25266846) 调用不带参数的
modify()
orremove()
函数会导致对整个集合执行该函数,这可能会导致意外结果,例如删除表中的所有行。为了避免这种情况并使行为与update()
and一致,如果在没有参数的情况下调用or 函数,delete()
现在会抛出客户端异常 。现在,要对集合执行 or 函数,请使用计算结果为 的表达式调用它们,例如 or 。modify()
remove()
modify()
remove()
true
remove('true')
modify('true')
X DevAPI: 未签名的数据可能会从数据库中错误读取。(漏洞#24912358)
使用 MySQL Shell 在表中插入时间戳时,月份错误地递增。(漏洞#26423177)
服务器版本现在显示为 “已连接到”消息的一部分。(漏洞#25824753)
使用 form 表达式的查询 导致mysqlsh异常退出。(缺陷号 25754078)
collection.find(
identifier
INidentifier
)如果 AdminAPI 函数被中断,例如 Unix 上的 control-C,则进程返回的退出代码为 1 而不是终止进程的预期退出代码,例如
SIGINT
. (缺陷号 25728759)MySQL Shell 选项字典中的选项现在已完整记录。(漏洞 #25701345)
该
--ssl
选项已被弃用,请使用该--ssl-mode
选项。现在,如果您使用该--ssl
选项,则会生成弃用警告,并且该--ssl-mode
选项将设置为DISABLED
或REQUIRED
基于与该--ssl
选项一起使用的值。(漏洞 #25403945)-
shell.connect()
如果使用了无效参数,则不会报告错误。ArgumentError
现在为任何无效参数发出一个 。现在检查以下互斥的选项对,如果同时指定,则会发出错误:
--password
和--dbPassword
--user
和--dbUser
(缺陷号 25268670)
参考资料:另请参阅:Bug #24911173。
提示的默认设置更加一致。(缺陷号 25039886)
一些与输出有关的问题
shell.help("prompt")
已得到纠正。(错误#25026855、错误#25242638、错误#25676343、错误#25176769)MySQL Shell 现在将无效年份显示为
0000
,匹配 MySQL 提示符的行为,而不是0
。(漏洞 #24912061)MySQL Shell 不显示 DATETIME 列中值的小数秒。(漏洞#24911885)
作为 URI 的一部分提供的 Unix 套接字的解析已得到改进。(漏洞 #24905066)
修复了 MySQL Shell 命令行帮助输出的一些问题。(错误#24841749、错误#24841493、错误#24910540)
如果现在发生错误,错误编号和错误文本都会正确显示。(漏洞#24816578)
当密码被隐藏时,URI 在 MySQL Shell 中被错误地解析。(漏洞#24793956)
使用
--dba enableXProtocol
选项安装 X 插件失败。(缺陷号 23508428)\source
如果给命令一个目录(而不是文件)参数, mysqlsh 将停止响应 (缺陷 #23097932,缺陷 #81060)