【MySQL】Linux使用C语言连接安装
📢博客主页:https://blog.csdn.net/2301_779549673
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 JohnKi 原创,首发于 CSDN🙉
📢未来很长,值得我们全力奔赴更美好的生活✨


文章目录
- 📢前言
- 🏳️🌈安装所需API - 法一 - 官网下载
- 🏳️🌈安装所需API - 法二 - yum源下载(推荐)
- 🏳️🌈验证是否安装成功
- 👥总结
📢前言
mysql的基础,我们之前已经学过,后面我们只关心使用
要使用C语言连接mysql,需要使用mysql官网提供的库,大家可以去官网下载
我们使用C接口库来进行连接
要正确使用,我们需要做一些准备工作:
- 保证mysql服务有效
- 在官网上下载合适自己平台的mysql connect库,以备后用
🏳️🌈安装所需API - 法一 - 官网下载
- 进入mysql官网,点击
download一栏
链接: https://www.mysql.com/

- 找到社区版下载

- 找到C API 点击下载

- 这里我翻译了一下,我们找到MySQL Connector/C++ 8.0

- 我用的环境是
Linux X86,我们依次选择一下

- 这里插一下嘴,可以通过下面这种方法查看自己的
MySQL版本,我的是 5.7.44
ERROR 1045 (28000): Access denied for user 'wzy'@'localhost' (using password: NO)
[wzy@VM-20-5-centos ~]$ mysql --version
mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using EditLine wrapper
- 一般选择第二个下载,下载好后,选择
谢谢,只要开始下载,一般来说这个文件就会出现在你当前计算机用户的下载文件夹中

- 使用
rz指令将这个文件上传到Linux中 - 这只是一个压缩安装包,笔者之前的mysql安装包就在这个目录下

- 直到安装完成,如果传输失败了,可能是网络或路径问题,重新传输一遍或者换个路径就行了
[root@VM-20-5-centos wzy]# ll
total 29232
drwxr-xr-x 2 root root 4096 Dec 16 21:19 MySQL
-rw-r--r-- 1 root root 29927614 Dec 17 18:57 mysql-connector-c++-9.1.0-linux-glibc2.28-x86-64bit-debug.tar.gz
- 使用
tar指令进行解压
命令格式:tar -zxvf mysql-connector-c+±9.1.0-linux-glibc2.28-x86-64bit-debug.tar.gz
解释:
- tar是操作命令。
- -z表示使用gzip来解压。
- -x表示解压操作。
- -v表示显示详细的解压过程(可选,用于查看解压的文件列表)。
- -f表示指定要解压的文件。

- cd 这个解压好的文件夹,里面有个 lib64, 再 cd 进去,会有一些动静态数据库
[root@VM-20-5-centos wzy]# ll
total 29236
drwxr-xr-x 2 root root 4096 Dec 16 21:19 MySQL
drwxr-xr-x 3 7161 31415 4096 Sep 28 00:40 mysql-connector-c++-9.1.0-linux-glibc2.28-x86-64bit
-rw-r--r-- 1 root root 29927614 Dec 17 18:57 mysql-connector-c++-9.1.0-linux-glibc2.28-x86-64bit-debug.tar.gz
[root@VM-20-5-centos wzy]# cd mysql-connector-c++-9.1.0-linux-glibc2.28-x86-64bit
[root@VM-20-5-centos mysql-connector-c++-9.1.0-linux-glibc2.28-x86-64bit]# ll
total 4
drwxr-xr-x 2 7161 31415 4096 Sep 28 00:40 lib64
[root@VM-20-5-centos mysql-connector-c++-9.1.0-linux-glibc2.28-x86-64bit]# cd lib64
[root@VM-20-5-centos lib64]# ll
total 106388
lrwxrwxrwx 1 7161 31415 27 Sep 28 00:40 libmysqlcppconn9.so.2.debug -> libmysqlcppconn9.so.*.debug
lrwxrwxrwx 1 7161 31415 27 Sep 28 00:40 libmysqlcppconn9.so.debug -> libmysqlcppconn9.so.2.debug
-rwxr-xr-x 1 7161 31415 31126288 Sep 28 00:40 libmysqlcppconn.so.10.9.1.0.debug
lrwxrwxrwx 1 7161 31415 33 Sep 28 00:40 libmysqlcppconn.so.9.debug -> libmysqlcppconn.so.10.9.1.0.debug
lrwxrwxrwx 1 7161 31415 26 Sep 28 00:40 libmysqlcppconn.so.debug -> libmysqlcppconn.so.9.debug
-rwxr-xr-x 1 7161 31415 77804440 Sep 28 00:40 libmysqlcppconnx.so.2.9.1.0.debug
一般来说库文件在 lin64 文件夹里,假设在lib64文件夹中找到库文件后,确定库名。通常库名可能是mysqlcppconn之类的(具体需要根据实际文件来确定),使用-l选项指定库名,如-lmysqlcppconn
我们就可以使用下面这串指令,来编译一些代码
g++ -o test test.cpp -L$(pwd)/lib64 -lmysqlcppconn
🏳️🌈安装所需API - 法二 - yum源下载(推荐)
我们可以使用如下指令安装mysql client 和mysql devel
sudo yum install -y mysql-community-server
sudo yum install -y mysql-community-devel
安装完毕后我们就可以在 /usr/include/mysql 目录下找到 mysql 相关的头文件了

