Mysql++学习(一)------mysql编译安装

最近在看数据库开发的东西,因为用C++,所以就看看mysql++咯。

mysql提供了c语言的API,还有一些其他语言的connector,虽然以前也写过c语言的mysql连接,增删改查之类的东西,不过都感觉太玩具,最近看新项目,里面的数据库封装就是基于mysql++的,所以顺便学学。

mysql++是对于mysql c API的一个封装,为C++开发者提供像操作STL容器一样方便的操作数据库的一套机制,简单说,就是支持C++的那些“高大上”的机制了呗。所以在C++ 里面用起来会方便不少。心动不如行动,装个试试。

用mysql++开发的第一步,当然是你得有个数据库程序吧,怎么安装mysql这里就不多说了。

然后,去Mysql++官网下个库源码,最新版是3.2.1.然后解压

tar -xvzf mysql++-3.2.1.tar.gz

进入解压后的目录,一大堆文件,惯例------先看README,因为我的是ubuntu,所以就看README-Linux.txt

首先它告诉你,mysql++必须得有mysql c API才能正常工作,mysql c API就需要安装mysqlclient.

ubuntu下面执行下面命令就可以

sudo apt-get install libmysqlclient-dev

 其次它告诉你,为了防止动态链接器找不见,最好不要装在非主流的目录下,它建议你放/usr下面

./configure --prefix=/usr

执行建议的命令,它就开始检测文件,配置了。

然后。。。就华丽丽的报错了。- -!

它表示没找见mysqlclient。locate一下,确定是否安装

装了也找不见,那只能告诉它放哪了

./configure --prefix=/usr --with-mysql-lib=/usr/lib/x86_64-linux-gnu

注意:要使用多线程,上面配置别忘了--enable-thread-check(居然默认不支持,坑。。。)

果然好了。然后make。make install(如果权限不够,就sudo make install)。搞定,安装成功!

去example下找个例子测试下呗~

测试首先得有个数据库,执行安装目录下的

./resetdb -s 127.0.0.1 -u [user]-p [password]

就行,如果你安装在非主流目录下,那就通过一个脚本执行

./exrun ./resetdb -s 127.0.0.1 -u [user]-p [password]

如果提示没权限或者用户不存在,那就去数据库里面加用户,给权限(用户最好是你的登录用户,密码最好为空)

mysql -uroot -p[password]

root登录mysql,添加新用户comoon,密码为空

insert into mysql.user (Host,User, Password) values("%", "comoon", "");

给权限(测试数据库是mysql_cpp_data)

grant all privileges on mysql_cpp_data.* to comoon@localhost identified by '';

刷新权限

flush privileges;

再次执行生成测试数据库的脚本,就OK了

 

进入example目录,编译simple1,发现头文件没找到

 

locate下,发现在这里

 

加上Include路径再试,发现又一个没找到。再加。

 

g++ -o test simple1.cpp -I /usr/include/mysql++/ -I /usr/include/mysql -lmysqlpp

终于搞定。

执行程序,运行成功。打印查询结果.

 

更多可以查看mysql++ user manual. 地址:http://tangentsoft.net/mysql++/doc/html/userman/

友情提示:如果你固执的选择安装到一个非主流目录下,你的动态链接器可能找不到共享库文件,你需要将你安装目录下的libmysqlpp.so.3.2.1和连接libmysqlpp.so.3拷贝到/usr/local/lib或者/usr/lib下面,然后执行sudo ldconfig.这样链接器就可以找到了。

转载于:https://www.cnblogs.com/comoon/p/4104482.html

你可能感兴趣的:(Mysql++学习(一)------mysql编译安装)