osx c++连接mysql

  最近想尝试一下使用c++连接mysql数据库。使用封装过后的mysql库mysql++访问mysql数据库更加简单,下述讲述的是如何在osx上搭建连接mysql的环境。

      首先需要安装mysql++,感谢万能的brew install ,只需要一条命令!

    brew install mysql++

      因为我之前已经使用brew安装了mysql数据库,mysql++库的链接与mysql有冲突,在安装之前需要使用unlink命令解除mysql的链接。

     brew unlink mysql

     在安装完mysql连接库之后,此时执行命令

     mysql -u root

      不能连接到mysql数据库,此时只需要修改环境变量,将mysql程序所在文件添加到环境变量即可。

      在 ~/.bashrc中添加这一句(此处需要根据实际情况填写):

     export PATH=$PATH:/usr/local/Cellar/mysql/5.7.11/bin

      果然又可以了!

  

      此时,千万不要傻乎乎的首先unlink mysql-connector-c, 然后link mysql,虽然这样操作可以访问mysql client,但是执行编译的时候,会报错!

      提示找不到:mysql_version.h  等一系列头文件......

      接下来上一个连接mysql的小demo吧!

#include <iostream>
#include <mysql++/mysql++.h>

using namespace mysqlpp;
using namespace std ;
int main(){
    try{
        Connection conn(false);
        conn.connect("stock","localhost","root");
        Query query=conn.query();
    }catch (BadQuery er){
        cout<<"Error:"<<er.what()<<endl;
        return -1;
    }catch (const BadConversion &er){
        cout << "Conversion error: " << er.what() << endl <<
        "\tretrieved data size: " << er.retrieved <<
        ", actual size: " << er.actual_size << endl;
        return -1;
    }catch (const Exception &er){
        // Catch-all for any other MySQL++ exceptions
        cout << "Error: " << er.what() << endl;
        return -1;
    }

    cout<<"no problem"<<endl;
    return 0;
}

  编译命令:

  g++ main.cpp  -o test -lmysqlpp -lmysqlclient

  执行:

  附上使用cmake生成项目的CMakeLists.txt文件,重点在于利用方法target_link_libraries来新增链接参数。

cmake_minimum_required(VERSION 2.8)
project (test)
add_executable(test main.cpp)
target_link_libraries(test mysqlpp mysqlclient)

  执行:

cmake .
make 
./test

have fun!

 

posted @ 2016-04-21 22:16  ZHOU YANG  阅读(1269)  评论(0编辑  收藏  举报