前言

  1. 本教程受众:希望能用VSCode编辑器写C/C++程序操作MySQL。

  2. 注意:只针对Windows用户

  3. 教程可能会比较啰嗦,但绝对详细,跟着一步步来可以保证大概率正确。╰(°▽°)╯

  4. 约定

    1. 行内代码块内放一些关键内容(你需要点的操作,按钮的名字等)。

    2. 粗体字表示你需要注意的内容。

    3. 可能会出现的问题,我会放在引用块内,就像这样。

  5. 作者水平不够高,如果出现错误还请各位批评指正。

MySQL部署

前置条件

相关问题:我可以直接从这里开始看吗?

在部署MySQL之前请确保完成下面两项,没完成也不要紧,下面还有对应教程,完成之后再回来。
已完成的请继续看MySQL部署。

  1. 下载并安装GCC编译器 MinGW-w64,且配置好了。
  2. 下载并安装代码编辑器 VSCode,且配置好了。
  3. MySQL数据库相关知识,我现在情况是学期末要做MySQL数据库实验要求用C/C++操作MySQL。

下载安装

  1. 进入官网MySQL :: Download MySQL Installer下载MySQL,选上面那个比较小的在线安装。

  2. 下载完成之后打开安装包,继续,Download界面可以直接选择默认(第一项,这样子Workbench也会自动下好)。

  3. 下载好之后是安装,不断继续,但是注意两个问题。

    1. 在安装之后的配置过程中,会让你设置本地数据库的root账号的密码,请一定要牢记!(或者你写什么地方求求了丢了我不管啊)

    2. 配置过程之后会有一个服务名称,不是特别重要也还是请你记一下,默认是MySQL80

  4. 注意这两个问题,之后就完事了。

  5. 能在任务管理器Ctrl+Shift+Esc)的服务中看到这个服务,就说明安装完成,并且已经在运行了。

建立测试数据库

  1. 先自己建立一个视图,记住视图名称,建立一张表随便整点数据。

配置环境变量

  1. 打开环境变量,在Path,写入你本地数据库的includelib还有bin。(不会的话百度或者看我下面配置minGw)

配置VSCode

  1. 提前备份好你的VSCode工作区,如果按照我下文的教程,那就是C_Cpp文件夹。

  2. 打开.vscode/c_cpp_properties.json,如果没有手动创建一个,打开后在includePath这行添加你的MySQL服务器所带的include,MySQL服务器默认安装路径在C:\\Program Files\\MySQL\\MySQL Server 8.0

    相关问题:输入了,但是有黄线。

    说明路径不对,再检查检查。

    相关问题:输入了,但是有红线提示和红色字符。

    如果是从资源管理器的URL复制下来的,请你检查反斜杠是不是两个,一个会被识别成未知转义字符。

    相关问题:输入了,但是有红线。

    你看看是不是上一行行末逗号没加或者加了中文逗号?

  3. 打开.vscode/tasks.json,找到args,编译器的参数,目录选项要加上链接库(大写-L)、包含路径(大写-I)和引用链接库(小写-l)。
    如下图所示,我也会放出部分代码,请按照自己实际情况填写

    "args": [
        "-fdiagnostics-color=always",
        "-g",
        "${fileDirname}\\Main.cpp",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe",
        "-I",
        "C:\\Program Files\\MySQL\\MySQL Server 8.0\\include",
        "-L",
        "C:\\Program Files\\MySQL\\MySQL Server 8.0\\lib",
        "-l",
        "mysql"
    ]
    

测试环境是否可用

  1. 尝试写一个数据库访问程序来测试一下,这里放上我的作参考。

    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include  // 路径得对
    #pragma comment(lib, "libmysql")
    using namespace std;
    
    /* 数据库连接信息 */
    const char *HOST = "localhost";
    const char *USERNAME = "root",
               *PASSWORD = "", // 按照自己的来
               *DATABASE = ""; // 按照自己的来
    
    /* 全局变量 */
    MYSQL mysql;
    
    /* 函数 */
    // 连接数据库
    void connectSQL();
    
    // 主函数
    int main()
    {
        // cout << "1" << endl;	// 这些1234都是测试用的
        connectSQL();
        mysql_close(&mysql);
        // system("pause");
        // cout << "4" << endl;
        return 0;
    }
    
    // 连接数据库
    void connectSQL()
    {
        // cout << "2" << endl;
    
        mysql_init(&mysql);
        unsigned int timeout = 3; // 设置超时时间
        mysql_options(&mysql, MYSQL_OPT_CONNECT_TIMEOUT, &timeout);
    
        // cout << "3" << endl;
    
        if (mysql_real_connect(&mysql, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS))
        {
            cout << "数据库已连接成功,正在加载目录,请根据提示进行操作" << endl;
            mysql_query(&mysql, "set names utf8");
        }
        else
        {
            cout << "数据库连接失败,请查看数据库连接信息!" << endl;
            const char *error = mysql_error(&mysql);
            std::cout << error << std::endl;
        }
    }
    

    相关问题:一个警告!

    写作时我是用的是我刚重装的PC机而不是我配置很顺利的笔记本,所以接下来的内容全部都是我当场进行解决的,不保证绝对的正确性,但是我会把排查思路和步骤全部列出,还请多花点时间排查问题所在!

  2. 此时程序编译应该没有问题了,按F5编译运行没报错,但是Main.out里可能不会有输出(我遇到的问题)。(可以先跳到第6步尝试一下再回来)

    1. 这里我选择在外部打开Main.exe执行。

    2. 你可以根据你的文件夹路径找到该程序,双击执行,配合我代码中的输出123语句可以找到问题出现在哪里,再进行排查。

      相关问题:Main.exe - 系统错误
      由于找不到libcrypto-1_1-x64.dll,无法继续执行代码。重新安装程序可能会解决此问题。

      对于这个问题,请你检查有没有把数据库的bin文件添加到环境变量内,一开始我只添加了includebin也出现了这个问题,添加后解决,并且能运行程序。

  3. 排除所有问题可以正常执行exe之后,重启电脑,发现问题解决。

  4. 恭喜!已全部完成!(:з」∠)