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

【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语言连接安装

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…...

2024年第十五届蓝桥杯青少组C++国赛—割点

割点 题目描述 一张棋盘由n行 m 列的网格矩阵组成&#xff0c;每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。 现给定棋盘上所有棋子的位置&#xff0c;如果要使棋盘上出现两个及以上的棋子连通块&#xff0c;请问…...

【软件开发】做出技术决策

文章目录 专注于核心业务除非绝对必要,不要重写代码保持技术栈简单尽量减少依赖避免范围蔓延按照业务实际情况确定优先级在做出高风险决策前构建原型跨职能团队协作信任你的团队在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己…...

Airborne使用教程

1.安装环境 前提条件&#xff1a;系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…...

WPF实现曲线数据展示【案例:震动数据分析】

wpf实现曲线数据展示&#xff0c;函数曲线展示&#xff0c;实例&#xff1a;震动数据分析为例。 如上图所示&#xff0c;如果你想实现上图中的效果&#xff0c;请详细参考我的内容&#xff0c;创作不易&#xff0c;给个赞吧。 一共有两种方式来实现&#xff0c;一种是使用第三…...

EasyExcel 动态设置表格的背景颜色和排列

项目中使用EasyExcel把数据以excel格式导出&#xff0c;其中设置某一行、某一列单元格的背景颜色、排列方式十分常用&#xff0c;记录下来方便以后查阅。 1. 导入maven依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easy…...

【 C++11 】类的新功能

C类的新功能 一、默认成员函数二、类成员变量初始化三、default关键字四、delete关键字六、final关键字七、override关键字 一、默认成员函数 八个默认成员函数 在C11之前&#xff0c;一个类中有如下六个默认成员函数&#xff1a; 构造函数。析构函数。拷贝构造函数。拷贝赋值…...

防止SQL注入:PHP安全最佳实践

防止SQL注入&#xff1a;PHP安全最佳实践 SQL注入是一种常见的网络攻击方式&#xff0c;攻击者通过向应用程序的SQL查询中插入恶意代码&#xff0c;来获取、操控或破坏数据库中的数据。为了保护PHP应用免受SQL注入攻击&#xff0c;开发者需要遵循一系列安全最佳实践。本文将介…...

自动化生产或质量检测准备工作杂记

自动化生产或质量检测一个流程是&#xff1a; 上料位上料&#xff1a; “上料位”指的是物料被放置以供机器或设备处理的位置。“上料”指的是将物料从存储位置移动到加工或检测位置的过程。移动到对位相机位置&#xff1a; “对位相机”是一种高精度相机&#xff0c;用于精确…...

张志辰医生

在医学领域&#xff0c;北京中医药大学东方医院的张志辰副主任医师宛如一颗璀璨的明星。自 2011 年于北京中医药大学获取博士学位后&#xff0c;他便扎根临床一线&#xff0c;以精湛医术和仁心仁术&#xff0c;为众多患者排忧解难 张志辰曾先后前往北京天坛医院、广东中山医院…...

CodeMirror 如何动态更新definemode

CodeMirror 如何动态更新definemode 问题描述&#xff1a;解决方法&#xff1a; 问题描述&#xff1a; 项目中有一部分用到了CodeMirror组件&#xff0c;其高亮显示的内容需要根据最新的json动态的更新&#xff0c;需要使用definemode自定义高亮内容。 想要的效果如下&#xf…...

舵机SG90详解

舵机&#xff0c;也叫伺服电机&#xff0c;在嵌入式开发中&#xff0c;舵机作为一种常见的运动控制组件&#xff0c;具有广泛的应用。其中&#xff0c;SG90 舵机以其高效、稳定的性能特点&#xff0c;成为了许多工程师和爱好者的首选&#xff0c;无论是航模、云台、机器人、智能…...

程序设计考题汇总(四:SQL练习)

文章目录 查询结果限制返回行数 查询结果限制返回行数 select device_id from user_profile LIMIT 2;...

明达IOT平台助力工业废水运维智能化

背景简介 相较于生活污水&#xff0c;工业废水的处理挑战性更高&#xff0c;原因在于其源于多样化的工业生产流程&#xff0c;成分复杂且多变&#xff0c;可能包含重金属、有毒化学…...

深入理解 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初阶——多线程(线程安全-锁)

复习上节内容&#xff08;部分-掌握程度不够的&#xff09; 加锁&#xff0c;解决线程安全问题。 synchronized关键字&#xff0c;对锁对象进行加锁。 锁对象&#xff0c;可以是随便一个Object对象&#xff08;或者其子类的对象&#xff09;&#xff0c;需要关注的是&#xff…...

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安装保姆级教程&#xff0c;Pycharm环境配置和使用指南&#xff0c;看完这一篇就够了…...

linux不同发行版中的主要差异

一、初始化系统 Linux不同发行版中的系统初始化系统&#xff08;如 System V init、Upstart 或 systemd&#xff09; System V init&#xff1a; 历史&#xff1a;System V init 是最传统的 Linux 系统初始化系统&#xff0c;起源于 Unix System V 操作系统。运行级别&#xff…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...