• 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!

  • 相关阅读:
    【C++日常】C++动态命名变量名
    两个整数相除
    Jsp页面跳转 接收时的乱码问题
    Reverse a singly linked list
    Java处理excel文件
    Navicat for mysql 破解
    EasyUi 分页 和 表格数据加载
    Spring 框架下Controller 返回结果在EasyUI显示
    svn ubuntu command(转载)
    Shiro Security
  • 原文地址:https://www.cnblogs.com/zhoudayang/p/5419072.html
Copyright © 2020-2023  润新知