同时,我们也可以在 /lib64/mysql/ 以及 /usr/lib64/mysql 目录下找到 mysql 对应的动态库以及静态库了

🏳️🌈验证是否安装成功
写一段 C\C++ 代码,使用下面的格式去编译
g++ -o mytest test.cc -L/lib64/mysql -lmysqlclient
尝试链接mysql client
通过 mysql_get_client_info() 函数,来验证我们的引入是否成功
[root@VM-20-5-centos wzy]# mkdir test_db;
[root@VM-20-5-centos wzy]# cd test_db
[root@VM-20-5-centos test_db]# ll
total 0
[root@VM-20-5-centos test_db]# pwd
/home/wzy/test_db
[root@VM-20-5-centos test_db]# touch test.cc
[root@VM-20-5-centos test_db]# vim test.cc
[root@VM-20-5-centos test_db]# vim test.cc
[root@VM-20-5-centos test_db]# cat test.cc
#include <iostream>
#include <mysql/mysql.h>int main(){std::cout << "mysql client version: " << mysql_get_client_info() << std::endl;return 0;
}[root@VM-20-5-centos test_db]# g++ -o mytest test.cc -L/lib64/mysql -lmysqlclient
[root@VM-20-5-centos test_db]# ll
total 16
-rwxr-xr-x 1 root root 9040 Dec 17 19:53 mytest
-rw-r--r-- 1 root root 158 Dec 17 19:50 test.cc
[root@VM-20-5-centos test_db]# ./mytest
mysql client version: 5.7.44
如果没有成功编译,可以在编译语句中加一个 -I 用来指定头文件
g++ -o mytest test.cc -I/usr/include/mysql -L/lib64/mysql -lmysqlclient
👥总结
本篇博文对 【MySQL】Linux使用C语言连接安装 做了一个较为详细的介绍,不知道对你有没有帮助呢
觉得博主写得还不错的三连支持下吧!会继续努力的~

