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

Windows下Qt应用连接远程MySQL报SSL协议版本不匹配错误求助

排查Qt Windows应用连接OpenSSL3.0.x MySQL服务器的SSL协议不匹配问题
  • 确认Windows端Qt程序依赖的OpenSSL版本
    你的Windows版Qt应用大概率依赖OpenSSL 1.1.x(预编译Qt包通常自带该版本),而服务器升级到OpenSSL3.0后,默认可能禁用了TLS1.0/TLS1.1这类旧协议,导致两端协议协商失败。可以通过以下方式确认:

    • 查看程序目录下的SSL相关动态库(如libssl-1_1.dll、libcrypto-1_1.dll),判断版本;
    • 用依赖分析工具(如Dependency Walker)检查Qt程序或QMYSQL驱动的依赖库版本。
  • 调整MySQL服务器的SSL协议与加密套件配置
    OpenSSL3.0对协议和加密套件的默认支持有变化,需修改MySQL配置文件(my.cnf/my.ini),添加或调整以下参数:

    # 允许兼容的TLS版本,至少包含TLS1.2(同时支持TLS1.3更好)
    tls_version = TLSv1.2,TLSv1.3
    # 配置新旧OpenSSL都支持的加密套件
    ssl_cipher = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
    

    修改后重启MySQL服务,测试Windows端连接。

  • 升级Windows端Qt应用的OpenSSL库
    直接给Windows端程序替换为OpenSSL3.0.x版本的动态库(libssl3.dll、libcrypto3.dll),将这两个文件放在Qt应用的可执行文件同目录下,再测试连接。注意要下载对应架构(32/64位)的版本,与你的Qt程序编译架构一致。

  • 强制Qt数据库连接使用指定TLS版本
    在Qt代码中显式指定SSL连接使用的TLS版本,避免协商时选用旧协议。修改连接配置:

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("your-host");
    db.setUserName("your-user");
    db.setPassword("your-pass");
    db.setDatabaseName("your-db");
    // 强制使用TLS1.2或TLS1.3
    db.setConnectOptions("MYSQL_OPT_SSL_CA=./ca.pem;"
                        "MYSQL_OPT_SSL_CERT=./client-cert.pem;"
                        "MYSQL_OPT_SSL_KEY=./client-key.pem;"
                        "MYSQL_OPT_SSL_TLS_VERSION=TLSv1.2");
    
  • 验证SSL握手过程
    使用不同版本的OpenSSL客户端测试连接,定位问题:

    • 在Windows端用OpenSSL1.1.x执行:openssl s_client -connect your-mysql-host:3306 -tls1_2
    • 用OpenSSL3.0.x执行同样命令,对比两者的输出,查看是否有握手失败、加密套件不匹配等信息。
  • 检查MySQL用户的SSL权限配置
    确认你的MySQL用户没有限制过严的SSL要求,执行以下SQL语句查看权限:

    SHOW GRANTS FOR 'your-user'@'%';
    

    确保权限中的SSL要求(如REQUIRE SSL/REQUIRE X509)与当前的SSL配置兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:45:32