一、开发环境

Win8.1 64位、VS2013、MySQL5.5.3764位

MySQL安装目录为:C:\Program Files\MySQL\MySQL Server 5.5

二、配置工程环境
首先创建一个控制台空项目,打开VS2013,文件--> 新建项目 --> 常规 --> 选择“空项目”

因为我们要使用MySQL数据库的API接口编程,所以需要将工程的附加头文件搜索目录和附件库文件搜索目录,指向MySQL安装目录对应的位置,下面是我机子上mysql库和头文件目录:

将VS2013工程的附加头文件目录和附加库目录指向上面两个目录。

1> 配置头文件目录

打开工程配置属性窗口--> C/C++ --> 常规 --> 附加包含目录,把mysql的include目录添加到附加包含目录中,如下图所示:

2> 配置库文件目录

打开工程配置窗口--> 链接器--> 常归 --> 附加库目录,把mysql的lib目录添加到附加库目录中,如下图所示:

打开工程配置窗口--> 链接器--> 输入-->附中依赖项,打libmysql.lib静态库添加到工程编译依赖项,如下图所示:

将libmysql.dll动态库拷贝到工程的根目录或Debug目录下:

三、测试开发环境
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <mysql.h>void testQuery(MYSQL *mysql);   // 测试查询数据void main()
{MYSQL *mysql = NULL;/*初始化MYSQL连接句柄*/mysql = mysql_init((MYSQL *)0);if (!mysql){return;}/*连接数据库,连接成功返回conn,否则返回NULL参数1:mysql_init初始化数据库返回的MYSQL句柄参数2:数据库服务器地址参数3:数据库用户名参数4:数据库密码参数5:数据库名称参数6:数据库端口,为0表示默认3306参数7:如果unix_socket不是NULL,字符串指定套接字或应该被使用的命名管道。注意host参数决定连接的类型参数8:通常是0*/mysql = mysql_real_connect(mysql, "localhost","root", "root", "test", 0, NULL, 0);if (mysql){printf("connection succellfull the database!\n");}else{printf("connection error:%d, %s\n",mysql_errno(mysql), mysql_error(mysql));}// 查询数据testQuery(mysql);// 关闭连接mysql_close(mysql);system("pause");
}// 测试查询
void testQuery(MYSQL *mysql)
{MYSQL_ROW row;MYSQL_RES *res = NULL;MYSQL_FIELD *fields = NULL;int i, field_count;char *sql = "select * from t_user";int flag = mysql_real_query(mysql, sql, (unsigned long)strlen(sql));if (flag){printf("Query error:%d, %s\n",mysql_errno(mysql), mysql_error(mysql));return;}// 将查询结果读到内存当中res = mysql_store_result(mysql);// 获取结果集中的所有字段fields = mysql_fetch_fields(res);// 字段数量field_count = mysql_field_count(mysql);for (i = 0; i < field_count; i++){printf("%s\t", fields[i].name);}printf("\n");// 遍历结果集的每一行数据while (row = mysql_fetch_row(res)){for (i = 0; i < field_count; i++){printf("%s\t", row[i]);}printf("\n");}
}

mysql测试数据及表结构:

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(32) DEFAULT NULL,`age` int(11) DEFAULT NULL,`address` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;LOCK TABLES `t_user` WRITE;
INSERT INTO `t_user` VALUES (1,'zhangsan',22,'hunan'),(2,'lisi',30,'beijin');
UNLOCK TABLES;

测试结果:

小结配置步聚:

1> 安装mysql

2> 创建VS工程,配置工程头文件(mysql.h所在目录)和库文件(libmysql.lib所在目录)附加目录,指向mysql对应的目录

3> 将libmysql.dll动态库拷贝到工程根目录或Debug目录

4> 编写测试程序,验证C连接Mysql数据库

----------------------------------------------------------------------优雅的分割线------------------------------------------------------------------------------------

常见错误:

1、main.obj : error LNK2019: 无法解析的外部符号 mysql_init。。。。。

原因是没有在工程当中添加libmysql.lib配置,配置库文件目录

2、无法启动此程序,因为计算机中丢失libmyslq.dll。。。。

将libmysql.dll动态库拷贝到工程的根目录或Debug目录下。

3、未引入windows.h头文件,因为在windows连接mysql是通过socket方式与数据库进行通信的

4、main.obj : error LNK2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用.....

