Clion连接MySQL数据库:实现C/C++语言与MySQL交互

确保你的电脑里已经有了MySQL。

1、找到MySQL的目录

2、进入lib目录

3、复制libmysql.dll和libmysql.lib文件

4、将这俩文件粘贴到你的clion项目的cmake-build-debug目录下

如果不是在这个目录下,运行时会出以下错误报错:
进程已结束,退出代码为 -1073741515 (0xC0000135)
5、修改CMakeLists.txt文件

原始文件内容:

cpp 复制代码
cmake_minimum_required(VERSION 3.27)
project(clion)

set(CMAKE_CXX_STANDARD 17)

add_executable(clion main.cpp)

修改后:

cpp 复制代码
cmake_minimum_required(VERSION 3.27)
project(clion)

include_directories(D:\\MySQL\\mysql-8.1.0-winx64\\include)#添加的,需要根据你的位置修改
link_directories(D:\\MySQL\\mysql-8.1.0-winx64\\lib)#添加的,需要根据你的位置修改
link_libraries(libmysql)#添加的,这块不用根据你的情况更改,直接使用

set(CMAKE_CXX_STANDARD 17)

add_executable(clion main.cpp)

target_link_libraries(clion libmysql)#添加的,需要根据你的项目名修改

注意:
include_directories(D:\\MySQL\\mysql-8.1.0-winx64\\include)
link_directories(D:\\MySQL\\mysql-8.1.0-winx64\\lib)

这里的目录位置是你的MySQL安装的位置,对应如下两个文件夹

target_link_libraries(clion libmysql)

这里的clion是你的项目名。

其他地方保持和我给出的一致即可。

6、#include <mysql.h>即可

包含mysql.h之后,就可以正常使用MySQL啦!以下是代码示例:

cpp 复制代码
#include<bits/stdc++.h>
#include <mysql.h>
using namespace std;
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
int main(void){
    conn = mysql_init(NULL);
    /*连接数据库部分*/
    
    /*输入你的数据库信息*/
    const char *server = "localhost";
    const char *user = "root";
    const char *password = "123456";
    const char *database = "base";
    
    /*尝试连接*/
    if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
        std::cerr << "数据库连接失败: " << mysql_error(conn) << std::endl;
        return 1;
    }
 
    /*关闭数据库*/
    mysql_close(conn);
    return 0;
}

记得对数据库初始化就行。不初始化,还是会报错,报错的原因跟本文想要做到的事情无关了,属于实现问题。

初始化语句:conn = mysql_init(NULL);

不对数据库初始化,报错: 进程已结束,退出代码为 -1073741819 (0xC0000005)

相关推荐
似水এ᭄往昔19 分钟前
【C语言】预处理(预编译)(C语言完结篇)
c语言·开发语言
愚润求学29 分钟前
【C++】模板进阶
c语言·开发语言·c++·笔记·模板
提高记忆力39 分钟前
truncate,drop,delete分析
数据库
江节胜-胜行全栈AI1 小时前
PostgreSQL-中文字段排序-修改字段的排序规则
数据库·postgresql
就是蠢啊1 小时前
SpringBoot 基础知识,HTTP 概述
数据库·mysql·spring
darkchink2 小时前
[LevelDB]Block系统内幕解析-元数据块(Meta Block)&元数据索引块(MetaIndex Block)&索引块(Index Block)
android·java·服务器·c语言·数据库·c++·分布式
代码拾光2 小时前
如果单表数据量大,只能考虑分库分表吗?
数据库
Rinai_R2 小时前
xv6-labs-2024 lab2
c语言·操作系统·学习笔记·计算机基础·实验
xiecoding.cn2 小时前
Sublime Text使用教程(用Sublime Text编写C语言程序)
c语言·c++·青少年编程·编辑器·sublime text