VS2013连接Mysql数据库的设置以及常见问题

前两天用VS2013连接Mysql遇到了很多问题,上网搜了很多发现好多讲的并不清楚,于是乎我就想把我遇到的问题总结下来,帮助后来人少走点弯路。

步骤:

1:首先需要注意的是 Mysql版本是32位还是64位,如果是64位请将VS2013设置为 x64,具体设置为:右键项目->属性->在右上角有 “配置管理器” ->点击 修改为 x64

这么做的原因是接下来会用到 mysql 中有 libmysql.dll,而如果是64位的mysql,则该dll文件是64位的,正常的VS是用win32生成的是32位的,会导致无法调用!

2:接下来进行配置,首先请网上下载 myqls,并进行相应的安装。这里就不说了,安装过程比较简单。但需要注意的是 安装的时候记住 root设置的密码。这个root是指登陆数据库时候用到

配置过程:项目-》右键属性:

1)"VS++目录"->“包含目录”   将其设置为MYSQL中的include 所在目录 ,例如我的是 :C:\Program Files (x86)\MySQL\MySQL Server 5.5\include

"VS++目录“->"库目录"    将其设置这MYSQL中的lib所在目录,例如我的是: C:\Program Files (x86)\MySQL\MySQL Server 5.5\lib

2)"C/C++"->”附加包含目录“  将其设置为 MYSQL 中的include 所在目录,依旧是 : C:\Program Files (x86)\MySQL\MySQL Server 5.5\include

3)链接器->常规->“附加库目录”    将其设置为 MYSQL中的inclde 所在目录,依旧是:C:\Program Files (x86)\MySQL\MySQL Server 5.5\include

链接器->常规->"输入" ->附加依赖项->填入  -> libmysql.lib    (注意该文件在mysql 的include文件夹下,程序在链接时候调用该 库文件)

至此,vs2013下的设置完毕!

3:数据库部分

1)开启 MYSQL数据库,在CMD下,输入: net start mysql    启动数据库

2   再将当前路径转到:C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin  下,输入   mysql -uroot  -p     然后让输入密码,这时输入当时安装mysql时的root密码。这时就进入了mysql下。

3:建立一个数据库:   输入 create  database  message;     则生成一个数据库message,接下来我们就要用VS2013中的程序连接这个message数据库。

4:在VS项目下,有如下代码:

首先stdafx.h  targetver.h  stdafx.cpp不需要管,在建立控制台项目的时候 会自动生成!

//CMysqlOperator.h

#pragma once
#include "stdafx.h"
#include <windows.h>
#include<winsock.h>
#include<mysql.h>

#include<string>

using namespace std;

#pragma comment(lib, "libmysql.lib")

class CMysqlOperator
{
public:
//变量
MYSQL mysql;

CMysqlOperator();
~CMysqlOperator();

int ConnMysql(char* host, char* port, char* Db, char* user, char* passwd, char* charset, char* Msg);
int DeleteData(char* SQL, char* Msg);

string CMysqlOperator::SelectData(char* SQL, int Cnum, char* Msg);

int CMysqlOperator::UpdateData(char* SQL, char* Msg);
int CMysqlOperator::InsertData(char* SQL, char* Msg);

void CloseMysqlConn();

};

///CMysqlOperator.cpp

#include "StdAfx.h"

#include "CMysqlOperator.h"

#include <string.h>

using namespace std;

CMysqlOperator::CMysqlOperator() {}

CMysqlOperator::~CMysqlOperator() {}

int CMysqlOperator::ConnMysql(char* host, char* port, char* Db, char* user, char* passwd, char* charset, char* Msg)
{
if (mysql_init(&mysql) == NULL)
{
Msg = "inital mysql handle error!";
return 1;
}

if (mysql_real_connect(&mysql, host, user, passwd, Db, 0, NULL, 0) == NULL)
{
Msg = "Failed to connect to database:Error!";
return 1;
}

if (mysql_set_character_set(&mysql, "GBK") != 0)
{
Msg = "mysql_set_charater_set_Error!";
return 1;
}
return 0;
}

