一、系统环境
操作系统:Windows11;
MySQL版本: mysql-community-8.0.40.0;
Visual Studio版本:Microsoft Visual Studio Enterprise 2022 (64 位) - Current
版本 17.11.5;
二、安装MySQL;
请查看文章SQL:Windows下MySQL的安装教程(超详细);安装完成后继续以下步骤。
-
下载一个MySQL可视化管理工具; Navicat Premium 16; 或者 SQLyog Community 均可以。
-
这里以 Navicat Premium 16软件为例;创建一个dome库并在库中创建一个dome表;如下图所示;
三、VS配置连接MySQL具体实现步骤;
请提前下载好VS2022编译软件;可直接从官网下载;具体下载安装方法可自行查找,此处不做详细介绍!
- 打开VS2022编译软件,创建一个c程序的空项目;
- 在项目源文件中创建一个main.cpp文件,将以下测试操作数据库C程序代码,复制到你的main.cpp文件中;
#include <stdio.h>
#include <mysql.h> // mysql 文件,如果配置ok就可以直接包含这个文件
int main(void) {
MYSQL mysql; //数据库句柄
MYSQL_RES* res; //查询结果集
MYSQL_ROW row; //记录结构体
//初始化数据库
mysql_init(&mysql);
//设置字符编码
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
//连接数据库
if (mysql_real_connect(&mysql, "127.0.0.1", "root",
//"password", "database_name"分别填写自己的的数据库登录密码和表所在的数据库名称
//这里替换成自己的的数据库等路密码和自己所建的数据库名称即可
"password", "database_name", 3306, NULL, 0) == NULL) {
printf("错误原因: %s\n", mysql_error(&mysql));
printf("连接失败!\n");
exit(-1);
}
//查询数据
int ret = mysql_query(&mysql, "select * from student;");
//student是自己在数据库中所建的表名
printf("ret: %d\n", ret);
//获取结果集
res = mysql_store_result(&mysql);
//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。
while (row = mysql_fetch_row(res)) {
printf("%s ", row[0]); //打印 ID
printf("%s ", row[1]); //打印姓名
printf("%s ", row[2]); //打印班级
printf("%s \n", row[3]);//打印性别
}
//释放结果集
mysql_free_result(res);
//关闭数据库
mysql_close(&mysql);
system("pause");
return 0;
}
注意:根据你数据库中实际的库名和表名还有登录密码修改上面对应位置代码;
注意:当你复制上面代码后,代码会出现很多爆红报错,是因为你还没有配置连接数据库;
- 在编译器中找到你的项目文件夹右击;点击最下面的属性;
- 找到配置属性 下 VC++目录,找到 包含目录 点击后面的小箭头对其进行编辑;
找到并复制MySQL安装文件中的include文件的目录路径;
将复制的路径粘贴到此处;点击确定保存;
- 找到配置属性 下 VC++目录,找到 库目录 点击后面的小箭头对其进行编辑;详细步骤和第四步一致;
找到并复制MySQL安装文件中的lib文件的目录路径;
将复制的lib文件的目录路径粘贴到此处;点击确定保存;
- 在 配置属性中 找到 链接器 ,点击 输入,找到 附加依赖项
对 附加依赖项 进行编辑;将MySQL安装文件夹中lib目录下的libmysql.lib
文件加到“附加依赖项”中,点击确定保存。注意,这里直接把libmysql.lib这个依赖名加进去即可,不要加路径。
- 把MySQL安装目录lib文件夹里的
libmysql.lib
和libmysql.dll
复制到c:\windows\system32
下,也可以将这两个复制到项目的debug中,release的话就是release中,都是一样的道理。 - 完成以上步骤后;配置前代码中的爆红报错应该就消失了,然后运行第二步的测试代码;
运行结束后在终端正常打印MySQL数据库中的内容即表示连接MySQL的配置已经成功生效了。 - 注意事项:
(1):注意根据你实际root密码还有库名称以及表名称 修改示例代码后再运行;否则会出现登录失败、找不到库、找不到表的错误;