MySQL用C/C++连接
连接库下载mysql接口介绍workbench连接库下载要想用C语言连接mysql我们需要从mysql官网下载mysql提供的连接库选择C API然后选择MySQL Connector/C 8.0最后挑选自己的配置即可。如果我们一开始使用yum源安装的话他已经自动帮我们安装了连接库了无需手动安装。我们还可以用apt包直接下载sudoaptupdatesudoaptinstalllibmysqlclient-dev最后我们可以检测是否存在mysql.hzhangwhoVM-0-2-ubuntu:~$find/usr -namemysql.h/usr/include/mysql/mysql.hmysql接口介绍我们可以用官网获取详细的接口介绍。那么我们先介绍一些简单的接口首先要初始化mysql_init()可以看到其返回MYSQL*:然后就要连接MYSQL*mysql_real_connect(MYSQL*mysql,constchar*host,constchar*user,constchar*passwd,constchar*db,unsignedintport,constchar*unix_socunsignedlongclientflag);为了便于测试我们先创建用于连接的用户和数据库mysqlcreatedatabaseconn;Query OK,1rowaffected(0.02sec)mysqluseconn;Databasechanged mysqlcreatetabletest(-idintprimarykeyauto_increment,-namevarchar(20)notnull,-agetinyintdefault18-);Query OK,0rowsaffected(0.04sec)mysqlgrantallonconn.*toconnlocalhost;Query OK,0rowsaffected(0.01sec)连接数据库后通过mysql_query调用mysqlintmysql_query(MYSQL*mysql,constchar*q);我们先简单连接一下#includeiostream#includemysql/mysql.hintmain(){MYSQL*mysqlmysql_init(nullptr);mysqlmysql_real_connect(mysql,localhost,conn,123456,conn,3306,nullptr,0);if(mysqlnullptr)std::cerrmysql connect errot\n;mysql_close(mysql);return0;}当然这样不能有什么效果我们故意将密码写错zhangwhoVM-0-2-ubuntu:~/Trainning/2026_1_29$ ./test mysql connect error很好接下里我们尝试插入数据#includeiostream#includemysql/mysql.hintmain(){MYSQL*mysqlmysql_init(nullptr);mysqlmysql_real_connect(mysql,localhost,conn,123456,conn,3306,nullptr,0);if(mysqlnullptr){std::cerrmysql connect error\n;return1;}if(mysql_query(mysql,insert into test(name) values(Alice)))std::cerrmysql query error\n;elsestd::coutmysql query success\n;mysql_close(mysql);return0;}没问题。继续插入if(mysql_query(mysql,insert into test(name) values(张三)))也没问题说明我们的编码格式适配的很好。那么我们尝试selectif(mysql_query(mysql,select * from test))std::cerrmysql query error\n;elsestd::coutmysql query success\n;zhangwhoVM-0-2-ubuntu:~/Trainning/2026_1_29$ ./test mysql query success成功是成功了但是没有什么结果啊我们还需要其他接口MYSQL_RES*mysql_store_result(MYSQL*mysql);该函数会调用MYSQL变量中的st_mysql_methods中的 read_rows 函数指针来获取查询的结果。同时该函数会返回MYSQL_RES 这样一个变量该变量主要用于保存查询的结果。同时该函数malloc了一片内存空间来存储查询过来的数据所以我们一定要记的 free(result),不然是肯定会造成内存泄漏的。 执行完mysql_store_result以后其实数据都已经在MYSQL_RES 变量中了下面的api基本就是读取MYSQL_RES 中的数据。我们可以看到MYSQL_RES的结构此外还能通过接口直接获取MYSQL_RES的数据获取结果行数mysql_num_rowsmy_ulonglongmysql_num_rows(MYSQL_RES*res);获取结果列数mysql_num_fieldsunsignedintmysql_num_fields(MYSQL_RES*res);获取列名mysql_fetch_fieldsMYSQL_FIELD*mysql_fetch_fields(MYSQL_RES*res);获取结果内容mysql_fetch_rowMYSQL_ROWmysql_fetch_row(MYSQL_RES*result);最后释放MYSQL_RESvoidmysql_free_result(MYSQL_RES*result);那么接下来我们就可以如此操作//获取列名for(inti0;icol;i){std::coutfiled[i].name\t;}std::coutstd::endl;//获取内容MYSQL_ROW line;for(inti0;irow;i){linemysql_fetch_row(res);for(intj0;jcol;j){std::coutline[j]\t;}std::coutstd::endl;}mysql_free_result(res);输出zhangwhoVM-0-2-ubuntu:~/Trainning/2026_1_29$ ./test mysql query successidname age1Alice182张三18没有问题workbenchworkbench是mysql官网提供的图形化界面我们可以在win上下载workbench当然同时要先下载mysql。如果不想两个分开下载我们可以下载MySQL Installer选择下面的安装包然后选择Full即可。在等待下载的这段时间我们可以将conn的登录主机改为%:mysqlupdateusersetHost%whereuserconn;Query OK,1rowaffected(0.01sec)Rowsmatched:1Changed:1Warnings:0mysqlselecthost,user,authentication_stringfromuser;-----------------------------------------------------------------------------------------------------|host|user|authentication_string|-----------------------------------------------------------------------------------------------------|%|conn|$A$005$ounF%\r~f~%53Hmgs258v3VDpbsTfYTu4gyTbyCDhGIsJpwUgjKM.k6B8||localhost|mysql.infoschema|$A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED||localhost|mysql.session|$A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED||localhost|mysql.sys|$A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED||localhost|root|$A$005$c3OCZ*kw6s4#r)oD1TOBStybtxtwaEeZ1KfZ9mbVFiR4LD3x/1vxhtrnD |-----------------------------------------------------------------------------------------------------5rowsinset(0.00sec)当然这样修改是不足的还需要对一些权限进行修改。最好就是删除了重新创建用户。随后我们使用这个账户继续进行测试.选择添加新的连接如此我们就能对数据库进行操作我们能直接在图形界面写入数据然后点击右下角的apply他就会自动写入相应的sql语句。总之就是这样

