zoukankan      html  css  js  c++  java
  • 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 <<
            "	retrieved 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!

  • 相关阅读:
    Vue2 后台管理系统解决方案
    vuejs 和 element 搭建的一个后台管理界面
    Composer 是什么
    解决无限 This file is indented with tabs instead of 4 spaces
    (七)boost库之单例类
    (六)boost库之内存管理shared_ptr
    (五)boost库之随机数random
    (四)boost库之正则表达式regex
    (二)boost库之字符串格式化
    (一)boost库之日期、时间
  • 原文地址:https://www.cnblogs.com/zhoudayang/p/5419072.html
Copyright © 2011-2022 走看看