MacOS系统下使用C++连接Mysql

683 阅读2分钟

本文适用于MacOS操作系统12以上版本

如果你有类似任务处理,本文可能帮到你。

贴一下我的macOS版本信息:

图片.png

编辑器使用CLion:

图片.png

主题用的这款,感兴趣可以下载:

1318220456.png

前置条件(不介绍具体做法)

1.下载g++ 编译工具,并能在终端显示其版本信息:

图片.png

2.安装mysql,并能在终端进入mysql环境:

图片.png

3.CLion编辑器,找到对应自己的mac版本下载安装即可: www.jetbrains.com/clion/

开始

1.新建C++项目,作用是测试mysql连接,因此可以命名为:MySQL,(可任意命名)。 展开项目目录:

图片.png

其中在CMakeLists.txt中需要进行设置,

图片.png

其中框起来的是创建项目时自动生成的,此时需要添加mysql的头文件路径,以便在main.cpp中使用,如果配置好mysql环境,只需在终端输入where mysql 便可查看具体路径。

还需要链接mysql动态库,在安装目录的lib文件夹下,找到该文件

图片.png

使用cmake语法:target_link_libraries(项目名 动态库名称)进行链接。 还要添加如下三个路径:

图片.png

至此项目CMakeLists.txt文件配置完成。

2.在系统偏好设置中对CMake进行配置:

图片.png 生成器使用Ninja,

图片.png

应用并确定

3.添加mysql数据源:

图片.png

用户名填写root,密码即为安装时设置的密码:

图片.png

创建数据表用于测试连接:

图片.png

可在内置控制台执行简单查询操作:

图片.png

4.编写主函数用于测试是否正常连接:

#include <iostream>
#include <mysql.h>
#include <string>
using namespace std;
int main() {
    MYSQL mysql;
    MYSQL_RES *res;
    MYSQL_ROW row;
    string query;
    string result;
    int flag, t;
    mysql_init (&mysql);
    if (!mysql_real_connect(&mysql, "localhost", "root", "Japenus0621", "Database", 3306, NULL, 0))
    {
        cout<<"连接失败!"<<endl;
        return 0;
    }else{
        cout<<"连接成功!"<<endl;
        query = "DESCRIBE Student;";
        flag = mysql_real_query(&mysql, query.c_str(), query.length());
        if (flag) {
           cout<<"查询失败!"<<endl;
            return 0;
        } else {
            cout<<"查询成功!"<<endl;
        }
        res = mysql_store_result(&mysql);
        unsigned int num_columns = mysql_field_count(&mysql);
        unsigned int num_rows = res->row_count;
        cout<<"列数:"<<num_columns<<endl;
        cout<<"行数:"<<num_rows<<endl;
        row = mysql_fetch_row(res);
        while (row) {
            for (t = 0; t < num_columns; t++) {
                cout << row[t] << endl;
            }
            row = mysql_fetch_row(res);
        }
    }
    mysql_free_result(res);
    mysql_close(&mysql);
    return 0;
}

主函数代码可自定义,主要测试其用途。

5.执行构建整个项目:

图片.png

如果失败,原因主要有两个方面,一是由于CMakeLists.txt路径配置错误,项目由CMake构建,因此该文件起决定性作用。另一原因是由于Cmake设置选项问题,此时需要更改:

图片.png

标注的是可执行的选项。

本文结束