C连接MySQL数据库开发之Windows环境配置及测试
一、开发环境
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环境配置及测试相关推荐
- mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL
一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5二.配置工程环境 首 ...
- 区块链开发之windows环境配置
开发去中心化区块链应用必须按照下面的步骤来配置开发环境,下面罗列的工具一个都不能少,而且请严格按照下面的顺序进行安装. 1. 安装node.js.这一步非常简单,按照windows安装向导一路next ...
- RTT开发之windows 环境配置
1. 安装python 有些文章说支持2.7, 实测3.9环境也是OK的 2. 安装scons组件 其他文章多是下载安装,实际操作麻烦还成功率低, 直接pip安装 pip install scons ...
- Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)
鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio Android Studio 是一个Android开发环境,基于Intel ...
- mysql连接编程环境_C++连接MySQL(一):环境配置和实例
摘要:MySQL API中提供了对C语言的支持,C++是兼容C语言的,那么只要稍加完善就可以让C++写出来的程序直接连接MySQL,并且编程和执行的效率都比较高. 1.为什么使用MySQL C API ...
- MySQL数据库的安装及环境配置
1.准备工作 https://dev.mysql.com/ 进入MySQL官网去下载安装包 具体步骤: 2.解压 3.配置Path path变量中需要添加bin目录 3.设置my.ini文件 文件中可 ...
- dz论坛连接mysql数据库_DISCUZ! 修改数据库连接文件配置方法
我们迁移discuz7.2论坛,导入mysql数据库后,使用文本编辑器editplus打开根目录下config.inc.php和uc_server/data/config.inc.php 两个文件替 ...
- vs mysql 环境安装教程_使用 VS 开发连接 MySQL 的 Web 项目的环境配置
前言: 安装 开发环境 软件安装: 版本选择:MySQL for Visual Studio 最新版 Connector/NET 版本必须与 MySql.Data 和 MySql.Data.Entit ...
- Linux JSP连接MySQL数据库
Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 ...
最新文章
- 对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解
- zookeeper 分布式过程协同技术详解.pdf_阿里大牛耗时18个月整理这份ZooKeeper分布式详解文档...
- JAVA 运行与开发环境配置(二)- hello java
- JSP页面如何调用自己写的.class文件
- #化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 Tomcat
- 解密flash播放器
- 怎么添加本地音乐_原来手机点击这个按钮,就能一键生成音乐电子相册!这也太厉害了...
- 基于Go语言构建区块链:part5
- failed to accept an incoming connection: connection from 127.0.0.1 rejected, allowed hosts:
- 深入理解 switch....case 中的case
- 用你的微笑魔力征服下属
- html粘性菜单,导航菜单:jQuery粘性滚动导航栏效果
- python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化
- nano编辑器保存退出
- React Hook之Effect Hook
- Linux 修改远程默认端口 22
- python计算平方根算法_每日一程-16.python-巴比伦平方根算法
- DELL-DRAC远程控制卡使用教程
- [DAY3]用VBA实现复制EXCEL第一行数据到最后一行
- 启动nginx报错问题(nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socke