相关文章:
【MySQL】Linux使用C语言连接安装
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
2024年第十五届蓝桥杯青少组C++国赛—割点
割点 题目描述 一张棋盘由n行 m 列的网格矩阵组成,每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。 现给定棋盘上所有棋子的位置,如果要使棋盘上出现两个及以上的棋子连通块,请问…...
【软件开发】做出技术决策
文章目录 专注于核心业务除非绝对必要,不要重写代码保持技术栈简单尽量减少依赖避免范围蔓延按照业务实际情况确定优先级在做出高风险决策前构建原型跨职能团队协作信任你的团队在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己…...
Airborne使用教程
1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…...
WPF实现曲线数据展示【案例:震动数据分析】
wpf实现曲线数据展示,函数曲线展示,实例:震动数据分析为例。 如上图所示,如果你想实现上图中的效果,请详细参考我的内容,创作不易,给个赞吧。 一共有两种方式来实现,一种是使用第三…...
EasyExcel 动态设置表格的背景颜色和排列
项目中使用EasyExcel把数据以excel格式导出,其中设置某一行、某一列单元格的背景颜色、排列方式十分常用,记录下来方便以后查阅。 1. 导入maven依赖: <dependency><groupId>com.alibaba</groupId><artifactId>easy…...
【 C++11 】类的新功能
C类的新功能 一、默认成员函数二、类成员变量初始化三、default关键字四、delete关键字六、final关键字七、override关键字 一、默认成员函数 八个默认成员函数 在C11之前,一个类中有如下六个默认成员函数: 构造函数。析构函数。拷贝构造函数。拷贝赋值…...
防止SQL注入:PHP安全最佳实践
防止SQL注入:PHP安全最佳实践 SQL注入是一种常见的网络攻击方式,攻击者通过向应用程序的SQL查询中插入恶意代码,来获取、操控或破坏数据库中的数据。为了保护PHP应用免受SQL注入攻击,开发者需要遵循一系列安全最佳实践。本文将介…...
自动化生产或质量检测准备工作杂记
自动化生产或质量检测一个流程是: 上料位上料: “上料位”指的是物料被放置以供机器或设备处理的位置。“上料”指的是将物料从存储位置移动到加工或检测位置的过程。移动到对位相机位置: “对位相机”是一种高精度相机,用于精确…...
张志辰医生
在医学领域,北京中医药大学东方医院的张志辰副主任医师宛如一颗璀璨的明星。自 2011 年于北京中医药大学获取博士学位后,他便扎根临床一线,以精湛医术和仁心仁术,为众多患者排忧解难 张志辰曾先后前往北京天坛医院、广东中山医院…...
CodeMirror 如何动态更新definemode
CodeMirror 如何动态更新definemode 问题描述:解决方法: 问题描述: 项目中有一部分用到了CodeMirror组件,其高亮显示的内容需要根据最新的json动态的更新,需要使用definemode自定义高亮内容。 想要的效果如下…...
舵机SG90详解
舵机,也叫伺服电机,在嵌入式开发中,舵机作为一种常见的运动控制组件,具有广泛的应用。其中,SG90 舵机以其高效、稳定的性能特点,成为了许多工程师和爱好者的首选,无论是航模、云台、机器人、智能…...
程序设计考题汇总(四:SQL练习)
文章目录 查询结果限制返回行数 查询结果限制返回行数 select device_id from user_profile LIMIT 2;...
明达IOT平台助力工业废水运维智能化
背景简介 相较于生活污水,工业废水的处理挑战性更高,原因在于其源于多样化的工业生产流程,成分复杂且多变,可能包含重金属、有毒化学…...
深入理解 Ansible Playbook:组件与实战
目录 1 playbook介绍 2 YAML语言 2.1语法简介 2.2数据类型 3 Playbook核心组件 3.1 hosts组件 3.2 remote_user组件 3.3 task列表和action组件 3.4 handlers 3.5 tags组件 3.6 其他组件说明 1 playbook介绍 playbook 剧本是由一个或多个"play"组成的列表。…...
JavaEE初阶——多线程(线程安全-锁)
复习上节内容(部分-掌握程度不够的) 加锁,解决线程安全问题。 synchronized关键字,对锁对象进行加锁。 锁对象,可以是随便一个Object对象(或者其子类的对象),需要关注的是ÿ…...
Stable Diffusion 提示词语法
1.提示词基础 1.提示词之间用英文逗号,分隔 2.提示词之间是可以换行的 3.权重默认为1,越靠前权重越高 4.数量控制在75个单位以内 2.提示词各种符号的意义 2.1 ()、[]、{}符号 权重值()小括号[]中括号{}大括号默认1111层()1.1[]0.9{}1.052层(()) 1.121.21[[]]0.920.81{{}}1.…...
【功能安全】安全确认
目录 01 功能安全确认介绍 02 安全确认用例 03 安全确认模板 01 功能安全确认介绍 定义: 来源...
在pycharm2024.3.1中配置anaconda3-2024-06环境
version: anaconda3-2024.06-1 pycharm-community-2024.3.1 1、安装anaconda和pycharm 最新版最详细Anaconda新手安装配置环境创建教程_anaconda配置-CSDN博客 【2024最新版】超详细Pycharm安装保姆级教程,Pycharm环境配置和使用指南,看完这一篇就够了…...
linux不同发行版中的主要差异
一、初始化系统 Linux不同发行版中的系统初始化系统(如 System V init、Upstart 或 systemd) System V init: 历史:System V init 是最传统的 Linux 系统初始化系统,起源于 Unix System V 操作系统。运行级别ÿ…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...
