You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用mysql2 gem连接MySQL 8.4.5服务器时遇TLS/SSL证书信任问题

解决Windows下Ruby mysql2 gem连接MySQL 8.4.5的SSL验证错误

核心原因

MySQL 8.4.5默认启用SSL并使用自签名证书,Windows系统的信任根存储不包含该证书;同时你可能误用了mysql2 gem的参数名(比如用sslverify而非正确的ssl_verify_server_cert),导致禁用SSL验证的设置未生效。

解决方案

方案1:修正客户端连接参数(无需修改服务器)

确保连接代码使用正确的参数名关闭证书验证,示例代码:

client = Mysql2::Client.new(
  host: '你的MySQL服务器IP',
  username: 'user',
  password: 'somepassword',
  database: 'Jungle',
  ssl_mode: :disabled,
  ssl_verify_server_cert: false
)

注意:ssl_verify_server_cert是mysql2 gem的标准参数,而非sslverify,参数名错误会导致设置无效。

方案2:服务器端禁用SSL(如果不需要加密连接)

  1. 编辑Debian上的MySQL配置文件,路径通常为/etc/mysql/mysql.conf.d/mysqld.cnf
  2. 在[mysqld]区块添加或修改:
skip_ssl
  1. 重启MySQL服务:
sudo systemctl restart mysql

重启后服务器不再强制SSL连接,客户端无需处理证书验证。

方案3:信任服务器自签名证书(保留SSL加密)

如果需要保留SSL连接,可在连接时指定服务器证书路径:

  1. 从Debian服务器复制默认CA证书,路径为/var/lib/mysql/ca.pem,传到Windows客户端的某个目录
  2. 修改连接代码指定证书路径:
client = Mysql2::Client.new(
  host: '你的MySQL服务器IP',
  username: 'user',
  password: 'somepassword',
  database: 'Jungle',
  ssl_mode: :required,
  ssl_ca: 'C:/路径/到/ca.pem'
)

内容的提问来源于stack exchange,提问作者PrincessPeachTheDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:15:02