如何使用Ruby和mysql2 gem通过TLS1.2连接mysql数据库

问题描述

我在使用 Ruby 和 mysql2 gem 通过 TLSV1.2 连接到 MysqL 数据库时遇到问题。 ruby 脚本在 Windows 上运行。我收到以下错误

TLS version used does not meet minimal requirements for this server. Please use a higher TLS version and retry.

基于一些研究,我认为 MysqL2 使用了 Connector/C 库 (6.1.1),它似乎是针对 YASSL 构建的,它最多只支持 TLSV1.1。我可以通过 TLSV1.1 成功连接,但如果我将连接限制为 TLSV1.2,则会出现上述错误

似乎有可能获得一个针对 OpenSSL 构建的版本,它支持高 TLS 版本,但我发现了关于这是否仅适用于商业版本,或者是否也可以通过社区版获得的相互矛盾的信息。有没有人在这方面有专业知识并且可以推荐一个可能的解决方案?是否有可能获得 MysqL2 和兼容 TLSV1.2 的连接器?

解决方法

您对 mysql2 using connector/c 的看法是正确的。

不确定 6.1.1 版本从何而来。你的意思是 MariaDB-connector-c-3.1.11? 谁的发行说明在它的 openssl 版本中宣传了 TLS-1.3。

我检查了从上面的链接下载的 centos8 二进制文件及其与系统 openssl 的链接(查看 ldd ./lib/mariadb/libmariadb.so)。

据我所知,这里没有社区与企业的区别。