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() 函数,来验证我们的引入是否成功
至此引入库的工作已经做完,接下来就是熟悉接口