看到网上一些教程需要安装3个程序用来建立连接,个人觉得没什么必要,这里的话介绍一种不需要下载多余的插件就能成功连接的方法(亲测有用~,我的mysql版本是8.0.19,vs版本是2017 community)。

只需要有mysql和vs2017即可

第一步

首先,我们先把解决方案平台改为x64,见图一

vs2017连接mysql数据库问题 vs 连接数据库_vs2017连接mysql数据库问题



第二步

我们要连接mysql就肯定要用到mysql里的一些头文件,所以我们要添加一下附加包含目录,

先打开解决方案的属性,然后打开c/c++中的常规栏,之后将mysql下的include文件夹的路径写入附加包含目录,见图二

vs2017连接mysql数据库问题 vs 连接数据库_数据库_02



第三步

然后打开链接器中的常规栏,及那个mysql下的lib文件的路径添加到附加库目录,见图三

vs2017连接mysql数据库问题 vs 连接数据库_vs2017连接mysql数据库问题_03



第四步

打开输入一栏,编辑附加依赖项,然后将libmysql.lib写入(之前会有一堆东西,不用管他,直接点下拉箭头哪里,点击编辑,把上面的静态库写入即可),图5

vs2017连接mysql数据库问题 vs 连接数据库_解决方案_04



第五步

切记,一定要应用之后确定

第五步中的添加libmysql.lib静态库多半是会出问题的(程序找不到,我当时也碰到了这个问题,然后 把静态库复制放到解决方案的x64下的debug文件目录下就可以了,见图六),到这里就基本完成了,之后再手动连接一下数据库即可。

vs2017连接mysql数据库问题 vs 连接数据库_数据库_05



我的解决方案名称为mysql测试,这个根据自己要将数据库添加到哪个解决方案中自行决定,到这里配置已经完成了。这么做唯一的缺点就是使用不同解决方案每次都需要设置一下(不过这应该不是个问题吧!)。

我们选择Mysql database,然后填写服务名称(一般都是localhost),再填写用户名(一般都是root),填写密码,然后填写要选择的数据库,例如我要连接的是my_test这个数据库,忘记的同学可以在cmd或则终端中登录到mysql,show databases;查看一下所有的数据库,然后进行选择。之后点击测试连接,连接成功,点击确定,vs2017就与mysql连接成功了,点击服务器资源管理器就可以看到连接成功,然后可以看到数据库里的一些东西。

下面用图来解释一下具体的操作

vs2017连接mysql数据库问题 vs 连接数据库_数据库_06



实在不好意思,这里的命名为1的箭头画的短了些,这里指向的的是MySql Database

vs2017连接mysql数据库问题 vs 连接数据库_解决方案_07



vs2017连接mysql数据库问题 vs 连接数据库_mysql_08



vs2017连接mysql数据库问题 vs 连接数据库_解决方案_09


下面附上一段测试代码

#include <stdio.h>
#include "mysql.h"
int main(void)
{
	MYSQL mysql;   
	MYSQL_RES* res; 
	MYSQL_ROW row; 
	mysql_init(&mysql);
	//这里的话最好使用gbk,如果表中有中文utf8会出乱码
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
	//这里填自己的服务名,用户名,密码,选择的数据库,端口号应该都是3306不用修改
	if (mysql_real_connect(&mysql, "localhost", "root", "111111", "my_test", 3306, NULL, 0) == NULL)
		printf("连接失败!\n");
	//选择查看的表
	mysql_query(&mysql, "select * from students");
	res = mysql_store_result(&mysql);
	printf("ID\t姓名\t年龄\t以邮箱 \n");
	while (row = mysql_fetch_row(res))
	{
		printf("%s  ", row[0]);
		printf("\t%s  ", row[1]);
		printf("\t%s  ", row[2]);
		printf("\t%s  \n", row[3]);
	}
	mysql_free_result(res);
	mysql_close(&mysql);
	system("pause");
	return 0;
}

这是本人的测试截图与数据库中的数据进行的对比

vs2017连接mysql数据库问题 vs 连接数据库_vs2017连接mysql数据库问题_10


导入的部分数据与表中的数据是完全一样的,到这里的话就可以说vs2017与数据库连接成功了!!!