看到网上一些教程需要安装3个程序用来建立连接,个人觉得没什么必要,这里的话介绍一种不需要下载多余的插件就能成功连接的方法(亲测有用~,我的mysql版本是8.0.19,vs版本是2017 community)。
只需要有mysql和vs2017即可
第一步
首先,我们先把解决方案平台改为x64,见图一
第二步
我们要连接mysql就肯定要用到mysql里的一些头文件,所以我们要添加一下附加包含目录,
先打开解决方案的属性,然后打开c/c++中的常规栏,之后将mysql下的include文件夹的路径写入附加包含目录,见图二
第三步
然后打开链接器中的常规栏,及那个mysql下的lib文件的路径添加到附加库目录,见图三
第四步
打开输入一栏,编辑附加依赖项,然后将libmysql.lib
写入(之前会有一堆东西,不用管他,直接点下拉箭头哪里,点击编辑,把上面的静态库写入即可),图5
第五步
切记,一定要应用之后确定
第五步中的添加libmysql.lib
静态库多半是会出问题的(程序找不到,我当时也碰到了这个问题,然后 把静态库复制放到解决方案的x64下的debug文件目录下就可以了,见图六),到这里就基本完成了,之后再手动连接一下数据库即可。
我的解决方案名称为mysql测试,这个根据自己要将数据库添加到哪个解决方案中自行决定,到这里配置已经完成了。这么做唯一的缺点就是使用不同解决方案每次都需要设置一下(不过这应该不是个问题吧!)。
我们选择Mysql database,然后填写服务名称(一般都是localhost),再填写用户名(一般都是root),填写密码,然后填写要选择的数据库,例如我要连接的是my_test这个数据库,忘记的同学可以在cmd或则终端中登录到mysql,show databases;查看一下所有的数据库,然后进行选择。之后点击测试连接,连接成功,点击确定,vs2017就与mysql连接成功了,点击服务器资源管理器就可以看到连接成功,然后可以看到数据库里的一些东西。
下面用图来解释一下具体的操作
实在不好意思,这里的命名为1的箭头画的短了些,这里指向的的是MySql Database
下面附上一段测试代码
#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与数据库连接成功了!!!