相关新闻

美食烹饪互动平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

美食烹饪互动平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

系统架构设计### 摘要 随着互联网技术的快速发展,美食文化逐渐成为人们日常生活中不可或缺的一部分。美食烹饪互动平台作为一种新兴的社交方式,为用户提供了分享烹饪经验、交流美食心得的便捷渠道。然而,目前市场上许多平台功能单一&#xff…

2026/7/7 8:28:02 阅读更多 →
代码共识取代平台独裁:DeSpend的DAO治理如何重塑电商信任基石

代码共识取代平台独裁:DeSpend的DAO治理如何重塑电商信任基石

在传统中心化电商的宏伟叙事中,信任的建立长期依赖于一个核心假设:平台作为中立的仲裁者和规则执行者,能够且愿意维护公平。然而,现实经验不断揭示这一假设的脆弱性。当消费者与商家发生纠纷,平台客服的裁决往往缺乏透…

2026/7/8 15:31:41 阅读更多 →
AI开发平台的“三化”融合与场景落地新范式

AI开发平台的“三化”融合与场景落地新范式

站在2025年展望2026,AI技术的演进正深刻塑造着AI开发平台的形态与使命。单一功能的工具将迅速被淘汰,平台之争将聚焦于“三化”融合的深度。理解这一趋势,是做好2026年AI开发平台怎么选的前提,也将重新定义AI应用如何落地的范式。…

2026/7/9 13:08:01 阅读更多 →

最新新闻

特征图融合与拼接实战:5种主流CV架构(FPN/ASPP/DANet/GCNet/UNet)性能对比

特征图融合与拼接实战:5种主流CV架构(FPN/ASPP/DANet/GCNet/UNet)性能对比

特征图融合与拼接实战:5种主流CV架构性能对比与工程选型指南当你在深夜调试一个目标检测模型时,是否遇到过这样的困境:小目标检测精度始终上不去,增加数据量也无济于事?三周前我在处理卫星图像中的小型车辆检测时&…

2026/7/9 13:57:49 阅读更多 →
【Springboot毕设全套源码+文档】基于SpringBoot的民运会赛务管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

【Springboot毕设全套源码+文档】基于SpringBoot的民运会赛务管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/9 13:53:47 阅读更多 →
上市公司双元绿色创新数据集

上市公司双元绿色创新数据集

一、基础概况数据编号:2064时间跨度:1994—2024 年全 A 股企业年度面板原始数据源:国家知识产权局绿色专利库,批量清洗核验存储格式:CSV 标准化企业年度面板核心理论依据:双元创新理论,区分探索…

2026/7/9 13:53:47 阅读更多 →
Codex从零上手全攻略:AI编程助手核心用法与多场景实战

Codex从零上手全攻略:AI编程助手核心用法与多场景实战

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在技术社区看到很多关于Codex的讨论,不少朋友,尤其是刚接触编程或AI辅助工具的同学,对如何上手…

2026/7/9 13:49:45 阅读更多 →
敖维标识集团管控平台:破解供应链标签兼容性难题的全维度解决方案

敖维标识集团管控平台:破解供应链标签兼容性难题的全维度解决方案

从上游原材料来料、车间生产赋码,到仓储流转、外协代工、终端出库,标签是串联整条供应链的数字身份证。但绝大多数制造企业都深陷标签兼容困局:多厂区模板标准不统一、上下游供应商标签格式五花八门、MES/ERP/WMS 数据接口互不互通、新旧多品…

2026/7/9 13:45:42 阅读更多 →
5分钟在macOS上运行Windows应用:Whisky让你的Mac变身全能工作站

5分钟在macOS上运行Windows应用:Whisky让你的Mac变身全能工作站

5分钟在macOS上运行Windows应用:Whisky让你的Mac变身全能工作站 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 还在为Mac无法运行Windows专属软件而困扰吗?W…

2026/7/9 13:43:42 阅读更多 →

日新闻

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质…

2026/7/9 0:01:04 阅读更多 →
ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook 你是否曾经为学术书籍的封面设计而烦恼?想要一个既专业又美观的封…

2026/7/9 0:03:06 阅读更多 →
如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 在当今数据驱动的商业环境中,企业级数据库连接已成为现代应用开发的核心需求。pyodbc作为一款强大…

2026/7/9 0:07:11 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