zoukankan      html  css  js  c++  java
  • 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.这样链接器就可以找到了。

  • 相关阅读:
    机器学习笔记[保持更新]
    习题 7-3 uva211
    习题 7-2 uva225(回溯)
    习题7-1 uva 208(剪枝)
    poj2331 (IDA*)
    poj2449 (第k条最短路)
    POJ 1324(BFS + 状态压缩)
    hdu3567 八数码(搜索)--预处理
    poj 1367 robot(搜索)
    例 7-10 uva12212(迭代加深搜索)
  • 原文地址:https://www.cnblogs.com/comoon/p/4104482.html
Copyright © 2011-2022 走看看