来自AI助手的总结
本文介绍了在终端中安装MySQL开发包,并提供了相关代码示例及编译运行步骤。
环境:
打开终端,安装MySQL服务,再安装相关的开发包,如何安装MySQL服务器此处不再赘述,
使用:
dpkg -l | grep libmysqlcppconn
dpkg -l | grep libmysqlclient-dev
查看是否已经安装了相关的开发包:

如果没有任何输出,就是没有安装。
安装开发库:
sudo apt update
sudo apt install -y libmysqlcppconn-dev libmysqlclient-dev
对于第二条命令,如果你知道是什么含义的话,可以自行进行一些修改。参见下方表格
| 包名 | 作用 | 是否需要 |
|---|---|---|
mysql-server |
MySQL 数据库服务器 | ✅ 已安装 |
libmysqlcppconn-dev |
MySQL Connector/C++ 开发库(头文件+链接库) | ❌ 需要安装 |
libmysqlclient-dev |
MySQL C API 开发库(头文件+链接库) | ❌ 建议安装 |
再次执行:
dpkg -l | grep libmysqlcppconn
dpkg -l | grep libmysqlclient-dev
可以看到:

说明相关的包已经安装好了。
代码:
main.cpp:
#include <iostream>
#include <mysql_connection.h>
#include <mysql_driver.h>
#include <cppconn/statement.h>
#include <cppconn/resultset.h>
#include <cppconn/exception.h>
int main() {
try {
sql::mysql::MySQL_Driver *driver = sql::mysql::get_mysql_driver_instance();
// 连接(用完整格式)
std::unique_ptr<sql::Connection> con(driver->connect("tcp://127.0.0.1:3306", "your_user_name", "your_password"));
con->setSchema("your_database");
std::unique_ptr<sql::Statement> stmt(con->createStatement());
// 查询 wp_users 表(WordPress用户表)
std::unique_ptr<sql::ResultSet> res(stmt->executeQuery("SELECT ID, user_login, user_email FROM wp_users"));
int columns = res->getMetaData()->getColumnCount();
while (res->next())
{
for (int i = 1; i <= columns; ++i) {
std::cout << res->getString(i) << "\t";
}
std::cout << std::endl;
}
std::cout << "连接成功!查询完成。" << std::endl;
} catch (sql::SQLException &e) {
std::cerr << "SQL错误: " << e.what() << std::endl;
std::cerr << "错误代码: " << e.getErrorCode() << std::endl;
return 1;
}
return 0;
}
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(mysql_demo)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 手动查找 MySQL C API
find_path(MYSQL_INCLUDE_DIR mysql.h PATH_SUFFIXES mysql)
find_library(MYSQL_LIBRARY mysqlclient)
# 查找 Connector/C++
find_library(MYSQLCPPCONN_LIBRARY mysqlcppconn)
find_path(MYSQLCPPCONN_INCLUDE_DIR cppconn/connection.h PATH_SUFFIXES mysql-cppconn)
add_executable(${PROJECT_NAME} main.cpp)
# 包含头文件
target_include_directories(${PROJECT_NAME}
PRIVATE
${MYSQL_INCLUDE_DIR}
${MYSQLCPPCONN_INCLUDE_DIR}
)
# 链接库
target_link_libraries(${PROJECT_NAME}
PRIVATE
${MYSQLCPPCONN_LIBRARY}
${MYSQL_LIBRARY}
pthread # MySQL 需要 pthread
)
编译运行代码:
mkdir build && cd build
cmake ..
make
./mysql_demo

© 版权声明
THE END











暂无评论内容