Documentation Home
MySQL 路由器发行说明  / 版本 8.0 中的更改  /  MySQL Router 8.0.24 的变化(2021-04-20,全面上市)

MySQL Router 8.0.24 的变化(2021-04-20,全面上市)

添加或更改的功能

  • 更改了路由器使用的默认端口,默认行为取决于--conf-base-port引导程序选项。

    如果--conf-base-port未设置,则相关bind_port值从 6446 开始;经典(RW 6446、RO 6447)和 X 协议(RW 6448、RO 6449)。此外,现在设置--conf-base-port为 0 使用经典(RW 6446、RO 6447)和 X 协议(RW 64460、RO 64470)的旧默认端口。

    原因:根据 RFC 6335,之前的默认 X 协议端口(64460 和 64470)被定义为“动态端口”。

  • 以前,路由器在启动时绑定传入套接字并保持打开状态,即使没有可用目的地也是如此。现在 Router 仅在目的地可用时绑定到套接字,否则关闭传入套接字。这也意味着负载均衡器知道路由器是否可以处理流量。

修正错误

  • Debian Router 包中的mysqlrouter.conf文件没有设置运行目录为绝对路径名,导致包安装错误。(缺陷号 32620788)

  • 在 Solaris 上编译时禁用代码缓存以避免“无效字节码”错误;以前它只对 sun-cc 构建禁用。(缺陷号 32567899)

  • 当使用优先可用策略和静态路由时,路由器可能无法启动并发出类似于“plugin 'routing:test_default' start failed: routing:test_default: Failed setting up TCP service”的错误;修复了启动时“正在运行”和“启动套接字接受器”之间的竞争条件。(缺陷号 32565479)

  • 修复了在连接到主节点失败后先前的目标列表包含主要目标的断言。这个断言被触发是因为主要目的地在刷新期间没有被正确识别。(缺陷号 32543464)

  • 大于套接字发送缓冲区的网络传输(例如大型结果集或查询)可能会终止连接。(缺陷号 32543049)

  • 如果 write() 阻塞并且没有数据被写入,现在返回一个 std::errc::operation_would_block 错误代码;在返回 0 之前。(缺陷号 32542170)

  • 在没有参数的情况下在同一台机器上配置第二个 Router 实例--name会产生与文件清理相关的意外错误。(错误号 32517802)

  • 路由器会在套接字打开之前报告为 READY;所以现在在设置套接字接受器后报告它。(缺陷号 32429409)

  • connect() 之前的网络丢失会导致较长的故障转移时间,因为它取决于操作系统的网络超时。该connect_timeout选项未被接受,但现在在连接之前应用。(缺陷号 32428113)

  • 路由器不再依赖 MySQL 实例的等待主故障转移可用性逻辑。相反,它现在检查元数据缓存的副本集信息以查找新的主节点。这是因为 GR 成员资格不会改变,即使路由器和主路由器之间的网络丢失。(缺陷号 32393421)

  • 在 Router 和组复制 PRIMARY 之间的网络丢失(但不是组复制成员之间的网络丢失)之后,Router 对故障转移的等待在 10 秒后没有超时,而是连接保持锁定状态。(缺陷号 32338771)

  • 期望数值的配置选项将允许十六进制和八进制值;但现在只允许完全数值。比如--config-base-port=0xff 现在报错。(缺陷号 32297657)

  • 改进了 DEBUG 日志记录机制以包括以下信息:主机:端口、执行时间、OK/ERR 信息和行数。此外,现在记录一条消息,而不是单独的前/后消息。(缺陷号 32293818)

  • REST 端点超时检查从等待“超时+请求时间”更改为等待超时到期。(缺陷号 32252500)

  • 连接器/ODBC 将 ENUM 列报告为 SQL_CHAR,因为 ODBC 标准不支持 ENUM,并且 MS SQL Server 期望 CHAR 数据始终与列定义中指定的固定长度相同。这修复了与驱动程序的 UNICODE 版本中存在的换行符和制表符相关的错误。解决方法是通过不设置 NO_SSPS=1 来启用 SSPS(默认)。(缺陷 #28783266,缺陷 #92748)

    参考资料:另请参阅:Bug #32537000。