string CMysqlOperator::SelectData(char* SQL, int Cnum, char* Msg)
{
MYSQL_ROW m_row;
MYSQL_RES *m_res;
char sql[2048];
sprintf_s(sql, SQL);
int rnum = 0;
char rg = 0x06; //行隔开
char cg = { 0x05 }; //字段隔开

if (mysql_query(&mysql, sql) != 0)
{
Msg = "select ps_info_Error!";
return "";
}

m_res = mysql_store_result(&mysql);

if (m_res == NULL)
{
Msg = "select username Error!";
return "";
}

string str("");
while (m_row = mysql_fetch_row(m_res))
{
for (int i = 0; i < Cnum; i++)
{
str += m_row[i];
str += cg;
}
str += rg;
rnum++;
}

mysql_free_result(m_res);

return str;
}

//插入数据
int CMysqlOperator::InsertData(char* SQL, char* Msg)
{
char sql[2048];
sprintf_s(sql, SQL);

if (mysql_query(&mysql, sql) != 0)
{
Msg = "Insert Data Error!";
return 1;
}
return 0;
}

//更新数据
int CMysqlOperator::UpdateData(char* SQL, char* Msg)
{
char sql[2048];
sprintf_s(sql, SQL);
if (mysql_query(&mysql, sql) != 0)
{
Msg = "Update Data Error!";
return 1;
}
return 0;
}

//删除数据
int CMysqlOperator::DeleteData(char* SQL, char* Msg)
{
char sql[2048];
sprintf_s(sql, SQL);
if (mysql_query(&mysql, sql) != 0)
{
Msg = "Delete Data Error!";
return 1;
}
return 0;
}

//关闭数据库连接
void CMysqlOperator::CloseMysqlConn()
{
mysql_close(&mysql);

}

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。  主函数 :
//

#include "stdafx.h"

#include "CMysqlOperator.h"

#include<iostream>
using namespace std;

int main()
{
//char* host = "127.0.0.1";
char *host = "localhost";     //表示本地数据库
char* user = "root";
char* port = "3306";
char* passwd = "123456";
char* dbname = "message";    //这是数据库
char* charset = "GBK";
char* Msg = "";

CMysqlOperator *mysqlOperator = new CMysqlOperator();
if (mysqlOperator->ConnMysql(host, port, dbname, user, passwd, charset, Msg) == 0)
cout << "连接数据库成功!";
else
cout << Msg;

cout << "why";
getchar();

////查询
//char* SQL = "SELECT userId, userName, passwd from userInfo";
//string str = mysqlOperator->SelectData(SQL, 4, Msg);
//if (str.length() > 0)
//{
// cout << "查询成功@!" << endl;
// cout << str.data() << endl;
//}
//else
//{
// cout << Msg;
//}

////插入
//SQL = "Insert into userInfo(userId, userName, passwd) values(2, ‘张三‘, ‘12‘);";
//if (mysqlOperator->InsertData(SQL, Msg) == 0)
//{
// cout << "插入成功!" << endl;
//}
////更新
//SQL = "Update userInfo set userName = ‘改了‘ where userId = 2";
//if (mysqlOperator->UpdateData(SQL, Msg) == 0)
//{
// cout << "更新成功!" << endl;
//}
////删除
//SQL = "Delete from userInfo where id = 2";
//if (mysqlOperator->DeleteData(SQL, Msg) == 0)
//{
// cout << "删除成功!" << endl;
//}

//mysqlOperator->CloseMysqlConn();
//getchar();

return 0;
}

点击运行就ok 了!  注意:运行的时候会提示 无法找到 “libmysql.dll"  ,解决的方法是  找到C:\Program Files (x86)\MySQL\MySQL Server 5.5\lib  下的 ”libmysql.dll“  将其复制到 你的 VS工程下的 debug下,因为正常上面会生成一个 CMysqlOperator.exe   ,该可执行文件在运行的时候会需要  ”libmysql.dll“文件!

时间: 2024-10-24 13:58:17

VS2013连接Mysql数据库的设置以及常见问题的相关文章

Visual studio 2013 连接MySQL数据库的设置。

