C++连接MySQL推荐初学者用原生C API(轻量稳定),进阶用Connector/C++(面向对象、支持预处理);需安装对应开发包并验证配置工具;C API需手动管理资源,Connector/C++需注意事务提交与空值处理。

用C++连接MySQL,核心是使用MySQL官方提供的C API(libmysqlclient)或更现代的封装库(如mysqlcppconn,即Connector/C++)。推荐初学者从原生C API入手,轻量、稳定、文档全;进阶项目可考虑Connector/C++(支持面向对象、预处理语句、事务更清晰)。
准备环境:安装MySQL开发包
Windows下下载MySQL Installer,勾选“Developer Components”和“C Connector”;Linux用包管理器安装:
- Ubuntu/Debian:
sudo apt install libmysqlclient-dev libmysqlcppconn-dev - CentOS/RHEL:
sudo yum install mysql-devel mysql-connector-c++-devel
确保能调用mysql_config --cflags --libs(C API)或mysqlcppconn-config --cflags --libs(Connector/C++)验证路径是否就绪。
用C API连接并查询(简洁可靠)
这是最直接的方式,适合嵌入式或性能敏感场景。注意:C API是C风格,需手动管理连接、结果集、内存。
立即学习“C++免费学习笔记(深入)”;
#include <mysql/mysql.h>
#include <iostream>
<p>int main() {
MYSQL* conn = mysql_init(nullptr);
if (!conn) {
std::cerr << "Init failed\n";
return -1;
}</p><pre class="brush:php;toolbar:false;">// 连接数据库(host, user, passwd, db, port, unix_socket, flag)
if (!mysql_real_connect(conn,
"127.0.0.1", "root", "password",
"testdb", 3306, nullptr, 0)) {
std::cerr << "Connect error: " << mysql_error(conn) << "\n";
mysql_close(conn);
return -1;
}
// 执行查询
if (mysql_query(conn, "SELECT id, name FROM users LIMIT 3")) {
std::cerr << "Query error: " << mysql_error(conn) << "\n";
mysql_close(conn);
return -1;
}
MYSQL_RES* res = mysql_store_result(conn);
if (res) {
MYSQL_ROW row;
while ((row = mysql_fetch_row(res))) {
std::cout << "ID: " << (row[0] ? row[0] : "NULL")
<< ", Name: " << (row[1] ? row[1] : "NULL") << "\n";
}
mysql_free_result(res);
}
mysql_close(conn);
return 0;登录后复制
}
编译命令(Linux):g++ -o demo demo.cpp `mysql_config --cflags --libs`
标签: mysql linux word centos windows ubuntu 工具 ai unix c++ ios wi
还木有评论哦,快来抢沙发吧~