您的位置:首页 > 数据库 > MySQL

关于vs2013的mysql配置问题说明

2015-12-03 14:16 726 查看
C/C++连接MySql数据库

本文对如何使用MySql的API连接MySql数据库,开发环境为VS2013.

一、VS2013工程设置工作

首先,建立一个windows应用程序的工程,将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE,

将连接器->系统->子系统 选择为控制台。

由于我们要使用Mysql的API,并且我们机子上肯定安装了Mysql数据库,所以我们要将工程的头文件路径指向Mysql安装目录的同文件mysql.h所在的位置,将连接库路径指向libmysql.lib所在的路径,

在我的机子上,Mysql 的安装路径为:C:\Program Files\MySQL\MySQL Server 5.5

我们需要把VS2013的工程中的头文件路径和连接库路径指向上面的两个地方:

将x项目属性页的C/C++->常规->附加包含目录指向:C:\Program Files\MySQL\MySQL Server 5.5\include

将项目属性页的链接器->常规->附加库目录指向:C:\Program Files\MySQL\MySQL Server 5.5\lib

将链接器->输入->附加依赖项中添加libmysql.lib。

在资源管理器那一界面,项目->属性->配置管理器(在右上角)->活动解决方案平台->新建->键入或选择新的平台->最上面的改为X64其他不管。

如果不设置链接器->输入->附加依赖项中添加libmysql.lib,那么会出现如下的错误:

1>------ 已启动全部重新生成: 项目: MySql-Connect, 配置: Debug Win32 ------

1>正在删除项目“MySql-Connect”(配置“Debug|Win32”)的中间文件和输出文件

1>正在编译...

1>MySql_Connect.cpp

1>x:\编程练习\c-c++\c\mysql_connect.cpp(35) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 参见“scanf”的声明

1>x:\编程练习\c-c++\c\mysql_connect.cpp(72) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 参见“sprintf”的声明

1>x:\编程练习\c-c++\c\mysql_connect.cpp(86) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 参见“sprintf”的声明

1>正在编译资源清单...

1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1

1>Copyright (C) Microsoft Corporation. All rights reserved.

1>正在链接...

1>LINK : 没有找到 d:\我的文档\Visual Studio 2013\Projects\MySql-Connect\Debug\MySql-Connect.exe 或上一个增量链接没有生成它;正在执行完全链接

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_close@4,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_free_result@4,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_num_fields@4,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_fetch_row@4,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_store_result@4,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_error@4,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_real_query@12,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_select_db@8,该符号在函数 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用

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

1>d:\我的文档\Visual Studio 2013\Projects\MySql-Connect\Debug\MySql-Connect.exe : fatal error LNK1120: 10 个无法解析的外部命令

1>生成日志保存在“file://d:\我的文档\Visual Studio 2013\Projects\MySql-Connect\MySql-Connect\Debug\BuildLog.htm”

1>MySql-Connect - 11 个错误,3 个警告

========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

二、利用Mysql库提供的API编写连接Mysql和从Mysql中取出数据的代码

#include "windows.h"

#include "stdio.h"

#include "winsock.h"

#include "mysql.h"

int main()

{

MYSQL * mysql;

MYSQL_RES *res;

MYSQL_ROW row;

unsigned int t;

int count = 0;

mysql = (MYSQL *)malloc(sizeof(MYSQL));

mysql_init(mysql);

mysql_real_connect(mysql, "localhost", "root", "666666", 0, 3306, NULL, 0);//注意我的密码是666666,你得修改为自己的。否则会有问题。

mysql_query(mysql, "create database caigaojian");

mysql_select_db(mysql, "caigaojian");

mysql_query(mysql, "create table mine(id int not null primary key auto_increment,name char(20)) ");

mysql_query(mysql, "insert into mine values(123,"caigaojian") );

mysql_close(mysql);

system("pause");

return 0;

}

总结:

1.运行的时候一直提示libmysql.dll没有,那么请在windows里面的system32里面加上libmysql.dll。我的是win7 64位。至于你的要在哪加,加哪一文件,你自己试试。

2.把debug的win32改为 X64是必须的。x64、X64貌似都可以。你自己试试。

3.在写程序时,我出现的问题是,如果#include "windows.h"写在#include "mysql.h"它的后面,总提示一个socket“;”的错误。这里你需要改头文件的顺序。

4.至于一劳永逸的配置,我不太清楚。貌似在“属性管理器”里面的“Microsoft.Cpp.X64.user”配置,可以不用再配。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: