VSCode环境下连接 MySQL 8.0 数据库 (C++)

前言

时隔了不知道多久,笔者需要在Windows环境下通过VSCode重新搭建一个简单的数据库连接的Cpp工程。由于VSCode和MySQL的版本和之前连通时发生了一些变化,无需用MySQL Connector,环境配置的细节和之前也不尽相同,因此笔者找了一些资料,重新整理了一遍,以便重现。

本文推荐读者有对基本的MySQL规则了解,以及有VSCode基础的情况下进行实操。对于MySQL和VSCode的安装,请读者自行根据其他网络资料进行搭建,本文不再赘述。

1. 进入VSCode,配置两个json文件

1)c_cpp_properties.json

打开vscode,按下ctrl+shit+p,如下,选择编辑C/C++配置,会自动创建一个名为c_cpp_properties.json 的文件

读者需要在 c_cpp_properties.json 文件中设置 includePath,以正确包含.h头文件

之后,需要确认一下编译器是否是 g++,而非 gcc。如果是 gcc,需要将红框中的部分改为g++,其余地方的gcc暂且可以不管。

这里给出c_cpp_properties.json文件的参考:

Cobol 复制代码
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\Program Files\\MySQL\\MySQL Server 8.0\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\msys64\\ucrt64\\bin\\g++.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

2)tasks.json

tasks.json的获取可以通过按下ctrl+shit+d,在运行和调试下通过创建launch.json文件

在这个操作后,得到 launch.json 的同时,可以得到 task.json

tasks.json 用来定义 g++ 的编译指令, -I 和 -L 则指定了编译时 include 头文件和 lib 链接的位置。通常,如果 -I 的内容设置错误,会导致程序中的类或函数无法找到;如果 -L 的内容设置错误,则容易出现运行时的链接错误。

我们找到 MySQL Server 安装路径下所包含的 lib 和 include 目录,将他们包含到这里

MySQL Server 安装路径可以右键Command Line Client寻找

并且将检查编译器,是否正确指定为 g++

2. 将 libmysql.dll 放到待编译的cpp文件同目录下

这个 dll 文件在上述lib目录中,复制到工程目录下即可。

如下所示:

3. 编写示例程序:

代码如下:

cpp 复制代码
#include<iostream>
#include <mysql.h>

int main(){
    MYSQL *mysql = mysql_init(0);
    if(!mysql_real_connect(mysql,"localhost","user","password","mybase",0,0,0))    // 注意改成自己的
    {
        printf("连接数据库出错:%s",mysql_error(mysql));   
        return -1;    
    }
    std::cout << "DB connect success" << std::endl;

    if(mysql_query(mysql,"insert into mentor values ('abandon','zzz')"))
    {
        printf("Info : %s",mysql_error(mysql));
    }
    return 0;
}

这个例子中要求你先在Mysql中建立一个名为mybase的数据库,以及一个名为mentor的表。

可以先通过MySQL的Command Line Client进行打开,执行以下SQL指令:

sql 复制代码
-- 查看数据库,进入数据库,查看表
show databases;
use mybase;
show tables;

-- 创建表 mentor
CREATE TABLE `mentor` (
  `name` varchar(20) NOT NULL,
  `t_name` varchar(100) NOT NULL,
  PRIMARY KEY (`name`),
  UNIQUE KEY `t_name` (`t_name`)
)

4. 对cpp文件编译&运行:

在VSCode中,对示例工程进行运行和调试

可以看到打印 DB 连接成功,正确调用 mysql_query() 。

(由于笔者这里已经写入过一次该数据,接收到的Info是提示我该主键已经存在。读者第一次运行成功则不会打印该信息)

进入 Command Line Client 中,通过select指令进行查看:

可以看到该条信息已经被插入,至此完成。

相关推荐
史蒂芬_丁1 小时前
Qt, C++数据类型扩展问题
数据库·c++·qt
lpfasd1231 小时前
MariaDB Docker容器权限配置问题分析与解决方案
数据库·docker·mariadb
时光之源2 小时前
使用ssh用Cursor/TRAE/VSCode链接远程服务器并运行可视化程序,显示在本地机器上,全流程教学!
ide·vscode·编辑器
芳草萋萋鹦鹉洲哦2 小时前
【windows】nginx如何注册为开机自启的服务(WinSW实现)
运维·windows·nginx
好名字更能让你们记住我2 小时前
vmware虚拟机安装Windows10镜像【超详细图文版】!!!
windows·系统安装·vmware·虚拟机·图文教程
神の愛3 小时前
VSCode报错了??
ide·vscode·编辑器
Yvonne爱编码3 小时前
数据库---Day2 数据库操作
数据库
副露のmagic3 小时前
字符串章节 leetcode 思路&实现
windows·python·leetcode
BackCatK Chen3 小时前
Python安装与VSCode配置完整教程(每步带截图说明)
vscode·python·python安装·vscode配置·python 3.9.10·嵌入式环境配置