MySQL 路由器发行说明  / 2.0 版的变化  /  MySQL Router 2.0.3 的变化(2016-03-03,全面上市)

MySQL Router 2.0.3 的变化(2016-03-03,全面上市)

添加或更改的功能

  • 添加了对 Solaris 11.2 及更高版本、Fedora 22 及更高版本以及 OS X 10.10 及更高版本的支持。(漏洞 #22842993)

  • 添加了两个新的连接路由选项:

    • max_connect_errors: 类似于 MySQL Server 的max_connect_errors 选项,默认为 100

    • client_connect_timeout: 类似于MySQL Server的connect_timeout 选项,默认为9(比MySQL Server默认少1秒)

    (缺陷号 22020088)

修正错误

  • 包含空目标值的配置,例如“destinations=test,,,,”,将导致路由器终止并出现未捕获的异常。这种情况现在会发出错误,例如“配置错误:[routing:foo] 中的选项目的地:在目的地列表中找到空地址”。(缺陷号 22579989)

  • 当在配置变量中使用非字母数字字符时,例如“destinations = {mysql@1}”,路由器将终止并出现未捕获的异常。(漏洞 #22572346)

  • 在某些网络设置中,例如当连接到 VPN 时,路由可能会失败并出现错误“不支持的操作”。在设置服务时添加了错误处理,这会引发或记录错误。(错误#22531942,错误#79933)

  • 在没有插件(或定义的战略计划)的情况下启动路由器现在会发出一个描述性错误,指出缺少插件。例如,加载一个空的配置文件现在退出时出错。(缺陷号 22195343)

  • 插件现在可以访问 URI 类,并且添加了 mysqlrouter::split_string。(漏洞 #22134596)

  • destinations超过 256 个字符 的配置长度会导致路由器挂起。(漏洞 #22104451)

  • 在某些情况下,IPv6 地址缺少 IP 地址两边的方括号。例如,“[::]:7002”可以报告为“::7002”;(缺陷 #22084430,缺陷 #78921)

  • --help文本现在输出 MySQL Router 版本号 。(漏洞 #22074209)

  • 在检查服务器是否被隔离时添加了一个 lock_guard,以防止通过读取更改隔离向量。(漏洞 #22071169)

  • 在服务器地址之间使用空格启动路由器 destination会报告配置错误。现在,从服务器地址中删除了空格。(缺陷号 22062859)

  • 卸载 MySQL Router ( dpkg -r mysql-router ) 留下了额外的文件。现在,只剩下配置文件了。(缺陷号 22025434)

  • 当连接到 Router 的 MySQL 客户端和配置的后端不可用时,生成的错误(例如“ ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 ”不清楚。

    现在,当没有任何后端服务器可用时,客户端会收到一条类似于 MySQL 客户端连接到 MySQL 服务器未运行的主机/端口对时生成的消息。例如,“错误 2003 (HY000):无法连接到‘127.0.0.1’(61) 上的 MySQL 服务器”。(缺陷 #22020711,缺陷 #78836)

  • 当客户端通过 Router 连接时,它没有完成握手(或握手不正确),它会在 MySQL 服务器上产生错误。对于 MySQL 5.6 和 5.7,在 100 次之后它会阻塞这个客户端来自的主机。因为所有客户端看起来都好像来自路由器中的同一 IP/主机,所以一个客户端行为不当可能会阻止所有其他应用程序。

    这只影响来自网络的连接而不影响来自本地主机的连接,因为当连接来自本地主机时,MySQL 服务器不会记录连接错误。

    解决方法是使用本地主机(意思是,MySQL 服务器与路由器位于同一主机上),或将 max_connect_errors 选项设置为可能的最高值(在 64 位上为 2^64)。(漏洞 #22020088,漏洞 #78835)

  • 从 Valgrind 生成的报告中发现了一些代码改进。(缺陷 #21983406,缺陷 #78805)

  • 结构缓存插件中存在内存泄漏。(漏洞 #21981758)