这是从网上找到的一段代码,设置就弄了半天,是真的花费了半天(time>6h),没人帮助真心蛋疼啊! 首先设置3个地方: 1.右击项目,选择属性->配置属性->C/C++->常规->附加包含目录,设置MySQL安装目录下的include的路径,我的是C:\ProgramFiles\MySQL\MySQL Server 5.7\include:个人觉得该选项是在设置mysql.h的路径. 2.同样的方法打开链接器->常规->附加库目录,设置MySQL安装目录下的lib

navicat软件设置连接mysql数据库

navicat软件设置连接mysql数据库 适用范围及演示使用工具 适用范围:mysql所有系列(含Linux和Windows系统下的mysql) 演示使用工具:Navicat 8.0 MySQL 演示系统:Windows2003系统 navicat连接mysql数据库设置方法/步骤 第1步:下载并安装navicat软件,本成功安装到自己电脑中,安装成功后打开开始菜单组中的navicat菜单下的"Navicat for MySQL"并单击打开. 第2步:单击navicat软件左上角中的

JDBC 和 Mybatis连接mysql数据库的时候,设置字符集编码

jdbc连接MySQL数据库的时候,设置字符集编码!!! 可以如下配置,mysql可直接在url后面加上字符集设置: String url = "jdbc:mysql://localhost:3306/exceltest1?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"; Mybatis连接mysql数据库的时候,设置字符集编码!!! 可以如下配置,Mybatis的配

C/C++连接MySql数据库

本文档是关于如何使用MySql的API连接MySql数据库,开发环境为VS2013. 开发环境设置: 先确定以下两个位置 mysql.h所在位置:C:\software\wamp\bin\mysql\mysql5.5.20\include libmysql.lib所在位置:F:\mysql\mysqllib 需要把VS2013的工程中的头文件路径和连接库路径指向上面的两个地方: 将该项目属性页的C/C++->常规->附加包含目录指向:C:\software\wamp\bin\mysql\mys

c/c++使用VS2013连接MySQL

vs连接数据库其实就是将mysql数据库.h头文件接口.lib链接文件和dll执行文件加入到项目中.下面是配置如何加入. 转于http://www.cnblogs.com/justinzhang/archive/2011/09/23/2185963.html 一.VS2013工程设置工作 首先,建立一个windows应用程序的工程,将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE, 将连接器->系统->子系统 选择为控制台. 由于我们要使用Mysql

C++MFC连接MYSQL数据库

今天分享一下VS2013MFC利用mysql自己的api函数来连接MYSQL数据库,数据库的安装在这里不多说,可以找教程,我主要记录一下C++MFC连接数据库.需要说明一点,我使用的VS2013是32位的,所以MYSQL也必须使用32位的,这样不会出现莫名奇妙的错误.接下来开始步骤: 一:项目配置 1.打开mysql的安装路径,找到include文件夹和lib文件夹 如图:    2.打开项目 –> 属性 –>VC++目录  如图:     把include和lib分别添加到包含目录和库目录即

mybatis连接mysql数据库插入中文乱码

对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候,选择UTF-8字符集.我试过修改现有数据库字符集为UFT -8,但是根本不起作用,插入的中文仍然乱码(中文显示成:???).重建库时选择字符集为UTF-8之后,中文正常显示了. 对于第二个问题,是这样 的情况:我建库时设置了数据库默认字符集为UTF-8,通过mysql workbench直接插

Hibernate连接MySQL数据库乱码相关问题

1.查看MySQL字符编码 >show variables like 'character%'; #执行编码显示 其中character_set_client,character_set_results,character_set_connection三个运行变量是造成乱码的关键 2.修改MySQL编码格式为UTF8 编辑my.ini,(注意:不是utf-8,也要注意大小写) 找到客户端配置[client] 在下面添加 ### 默认字符集为utf8 default-character-set=u

关于VS2012连接MySql数据库时无法选择数据源

您的C#开发工具是用VS2012吗?    No! return;    您的数据库用的是MySql吗?     No! return;    您新建ADO.NET数据实体模型的时候选择数据源的时候没有MySql?    No! return; 问题截图:     如果你到这一步了,恭喜你遇到了和楼主一样的问题,下面我来帮你解决.    PS:话说前几天在用EF做项目的时候,想从数据库映射数据库模型,装了各种驱动死活都连不上,但是项目还要做啊.    于是Baidu,Google答案各异, 有的