Ubuntu 16.04 Linux系统下使用C++连接mysql数据库

  1. Ubuntu安装mysql
sudo apt-get install mysql-server,mysql-client,libmysqlclient-dev
安装的时候会提示你设置数据库的密码
安装结束后验证是否成功:sudo netstat -tap | grep mysql
如果有关于mysql的字出现,就安装成功了。
  1. c++连接数据库
    专用的mysql.h头文件
    #include <mysql.h>
    linux下编译的时候记得使用如下命令,注意是反引号不是引号
g++ test.cpp `mysql_config --cflags --libs` -o test

C++关于数据库的API函数:

mysql_init //初始化MYSQL结构
mysql_real_connect//连接数据库
mysql_real_query//查询
mysql_store_result//操作查询结果
mysql_fetch_row//逐行获取上面的结果
mysql_free_result//释放结果集
mysql_close//关闭mysql使用

具体函数使用比较简单,就不详述了。

出现的问题:

1.找不到mysql.h

原因:只安装了mysql-server 和mysql-client 但要在linux下进行数据库开发,还需要安装devel开发包

解决办法:sudo apt-get install libmysqlclient15-dev 安装此软件包

安装完后 mysql.h出现在/usr/include/mysql目录下

此时编译g++ –I/usr/include/mysql –L/usr/lib/mysql –lmysqlclient –o xx xx.cpp

注:库自带的配置命令 `mysql_config --cflags --libs` 执行如下

xiang@xiang-mac:~$ mysql_config --cflags --libs
-I/usr/include/mysql 
-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -ldl

-I(大i)表示头文件优先搜索路径
-L表示链接的库文件优先搜索路径
-l(小L)表示链接的库文件名
如:
-I/home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录
	寻找的顺序是:/home/hello/include-->/usr/include-->/usr/local/include
	
-L/home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录
	寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib
	
-lworld表示在上面的lib的路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)

-l(小L)参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?
就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的
头lib和尾.so去掉就是库名了。

好了现在我们知道怎么得到库名了,比如我们自已要用到一个第三方提供的库名字叫libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件)。
关于后面的小知识点参考了该博主的内容:gcc -I -L -l描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值