使用C语言链接

在C语言中连接MySQL时,需要下载并正确配置mysqlconnect库。用户遇到找不到libmysqlclient.so.18动态库的错误,通过在/etc/ld.so.conf.d/创建文件并添加库路径,然后执行`ldconfig`使设置生效,最终能成功加载所需库。使用`ldd`检查可执行文件确认库已链接。
摘要由CSDN通过智能技术生成

mysql connect

要使用C语言连接mysql,需要使用mysql官网提供的库,大家可以去官网下载
我们使用C接口库来进行连接
要正确使用,我们需要做一些准备工作:

  • 保证mysql服务有效
  • 在官网上下载合适自己平台的mysql connect库,以备后用

库使用

我下载的连接
使用rz, 将下载的安装包导入,解压得到一个文件
然后使用软连接,将他放入 工程项目文件 (我的oj_server里面需要用到,所以放入到其里面)

[sz@VM-8-9-centos oj_server]$ ln -s ~/third_party/mysql_connector/include include

[sz@VM-8-9-centos oj_server]$ ln -s ~/third_party/mysql_connector/lib  lib


但是使用时防线没有找到这个动态库lib
[sz@VM-8-9-centos oj_server]$ ./oj_server 
./oj_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object 

我们有一个路径下,放配置文件,/etc/ld.so.conf.d/
先在里面创建一个文件,然后将项目(oj_server) 中 lib 写入创建的文件oj_lib_search.conf 中
[sz@VM-8-9-centos ld.so.conf.d]$ sudo touch oj_lib_search.conf
[sz@VM-8-9-centos lib]$ cd /etc/ld.so.conf.d/
[sz@VM-8-9-centos ld.so.conf.d]$ ll
total 20
-rw-r--r-- 1 root root 26 Aug 31  2021 bind-export-x86_64.conf
-rw-r--r-- 1 root root 19 Aug  9  2019 dyninst-x86_64.conf
-r--r--r-- 1 root root 63 Apr  6  2022 kernel-3.10.0-1160.62.1.el7.x86_64.conf
-rw-r--r-- 1 root root 44 Apr 15 21:54 my.conf
-rw-r--r-- 1 root root 17 Mar 17 00:04 mysql-x86_64.conf
-rw-r--r-- 1 root root  0 Jul  6 14:34 oj_lib_search.conf

查看oj_lib_search.conf,发现已经写入了
[sz@VM-8-9-centos ld.so.conf.d]$ cat oj_lib_search.conf 
/home/sz/linux/vscode/LinuxProject/oj_server/lib

注意要重启一下,使其生效
[sz@VM-8-9-centos oj_server]$ sudo ldconfig

查看编译生成的oj_server可执行文件, ldd可以看到里面用到的所有动态库
[sz@VM-8-9-centos oj_server]$ ldd oj_server
	linux-vdso.so.1 =>  (0x00007fffb21ae000)
	/$LIB/libonion.so => /lib64/libonion.so (0x00007ffad7b84000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffad784f000)
	libctemplate.so.3 => /home/sz/third_party/ctemplate-master/.libs/libctemplate.so.3 (0x00007ffad75e4000)
	libjsoncpp.so.0 => /lib64/libjsoncpp.so.0 (0x00007ffad73ad000)
	libmysqlclient.so.18 => /home/sz/linux/vscode/LinuxProject/oj_server/lib/libmysqlclient.so.18 (0x00007ffad6d62000)
	libstdc++.so.6 => /home/sz/.VimForCpp/vim/bundle/YCM.so/el7.x86_64/libstdc++.so.6 (0x00007ffad69e1000)
	libm.so.6 => /lib64/libm.so.6 (0x00007ffad66df000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ffad64c9000)
	libc.so.6 => /lib64/libc.so.6 (0x00007ffad60fb000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007ffad5ef7000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ffad7a6b000)
	librt.so.1 => /lib64/librt.so.1 (0x00007ffad5cef000)

Connector/C 使用

Connector/C 使用:
在这里插入图片描述
其中 include 包含所有的方法声明, lib 包含所有的方法实现(打包成库)

尝试链接mysql client

通过 mysql_get_client_info() 函数,来验证我们的引入是否成功
在这里插入图片描述
至此引入库的工作已经做完,接下来就是熟悉接口

mysql接口介绍

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值