数据库
首页 > 数据库> > visual studio2019 C++连接mysql环境配置

visual studio2019 C++连接mysql环境配置

作者:互联网

visual studio2019 C++连接mysql环境配置

下载mysql

下载就不说了,网上一大堆,但是这里的话,我最大的问题就是,之前下载的是32位的,以至于到后来,我根本无法连接到数据库。所以一定要下64位的mysql,另外如果有下错版本的,我这里有32位和64位两个版本的libmysql.lib和libmysql.dll,可以私聊我。

环境配置


在这里插入图片描述

右键项目选择属性;打开之后:

  1. 修改配置和平台 ,平台一定要修改成x64;在这里插入图片描述

  2. 然后点击C/C++ ,有一个附加包含目录,改成你自己的路径,我这里的路径是E:\phpweb\mysql\include。修改之后是这样:在这里插入图片描述

  3. 找到链接器下的常规 ,然后常规目录下有一个附加库目录,然后编辑添加路径。我的路径是E:\phpweb\mysql\lib,如图:在这里插入图片描述
    在这里插入图片描述

  4. 点击链接器下的输入 ,输入下面有一个附加依赖项,添加libmysql64.lib,这里的64是我重命名之后的,为了区分libmysql.lib(这个是32位的)。如图:在这里插入图片描述
    然后点击确定。

  5. 如果出现这种情况,需要把libmysql.dll复制到x64/Debug下,libmysql.dll也必须是64位的,之前由于这个是32位的,所以出现sql语句调用不了的情况。在这里插入图片描述
    把libmysql.dll放入到x64/Debug下是这样的:在这里插入图片描述
    然后就可以运行了。

重点

一定要把libmysql.lib和libmysql.dll的版本下对,否则版本不匹配会连接不了mysql。我就是因为这个原因折腾了一晚上也没弄对,头都大了。为了防止以后会再掉进坑里,还是记录下来比较好。

检测代码

#include <winsock.h>
#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "libmysql64.lib")

//单步执行,不想单步执行就注释掉
#define STEPBYSTEP

int main() {
    cout << "****************************************" << endl;

#ifdef STEPBYSTEP
    system("pause");
#endif

    //必备的一个数据结构
    MYSQL mydata;

    //初始化数据库
    if (0 == mysql_library_init(0, NULL, NULL)) {
        cout << "mysql_library_init() succeed" << endl;
    }
    else {
        cout << "mysql_library_init() failed" << endl;
        return -1;
    }

#ifdef STEPBYSTEP
    system("pause");
#endif

    //初始化数据结构
    if (NULL != mysql_init(&mydata)) {
        cout << "mysql_init() succeed" << endl;
    }
    else {
        cout << "mysql_init() failed" << endl;
        return -1;
    }

#ifdef STEPBYSTEP
    system("pause");
#endif

    //在连接数据库之前,设置额外的连接选项
    //可以设置的选项很多,这里设置字符集,否则无法处理中文
    if (0 == mysql_options(&mydata, MYSQL_SET_CHARSET_NAME, "gbk")) {
        cout << "mysql_options() succeed" << endl;
    }
    else {
        cout << "mysql_options() failed" << endl;
        return -1;
    }

#ifdef STEPBYSTEP
    system("pause");
#endif

    //连接数据库
    if (NULL
        != mysql_real_connect(&mydata, "localhost", "root", "111111", "test",
            3306, NULL, 0))
        //这里的地址,用户名,密码,端口可以根据自己本地的情况更改
    {
        cout << "mysql_real_connect() succeed" << endl;
    }
    else {
        cout << "mysql_real_connect() failed" << endl;
        return -1;
    }
}

运行成功图:
在这里插入图片描述

标签:cout,lib,C++,dll,visual,libmysql,mysql,include
来源: https://blog.csdn.net/weixin_45864704/article/details/114740291