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

Win11下C++连接MySQL失败求助(错误码3)

MySQL Connector/C++ 连接错误(Error Code:3)排查与解决

可能原因与对应解决办法

1. 版本兼容性问题

Connector/C版本与MySQL服务版本不匹配会导致协议冲突,比如MySQL 8.0+搭配低版本Connector/C。

  • 解决:卸载现有Connector/C++,下载与MySQL服务同大版本的官方包重新安装,确保编译链接的库和运行时加载的库版本一致。

2. 编译架构不匹配

Win11下Visual Studio的编译目标(x64/x86)若与Connector/C++库架构不一致,会引发运行时连接失败。

  • 解决:在Visual Studio项目属性中,将平台工具集和目标平台设置为与Connector/C++库完全一致;同时检查系统环境变量中MySQL路径对应正确架构的库文件。

3. 连接字符串格式错误

Connector/C++的两种API(传统JDBC风格/X DevAPI)对连接字符串要求不同:

  • 传统API:需使用tcp://127.0.0.1:3306,且初始化sql::mysql::MySQL_Driver
  • X DevAPI:需使用mysqlx://127.0.0.1:33060(默认X协议端口为33060),并通过mysqlx::Session建立连接
  • 解决:根据使用的API类型修正连接字符串格式。

4. 网络拦截问题

Win11防火墙或第三方安全软件可能拦截了程序的网络请求,导致无法访问3306端口。

  • 解决:临时关闭防火墙测试连接,若恢复正常则为程序添加入站/出站规则;检查第三方安全软件的拦截列表,排除你的编译程序。

5. MySQL配置限制

MySQL配置文件my.ini中bind-address若设置为特定IP,可能限制了程序的连接请求(即使DBeaver能连接也需排查)。

  • 解决:打开配置文件,确认bind-address = 0.0.0.0(允许所有IP访问),且无skip-networking配置项;修改后重启MySQL服务。

6. 运行时依赖缺失

编译正常但运行时出错,大概率是缺少Connector/C++的动态链接库(如mysqlcppconn8.dll或mysqlcppconn.dll)。

  • 解决:将Connector/C++安装目录下的bin文件夹路径添加到系统PATH环境变量;或直接将对应DLL复制到程序输出目录(Debug/Release文件夹)。

调试卡死处理

调试时卡死多因调试器无法跟踪release版本的Connector/C++库,缺少调试信息。

  • 解决:下载Connector/C++的Debug版本库,在Visual Studio调试模式下链接Debug库;同时在项目属性中设置“调试信息格式”为Program Database (/Zi)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 22:22:09