当前位置:首页 > C++ > 正文

C++连接MySQL数据库实战教程(从零开始搭建开发环境并实现数据操作)

在现代软件开发中,C++连接MySQL 是一个非常实用的技能。无论是开发桌面应用、游戏服务器还是嵌入式系统后台,掌握如何使用 C++ 与 MySQL 数据库交互都至关重要。本教程将手把手教你从零开始配置开发环境,并编写第一个 C++ 程序连接 MySQL,适合完全没有经验的小白读者。

C++连接MySQL数据库实战教程(从零开始搭建开发环境并实现数据操作) C++连接MySQL C++数据库编程 MySQL C++ API Visual Studio MySQL连接 第1张

一、准备工作:安装必要组件

要实现 C++数据库编程,你需要以下工具:

  • MySQL 服务器(建议 8.0 或以上版本)
  • MySQL Connector/C++(官方提供的 C++ 驱动)
  • 支持 C++11 或更高标准的编译器(如 GCC、Clang 或 Visual Studio)
  • CMake(用于构建项目,可选但推荐)

二、下载并配置 MySQL Connector/C++

前往 MySQL 官网 下载适用于你操作系统的 Connector/C++。以 Windows + Visual Studio 为例:

  1. 下载 ZIP 格式的预编译库(例如 mysql-connector-c++-8.0.xx-winx64.zip
  2. 解压到本地目录,例如 C:\mysql-connector-c++
  3. lib64\vs14(或对应 VS 版本)中的 .lib 文件路径添加到项目链接器
  4. include 目录添加到项目包含目录

三、编写第一个 C++ 连接 MySQL 程序

下面是一个完整的示例程序,演示如何使用 MySQL C++ API 连接到数据库并执行简单查询。

#include <iostream>#include <mysqlx/xdevapi.h>using namespace std;using namespace mysqlx;int main() {    try {        // 创建会话:主机、端口、用户名、密码、数据库名        Session sess("localhost", 33060, "root", "your_password", "test_db");        // 执行 SQL 查询        SqlResult res = sess.sql("SELECT id, name FROM users LIMIT 5").execute();        // 遍历结果        Row row;        while ((row = res.fetchOne())) {            cout << "ID: " << row[0] << ", Name: " << row[1] << endl;        }        cout << "查询成功!" << endl;    }    catch (const mysqlx::Error& err) {        cerr << "MySQL 错误: " << err << endl;    }    catch (const std::exception& ex) {        cerr << "标准异常: " << ex.what() << endl;    }    return 0;}  

四、项目配置说明(以 Visual Studio 为例)

如果你使用的是 Visual Studio MySQL连接 开发,需进行以下设置:

  • 包含目录:项目属性 → C/C++ → 常规 → 附加包含目录 → 添加 C:\mysql-connector-c++\include
  • 库目录:链接器 → 常规 → 附加库目录 → 添加 C:\mysql-connector-c++\lib64\vs14
  • 附加依赖项:链接器 → 输入 → 附加依赖项 → 添加 mysqlcppconn8.lib
  • 确保运行时能找到 DLL:将 libmysql.dllmysqlcppconn8.dll 放入可执行文件目录或系统 PATH

五、常见问题与解决方案

Q1:连接时报“Authentication plugin 'caching_sha2_password' cannot be loaded”?
A:这是 MySQL 8.0 默认认证方式的问题。解决方法:在 MySQL 中为用户修改认证插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

Q2:找不到头文件 mysqlx/xdevapi.h?
A:请确认你使用的是 MySQL Connector/C++ 8.0+,它使用 X DevAPI。旧版(1.x)使用的是 JDBC 风格 API,头文件不同。

六、总结

通过本教程,你已经学会了如何在 C++ 项目中连接和操作 MySQL 数据库。掌握 C++连接MySQL 技术后,你可以构建功能更强大的应用程序,如用户管理系统、日志分析工具或实时数据监控平台。建议多练习增删改查(CRUD)操作,并深入学习事务处理和连接池优化。

祝你在 C++ 与数据库开发的道路上越走越远!