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

使用MySQL Connector/C++编译时提示mysql_connection.h不存在的问题

问题解决步骤
  • 修复CMake中带空格的路径配置
    你定义的MySQL Connector路径包含空格,没有用引号包裹会被CMake识别为两个独立参数,导致后续include路径失效,修改对应行:
    原代码:

    set(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR C:/Program Files/MySQL/MySQL Connector C++ 8.0)
    

    修改为:

    set(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR "C:/Program Files/MySQL/MySQL Connector C++ 8.0")
    
  • 修正头文件引用规则
    mysql_connection.h默认存放于Connector安装目录下的include/cppconn目录,更规范的做法是只将Connector的主include目录加入包含路径,代码中引用时带上cppconn前缀,避免头文件命名冲突:

    1. 删除CMake中多余的include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/cppconn)行
    2. 修改main.cpp中的头文件引用为:
    #include <iostream>
    #include <cppconn/mysql_connection.h>
    #include <cppconn/mysql_driver.h>
    
  • 修正数据库连接参数错误
    MySQL的connect方法不需要http协议前缀,正确的地址格式为tcp://地址:端口,如果你确认MySQL服务端口为8889,修改对应行为:

    con = driver->connect("tcp://localhost:8889", "root", "root");
    
  • 检查架构匹配
    确认你的项目编译架构(32位/64位)和安装的MySQL Connector/C++架构一致,如果你使用Visual Studio编译,还需要检查lib路径是否对应你的VS版本,部分版本的Connector会将库文件放在lib/vsxx子目录下,需要将link_directories的路径修改为对应库文件所在的实际目录。

  • 额外注意
    修改完CMake配置后请清空之前的构建目录,重新执行cmake生成构建文件,避免旧缓存导致配置不生效。编译通过后需要将Connector安装目录lib下的mysqlcppconn.dll放到生成的exe同目录,或者将该lib目录加入系统PATH环境变量,避免运行时找不到动态库的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:21:04