数据库位数与编译位数不一致,导致在链接时mysql的库函数找不到,比如:我的mysql是64位,提供的库当然是64位的,如果你在VS上用32位的平台去编译就会造成链接时出错。

修改编译平台,工程-->属性-->配置管理器-->在解决方案的工程列表中选择对应的项目,并将其修改成32位或64位,如果没有就新建一个。

工程源码下载:Windows平台C连接MySQL数据库

参考文档:

C/C++连接MySql数据库

出处:https://blog.csdn.net/xyang81/article/details/26814633

C连接MySQL数据库开发之Windows环境配置及测试相关推荐

  1. mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL

    一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5二.配置工程环境 首 ...

  2. 区块链开发之windows环境配置

    开发去中心化区块链应用必须按照下面的步骤来配置开发环境,下面罗列的工具一个都不能少,而且请严格按照下面的顺序进行安装. 1. 安装node.js.这一步非常简单,按照windows安装向导一路next ...

  3. RTT开发之windows 环境配置

    1. 安装python 有些文章说支持2.7, 实测3.9环境也是OK的 2. 安装scons组件 其他文章多是下载安装,实际操作麻烦还成功率低, 直接pip安装 pip install scons ...

  4. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  5. mysql连接编程环境_C++连接MySQL(一):环境配置和实例

    摘要:MySQL API中提供了对C语言的支持,C++是兼容C语言的,那么只要稍加完善就可以让C++写出来的程序直接连接MySQL,并且编程和执行的效率都比较高. 1.为什么使用MySQL C API ...

  6. MySQL数据库的安装及环境配置

    1.准备工作 https://dev.mysql.com/ 进入MySQL官网去下载安装包 具体步骤: 2.解压 3.配置Path path变量中需要添加bin目录 3.设置my.ini文件 文件中可 ...

  7. dz论坛连接mysql数据库_DISCUZ! 修改数据库连接文件配置方法

    我们迁移discuz7.2论坛,导入mysql数据库后,使用文本编辑器editplus打开根目录下config.inc.php和uc_server/data/config.inc.php  两个文件替 ...

  8. vs mysql 环境安装教程_使用 VS 开发连接 MySQL 的 Web 项目的环境配置

    前言: 安装 开发环境 软件安装: 版本选择:MySQL for Visual Studio 最新版 Connector/NET 版本必须与 MySql.Data 和 MySql.Data.Entit ...

  9. Linux JSP连接MySQL数据库

    Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 ...

最新文章

  1. 对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解
  2. zookeeper 分布式过程协同技术详解.pdf_阿里大牛耗时18个月整理这份ZooKeeper分布式详解文档...
  3. JAVA 运行与开发环境配置(二)- hello java
  4. JSP页面如何调用自己写的.class文件
  5. #化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 Tomcat
  6. 解密flash播放器
  7. 怎么添加本地音乐_原来手机点击这个按钮,就能一键生成音乐电子相册!这也太厉害了...
  8. 基于Go语言构建区块链:part5
  9. failed to accept an incoming connection: connection from 127.0.0.1 rejected, allowed hosts:
  10. 深入理解 switch....case 中的case
  11. 用你的微笑魔力征服下属
  12. html粘性菜单,导航菜单:jQuery粘性滚动导航栏效果
  13. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化
  14. nano编辑器保存退出
  15. React Hook之Effect Hook
  16. Linux 修改远程默认端口 22
  17. python计算平方根算法_每日一程-16.python-巴比伦平方根算法
  18. DELL-DRAC远程控制卡使用教程
  19. [DAY3]用VBA实现复制EXCEL第一行数据到最后一行
  20. 启动nginx报错问题(nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socke

热门文章

  1. 5年博龄只有十几篇文章,惭愧呀
  2. STM32PB2(BOOT1)使用注意
  3. 基于stm32的can总线彻底研究
  4. 多线程还是多进程的选择及区别
  5. TI-BLE协议栈的GATT
  6. 趣链 BitXHub跨链平台 (3)跨链交易流程
  7. 《研磨设计模式》chap10 中介者模式Mediator(1)简介
  8. 区块链BaaS云服务(7)微软Azure区块链服务
  9. 近世代数--唯一分解整环上的多项式环--唯一分解整环上的多项式环还是唯一分解整环
  10. 新冠肺炎疫情预测与防控策略评价