首先安装MySQL开发库并配置环境,然后使用MySQL Connector/C API编写C++程序连接数据库;通过mysql_init初始化、mysql_real_connect建立连接,mysql_query执行SQL语句,mysql_store_result获取结果集,mysql_fetch_row遍历数据,最后用mysql_free_result和mysql_close释放资源。

要在C++中连接MySQL数据库,你需要使用MySQL官方提供的C API库——MySQL Connector/C。通过这个库,你可以在C++程序中执行SQL语句、查询数据、插入记录等操作。下面是一个完整的操作教程,帮助你快速实现C++连接MySQL。
1. 安装MySQL开发库
在开始前,确保你的系统已经安装了MySQL服务器和开发库:
- Windows:下载并安装 MySQL Installer,选择包含 "MySQL Server" 和 "MySQL Connector/C++" 或 "Development Libraries" 的组件。
-
Linux(Ubuntu/Debian):
sudo apt-get install libmysqlclient-dev -
macOS(使用Homebrew):
brew install mysql-client
2. 配置编译环境
确保你的编译器能找到MySQL的头文件和库文件。
- 头文件路径一般为:/usr/include/mysql 或 C:\Program Files\MySQL\MySQL Server X.X\include
- 库文件路径:/usr/lib/x86_64-linux-gnu/libmysqlclient.so 或 Windows 下的 libmysql.lib
编译时需要链接 -lmysqlclient 库。
立即学习“C++免费学习笔记(深入)”;
Difeye是一款超轻量级PHP框架,主要特点有: Difeye是一款超轻量级PHP框架,主要特点有: ◆数据库连接做自动主从读写分离配置,适合单机和分布式站点部署; ◆支持Smarty模板机制,可灵活配置第三方缓存组件; ◆完全分离页面和动作,仿C#页面加载自动执行Page_Load入口函数; ◆支持mysql,mongodb等第三方数据库模块,支持读写分离,分布式部署; ◆增加后台管理开发示例
示例编译命令(Linux/macOS):
g++ main.cpp -o main -lmysqlclient
3. C++连接MySQL代码示例
以下是一个基本的C++程序,演示如何连接MySQL、执行查询并输出结果。
#include iostream>#include
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
// 初始化连接句柄
conn = mysql_init(NULL);
if (!conn) {
std::cerr return 1;
}
// 连接数据库
if (!mysql_real_connect(conn, "localhost", "root", "password", "testdb", 3306, NULL, 0)) {
std::cerr mysql_close(conn);
return 1;
}
// 执行查询
if (mysql_query(conn, "SELECT id, name FROM users")) {
std::cerr mysql_close(conn);
return 1;
}
res = mysql_store_result(conn);
if (res == NULL) {
std::cerr mysql_close(conn);
return 1;
}
// 遍历结果
while ((row = mysql_fetch_row(res))) {
std::cout }
// 释放资源
mysql_free_result(res);
mysql_close(conn);
return 0;
}
4. 关键函数说明
- mysql_init():初始化MySQL连接对象。
- mysql_real_connect():建立与MySQL服务器的实际连接,参数包括主机、用户名、密码、数据库名、端口等。
- mysql_query():执行SQL语句(不能有分号)。
- mysql_store_result():获取查询结果集。
- mysql_fetch_row():逐行读取结果。
- mysql_free_result() 和 mysql_close():释放资源,避免内存泄漏。
注意:如果执行的是INSERT、UPDATE、DELETE语句,不需要获取结果集,可直接用 mysql_query() 后调用 mysql_affected_rows() 查看影响的行数。
基本上就这些。只要配置好开发环境,使用MySQL C API连接数据库并不复杂,但要注意错误处理和资源释放。










