关于MYSQL编程使用VS2015编译报“LNK4272库计算机类型“X86”与目标计算机类型“x64”冲突”的解决办法
【注意事项】
1.下载MYSQL数据,最好是下载ZIP格式的包而不是MSI,因为仅需要用到其中两个文件夹,并不需要安装MySQL
2.每次新建工程之后都要先配置MySQL开发环境
【开始配置环境】
1.新创建一个“win32控制台”项目
2.把下载MYSQL包解压到本地,然后在解压出来的文件夹里面找到include文件夹和lib文件夹,将2个文件夹复制到项目路径中,eg:C:\Users\JUN-PC\Documents\Visual Studio 2015\Projects\ConsoleApplication2
3.在项目上面鼠标右键->点击属性打开项目属性页
4.添加include文件夹
5.添加lib文件夹
6.添加libmysql.lib
7.将lib文件夹中的libmysql.dll复制到项目目录中
eg:C:\Users\JUN-PC\Documents\Visual Studio 2015\Projects\ConsoleApplication2
8.在源文件中添加头文件mysqld.h即可使用MySQL内容
测试代码:
//
ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <WinSock.h>
#include <Windows.h>
#include <mysql.h>
MYSQL
mysql; //mysql连接
const char DataBase_UserName[] = "root"; //数据库用户名username
const char DataBase_Password[] = "XXXXXXX"; //数据库密码
const char DataBase_Host[] = "192.168.2.96"; //数据库连接地址
const char DataBase_Name[] = "mysql"; //database name
unsigned int DataBase_Port = 3306; //server port
bool ConnectDatabase();
//函数申明
void FreeConnect(); //释放资源
int main()
{
ConnectDatabase();
FreeConnect();
//释放资源
system("pause");
bool ConnectDatabase()
{
//初始化mysql
mysql_init(&mysql); //连接mysql,数据库
if (!(mysql_real_connect(&mysql, DataBase_Host, DataBase_UserName, DataBase_Password, DataBase_Name, DataBase_Port, NULL, 0))) //中间分别是主机,用户名,密码,数据库名,端口号(可以写默认0或者3306等),可以先写成参数再传进去
{
printf("Error connecting to database:%s\n", mysql_error(&mysql));
return false;
}
else
{
MessageBoxA(NULL, "连接MYSQL数据成功!", "消息", MB_OK);
printf("Connected...\n");
return true;
}
}
//释放资源
void FreeConnect()
{
//释放资源
//mysql_free_result(res);
mysql_close(&mysql);
}
注意:
在编译此段代码时报“LNK4272库计算机类型“X86”与目标计算机类型“x64”,通过分析发现我使用的MYSQL库文件是64bit,而在编译时是编译的debug x86的,所以现在需要把MYSQL的库文件替换成32bit编译通过
下载MYSQL32bit数据库文件,下载地址:链接:https://pan.baidu.com/s/1smLGcUh 密码:hbf6
然后解压把include文件夹和lib文件和libmysql.dll文件都替换到项目中
编译通过后再运行代码时又提示libmysql.dll文件没有找到,此时需要把libmysql.dll文件复制到debug目录下,再次运行代码连接MYSQL数据成功