步骤①:

确保 VS2012 和 Mysql 软件能正常运行

VS2015/VS2010等其它版本应该都行,Mysql也是

步骤②:

添加<mysql.h>头文件到VS库

之后添加包含目录如下

一般的mysql都默认在C://program files里面,之后按照图中的路径选择mysql.h所在的文件夹即可,下同

步骤③:

添加库文件"libmysql.lib"

步骤④:

其实到这里就搞定了,不过还需要进行测试,新建cpp输入以下代码:

#include<winsock.h>
#include<iostream>
#include<string>
#include<mysql.h>
using namespace std;
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "libmysql.lib")
//单步执行,不想单步执行就注释掉
//#define STEPBYSTEP
int main(void)
{cout<<"****************************************"<<endl;
#ifdef STEPBYSTEPsystem("pause");
#endif//必备的一个数据结构MYSQL mydata;//初始化数据库if(mysql_library_init(0, NULL, NULL)==0)cout<<"mysql_library_init() succeed"<<endl;else{cout<<"mysql_library_init() failed"<<endl;return -1;}
#ifdef STEPBYSTEPsystem("pause");
#endif//初始化数据结构if(mysql_init(&mydata)!=NULL)cout<<"mysql_init() succeed"<<endl;else{cout<<"mysql_init() failed"<<endl;return -1;}
#ifdef STEPBYSTEPsystem("pause");
#endif//在连接数据库之前,设置额外的连接选项//可以设置的选项很多,这里设置字符集,否则无法处理中文if(mysql_options(&mydata, MYSQL_SET_CHARSET_NAME, "gbk")==0)cout<<"mysql_options() succeed"<<endl;else{cout<<"mysql_options() failed"<<endl;return -1;}
#ifdef STEPBYSTEPsystem("pause");
#endif//连接数据库if(mysql_real_connect(&mydata, "localhost", "root", "chensijie", "sct", 3306, NULL, 0)!=NULL) //这里的地址,用户名,密码,端口可以根据自己本地的情况更改cout<<"mysql_real_connect() succeed"<<endl;else{cout<<"mysql_real_connect() failed: "<<mysql_error(&mydata)<<endl;return -1;}
#ifdef STEPBYSTEPsystem("pause");
#endif//sql字符串string sqlstr;//创建一个表sqlstr = "CREATE TABLE IF NOT EXISTS user_info";sqlstr += "(";sqlstr +=  "user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";sqlstr += "user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";sqlstr += "user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";sqlstr += ");";if(mysql_query(&mydata, sqlstr.c_str())==0)cout<<"mysql_query() create table succeed"<<endl;else{cout<<"mysql_query() create table failed"<<endl;mysql_close(&mydata);return -1;}
#ifdef STEPBYSTEPsystem("pause");
#endif//向表中插入数据sqlstr = "INSERT INTO user_info(user_name) VALUES('公司名称'),('一级部门'),('二级部门'),('开发小组'),('姓名');";if(mysql_query(&mydata, sqlstr.c_str())==0)cout<<"mysql_query() insert data succeed"<<endl;else{cout<<"mysql_query() insert data failed"<<endl;mysql_close(&mydata);return -1;}
#ifdef STEPBYSTEPsystem("pause");
#endif//显示刚才插入的数据sqlstr = "SELECT user_id,user_name,user_second_sum FROM user_info";MYSQL_RES *result = NULL;if(mysql_query(&mydata, sqlstr.c_str())==0){cout<<"mysql_query() select data succeed"<<endl;//一次性取得数据集result = mysql_store_result(&mydata);//取得并打印行数int rowcount = mysql_num_rows(result);cout<<"row count: "<<rowcount<<endl;//取得并打印各字段的名称unsigned int fieldcount = mysql_num_fields(result);MYSQL_FIELD *field = NULL;for(unsigned int i=0;i<fieldcount;i++){field = mysql_fetch_field_direct(result, i);cout<<field->name<<"\t\t";}cout<<endl;//打印各行MYSQL_ROW row = NULL;row = mysql_fetch_row(result);while(NULL!=row){for(int i=0;i<fieldcount;i++)cout<<row[i]<<"\t\t";cout<<endl;row = mysql_fetch_row(result);}}else{cout<<"mysql_query() select data failed"<<endl;mysql_close(&mydata);return -1;}
#ifdef STEPBYSTEPsystem("pause");
#endif//删除刚才建的表sqlstr = "DROP TABLE user_info";if(mysql_query(&mydata, sqlstr.c_str())==0)cout<<"mysql_query() drop table succeed"<<endl;else{cout<<"mysql_query() drop table failed"<<endl;mysql_close(&mydata);return -1;}mysql_free_result(result);mysql_close(&mydata);mysql_server_end();//system("pause");return 0;
}

更改好账户名密码地址后就可以运行了,最终成功应该是如下界面:

代码是网上找到的,进行了一些修改

中间会遇到的问题及解决方案:

①找不到头文件<stdbool.h>

直接在头文件<mysql.h>所在文件夹里新建一个头文件<stdbool.h>内容直接留空就行,这是老版本遗留下来的问题了

②:编译失败!遇到一大堆无法解析的外部符号

因为Mysql是64位的,而你的VS是32位的所以不兼容

可以修改VS→64位如下:

也可以去网上下载32位的"libmysql.lib"和"libmysql.dll"文件

给个下载链接:https://download.csdn.net/download/second_riven/7704817

