绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
20.5 InnoDB集群 已知的限制
2020-05-11 11:14:27

参考官方文档:

dev.mysql.com/doc/refma



本节介绍InnoDB集群的已知限制。 由于InnoDB集群使用组复制,您还应该了解组复制的局限性,请参见第17.7.2节“组复制限制”。


  • 包含多字节字符的结果格式有时没有正确对齐的列。 同样,非标准字符集在结果中也会被破坏。
  • AdminAPI不支持Unix套接字连接。 MySQL Shell目前不会阻止您尝试使用套接字连接到群集,尝试使用套接字连接到群集可能会导致意外结果。
  • MySQL Shell帮助描述了的URI:

USER[:PASS]@::SOCKET[/DB].


这是的,因为如果没有提供用户信息,则@符号不能出现。


  • 如果在创建全局会话时未指定会话类型,则MySQL Shell会提供自动协议检测,尝试首先创建NodeSession,如果失败则尝试创建ClassicSession。 如果InnoDB集群由三个服务器实例组成,其中有一个读写端口和两个只读端口,这可能导致MySQL Shell仅连接到其中一个只读实例。 因此,建议在创建全局会话时始终指定会话类型。


  • 将非sandbox服务器实例(您已手动配置而非使用dba.deploySandboxInstance()的实例)添加到群集时,MySQL Shell无法在实例的配置文件中保留任何配置更改。 这导致以下一种或两种情况:


    • 组复制配置不会保留在实例的配置文件中,重新启动后实例不会重新加入群集。
    • 该实例对群集。 尽管可以使用dba.checkInstanceConfiguration()验证实例,并且MySQL Shell进行必要的配置更改以使实例为群集使用做好准备,但这些更改不会在配置文件中保留,因此一旦重新启动就会丢失。

如果只 发生a,则重新启动后实例不会重新加入群集。


如果b也发生了,并且您发现实例在重新启动后没有重新加入群集,在这种情况下,您无法使用推荐的dba.rebootClusterFromCompleteOutage()来使群集重新在线。 这是因为实例丢失了MySQL Shell所做的任何配置更改,并且由于它们没有持久化,因此在为群集配置之前,实例将恢复为先前的状态。 这会导致组复制停止响应,并终命令超时。


为避免此问题,强烈建议在将实例添加到群集之前使用dba.configureLocalInstance()以保证配置更改持久化。


  • 使用将validate_password插件和密码策略设置为STRONG配置的MySQL服务器实例会导致InnoDB集群createCluster()和MySQL路由器引导操作失败。 这是因为无法验证访问服务器实例所需的内部用户。
  • MySQL路由--bootstrap命令行选项不接受IPv6地址。
  • MySQL路由的商业版本没有AppArmor的正确设置。 解决方法是编辑AppArmor配置文件配置文件/etc/apparmor.d/usr.sbin.mysqlrouter并修改包含/usr/sbin/mysqld的行以使用MySQL路由器的路径,例如/usr/sbin/mysqlrouter。
  • 使用adoptFromGR选项和dba.createCluster()函数来创建基于现有部署的组复制的集群失败,并显示实例已经是复制组的一部分的错误。 这只发生在MySQL Shell的默认向导模式中。 解决方法是通过使用--no-wizard命令选项启动mysqlsh来禁用向导模式。
  • InnoDB集群服务器实例不支持使用--defaults-extra-file选项指定选项文件。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

MySQL干货资料
创建时间:2020-05-06 14:18:32
每天都有干货输出哦
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~