- Ubuntu安装mysql
sudo apt-get install mysql-server,mysql-client,libmysqlclient-dev
安装的时候会提示你设置数据库的密码
安装结束后验证是否成功:sudo netstat -tap | grep mysql
如果有关于mysql的字出现,就安装成功了。
- 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
配套的头文件)。