③:无法启动此程序,因为计算机丢失了libmysql.dll文件

将lib目录下的"libmysql.dll"拷贝到工程目录下的"debug"文件下

④:数据库连接失败,mysql_real_connect()返回NULL

原因很多了,mysql_error()会返回错误报告,并百度搜索该错误报告应该都能解决问题

检查一下是否密码错误、地址错误等

一个很经典的错误是:mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded

这是因为你的Mysql是8.0版本的,而8.0改变了身份验证插件

解决方法:打开你的Mysql,通过以下语句修改密码:

#ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '新密码';

搞定

教程:Visual Studio 连接 MySQL 数据库(包含常见错误及解决方法)相关推荐

  1. MySQL的配置方法以及数据库配置常见错误及其解决方法

    第一部分.MySQL的配置方法: 以下为笔者整理的mysql 5.5 安装配置教程笔记.通过逐一界面分析,解决大家在配置MySQL数据库时可能存在的疑惑. 首先给出MySQL下载地址:MySQL :: ...

  2. navicat for mysql 1045错误,navicat连接mysql时出现1045错误的解决方法

    navicat连接mysql时出现1045错误的解决方法 navicat for MySQL 连接本地数据库出现1045错误 如下图: 查了很多资料,意思是说mysql没有授权远程连接,也就是权限不够 ...

  3. mysql数据库报1205错误的解决方法

    mysql数据库报1205错误的解决方法 解决办法 解决办法 查看数据库的进程表 show full processlist; 查看事物表 select* from information_schem ...

  4. nodejs连接mysql报connect ECONNREFUSED错误的解决方法

    通过AMH面板安装的mysql,用nodejs连接mysql时候结果报[connect ECONNREFUSED]连接错误. 解决方法:添加socketPath 有些mysql 安装的时候不是mysq ...

  5. mysql主从同步常见错误以及解决方法总结

    前言 在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,如果用单纯的这种方法,成本太高,故经过一段时间的摸索,总结了 ...

  6. 使用navicat连接mysql出现提示10038错误的解决方法

    可能是mysql没有启动,以管理员身份运行cmd,输入net start mysql 启动mysql,然后再去使用navicat连接mysql

  7. 连接MySQL数据库时常见故障问题的分析与解决

    连接MySQL数据库时常见故障问题的分析与解决 初学的mysql网友好象经常会碰到mysql无法连接的错误.特开贴收集这样问题的现象和原因. 先自己扔块砖头出来. 归纳如下: 故障现象 : 无法连接 ...

  8. 关于MAC下pymysql连接mysql数据库报错2003的问题解决方法

    关于MAC下pymysql连接mysql数据库报错2003的问题解决方法 问题:pymysql.err.OperationalError: (2003, "Can't connect to ...

  9. linux连接mysql数据库出现1405错误原因的一些解决方法

    linux连接mysql数据库出现1405错误原因的一些解决方法 在使用yum于腾讯云服务器安装了mysql之后,从家里的电脑尝试连接mysql数据库的时候,就出现了1405错误,经过我不断地查找资料 ...

最新文章

  1. 2018-01-11 Antlr4实现数学四则运算
  2. python数据怎么用不了_为什么自学Python看不进去?
  3. javascript对于DOM加强
  4. Spark 1.2 集群环境安装
  5. word光标一直闪动_6个一分钟就能学会的Word实用小技巧,你会几个?【Word教程】...
  6. 蚂蚁链发布新一代网络平台「FAIR」 区块链进入隐私计算原生时代
  7. 工作几年了,原来我只用了数据校验的皮毛
  8. Unity网络--HLAPI(1):服务器客户端变量同步,脏标识以及定制特性SyncVar
  9. Azure Kinect SDK Ubuntu18.04安装使用
  10. 多物理场面向对象模拟环境MOOSE学习手册
  11. 【Tip】那些“想当然”的记录
  12. 王者荣耀服务器维护费用,王者荣耀服务器全线崩溃!事后只补偿100铭文!网友:卸载了...
  13. 基于华为云人脸服务接口设计的人脸考勤打卡签到系统
  14. 知乎上发现的高赞 20 款网页神器,免费又高效,用过后就离不开了!
  15. SecureCrt配置之自动存储操作日志
  16. python导入pyx文件_初学Python,只会写简单的代码。手头有份Python代码,但是调用C模块生成的.pxd和.pyx文件,运行过程总报错,希望大神指点,调试前该做哪些工作呢?...
  17. weka遇到java.util.zip.ZipException: invalid LOC header (bad signature)
  18. mac 中配置idea自带maven环境变量
  19. Cucumber Rerun Formatter
  20. 计算机应用能力知识,全国计算机应用能力考试试题及答案

热门文章

  1. python和java学哪个好-Python和Java该学哪个?还在纠结的你看过来呀~
  2. 在哪里学python-python的强项在哪里
  3. python自动化办公教程百度云-693629 用Python自动办公,做职场高手(完结)
  4. 亚马逊首席科学家:揭秘 Alexa 语音识别技术|AI NEXT
  5. h5 在线语音识别接口
  6. 知乎热议的Deep Peak2模型究竟是什么?答案都在这里
  7. 大学计算机文档基本操作实验的效果,上海工程技术大学计算机实验报告5
  8. 对CMMI标准的简单理解
  9. 从输入url到页面加载完成发生了什么
  10. java面向对象相关选择题_java面向对象练习题一