首先安装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++免费学习笔记(深入)”;
示例编译命令(Linux/macOS):
g++ main.cpp -o main -lmysqlclient
3. C++连接MySQL代码示例
以下是一个基本的C++程序,演示如何连接MySQL、执行查询并输出结果。
#include <iostream>
#include <mysql.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
// 初始化连接句柄
conn = mysql_init(NULL);
if (!conn) {
std::cerr << "Error: MySQL init failed\n";
return 1;
}
// 连接数据库
if (!mysql_real_connect(conn, "localhost", "root", "password", "testdb", 3306, NULL, 0)) {
std::cerr << "Error: " << mysql_error(conn) << std::endl;
mysql_close(conn);
return 1;
}
// 执行查询
if (mysql_query(conn, "SELECT id, name FROM users")) {
std::cerr << "Query Error: " << mysql_error(conn) << std::endl;
mysql_close(conn);
return 1;
}
res = mysql_store_result(conn);
if (res == NULL) {
std::cerr << "Store result error: " << mysql_error(conn) << std::endl;
mysql_close(conn);
return 1;
}
// 遍历结果
while ((row = mysql_fetch_row(res))) {
std::cout << "ID: " << row[0] << ", Name: " << row[1] << std::endl;
}
// 释放资源
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连接数据库并不复杂,但要注意错误处理和资源释放。
以上就是c++++怎么连接MySQL数据库_c++连接MySQL数据库操作教程的详细内容,更多请关注php中文网其它相关文章!