当前位置: 首页 > news >正文

在 Windows 和 Linux 下使用 C/C++ 连接 MySQL 的详细指南

前言

MySQL 是一种流行的关系型数据库管理系统,广泛应用于各种应用程序中。C/C++ 作为高性能编程语言,常被用于需要与数据库交互的开发中。下面详细讲解如何在 Windows 和 Linux 平台下使用 C/C++ 连接 MySQL 数据库,帮助你快速上手。


准备工作

在开始之前,请确保以下条件已满足:

  1. MySQL 数据库:已安装并运行 MySQL 服务器。

  2. C/C++ 开发环境:Windows 上推荐使用 Visual Studio 或 MinGW,Linux 上推荐使用 gcc/g++。

  3. MySQL C API:这是 MySQL 提供的 C 语言接口,用于连接和操作数据库。

接下来,我们将分平台介绍具体步骤。


Windows 平台

1. 安装 MySQL C API 库

  • 从 MySQL 官方网站 下载 MySQL Connector/C++

  • 安装后,你会得到以下关键文件:

    • libmysql.lib(静态链接库)

    • libmysql.dll(动态链接库)

    • 头文件(如 mysql.h),通常位于安装目录的 include 文件夹中。

2. 配置开发环境

  • 头文件:将 MySQL 的 include 目录添加到项目的包含路径中。

  • 链接库:在项目设置中链接 libmysql.lib。

  • 动态库:将 libmysql.dll 复制到你的可执行文件目录,或添加到系统 PATH 环境变量中。

3. 编写代码

以下是一个简单的 C++ 示例代码,用于连接 MySQL 数据库:

#include <mysql.h>
#include <iostream>int main() {MYSQL* conn = mysql_init(NULL); // 初始化 MySQL 连接对象if (!conn) {std::cerr << "Initialization failed" << std::endl;return 1;}// 连接到 MySQL 数据库if (!mysql_real_connect(conn, "localhost", "your_username", "your_password", "your_database", 0, NULL, 0)) {std::cerr << "Connection error: " << mysql_error(conn) << std::endl;mysql_close(conn);return 1;}std::cout << "Successfully connected to MySQL!" << std::endl;mysql_close(conn); // 关闭连接return 0;
}

4. 编译和运行

  • 如果使用 Visual Studio,在项目属性中配置好包含目录和库目录后,直接构建即可。

  • 如果使用 MinGW,可以用以下命令编译:

g++ -o mysql_test mysql_test.cpp -L"path_to_lib" -lmysql

Linux 平台

1. 安装 MySQL C API 库

  • 在 Linux 上,使用包管理器安装 MySQL 开发包。例如,在 Ubuntu 上运行:

sudo apt-get update
sudo apt-get install libmysqlclient-dev

  • 安装完成后,头文件(mysql.h)通常位于 /usr/include/mysql,库文件位于 /usr/lib。

2. 编写代码

Linux 下的代码与 Windows 类似,以下是一个 C 示例:

#include <mysql/mysql.h>
#include <stdio.h>int main() {MYSQL* conn = mysql_init(NULL); // 初始化 MySQL 连接对象if (!conn) {fprintf(stderr, "Initialization failed\n");return 1;}// 连接到 MySQL 数据库if (!mysql_real_connect(conn, "localhost", "your_username", "your_password", "your_database", 0, NULL, 0)) {fprintf(stderr, "Connection error: %s\n", mysql_error(conn));mysql_close(conn);return 1;}printf("Successfully connected to MySQL!\n");mysql_close(conn); // 关闭连接return 0;
}

3. 编译代码

使用 g++ 或 gcc 编译,并链接 MySQL 库:

g++ -o mysql_test mysql_test.c -lmysqlclient

 运行程序:

./mysql_test

 

注意事项

  • MySQL 服务器状态:确保 MySQL 服务正在运行,可以通过 mysql -u your_username -p 测试连接。

  • 用户名和密码:替换代码中的 your_username、your_password 和 your_database 为实际值。

  • Windows 特定:如果遇到“找不到 DLL”错误,检查 libmysql.dll 是否在可执行文件目录或 PATH 中。

  • Linux 特定:若编译报错“找不到 -lmysqlclient”,确认是否已安装 libmysqlclient-dev。


进阶操作

连接成功后,你可以执行以下操作:

  • 执行 SQL 查询:使用 mysql_query() 或 mysql_real_query()。

  • 获取结果集:使用 mysql_store_result() 和 mysql_fetch_row()。

  • 错误处理:始终检查函数返回值并使用 mysql_error() 获取错误信息。

示例(查询表数据):

if (mysql_query(conn, "SELECT * FROM your_table") == 0) {MYSQL_RES* result = mysql_store_result(conn);MYSQL_ROW row;while ((row = mysql_fetch_row(result))) {printf("%s\n", row[0]); // 输出第一列数据}mysql_free_result(result);
}

通过以上步骤,你可以在 Windows 和 Linux 上使用 C/C++ 成功连接 MySQL 数据库。这只是入门,后续你可以深入学习 SQL 操作、事务处理等高级功能。

http://www.lryc.cn/news/573872.html

相关文章:

  • SQL 中 HAVING COUNT (1)>1 与 HAVING COUNT (*)>1 的深度解析
  • Spring Boot Actuator 跟踪HTTP请求和响应
  • 开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化
  • Python 的内置函数 help
  • python 常见数学公式函数使用详解
  • oracle rac - starwind san 磁盘共享篇
  • 【闲谈】对于c++未来的看法
  • Java面试复习:面向对象编程、JVM原理与Java 8新特性
  • Flink源码阅读环境准备全攻略:搭建高效探索的基石
  • Go语言--语法基础6--基本数据类型--数组类型(1)
  • 114. 二叉树展开为链表
  • C++插值记录
  • 开发云数据库
  • Python环境搭建竞赛
  • python的高校教师资源管理系统
  • 【Guava】0.做自己的编程语言
  • 删除node并且重装然后重装vue
  • 深度学习:PyTorch人工神经网络优化方法分享(2)
  • 【redis使用场景——缓存——双写一致性】
  • 文心一言(ERNIE Bot):百度打造的知识增强大语言模型
  • 一键打包利器:gopack - 极简Go程序编译与压缩工具
  • Ollama按照与使用
  • openapi-generator-maven-plugin自动生成HTTP远程调用客户端
  • Java面试复习指南:基础、面向对象、Java 8新特性及并发编程
  • ASP.NET Core API文档与测试实战指南
  • 编程江湖-Git
  • 分库分表下的 ID 冲突问题与雪花算法讲解
  • 【数据结构】_二叉树部分特征统计
  • python基础(3)
  • 【论文阅读 | CVPR 2024 |Fusion-Mamba :用于跨模态目标检测】