VS2015 使用Mysql-connector/c++ 链接数据库(环境配置)

时间:2022-09-20 18:27:15

经过了一晚上的折磨和反复,终于搞出来了。所以赶快趁热把它记录下来,造福一下后人。网上好多关于旧版本的VS和旧版本的Mysql-connector 的配置办法,好多都不适用了。几经周折之后,终于在目前最新版本的VS和Mysql-connector 的情况下尝试成功。
版本:
VS 2015
Mysql-connector/c++ 1.1.8
下载链接:http://dev.mysql.com/downloads/connector/cpp/ (这个里面有安装版和解压版,本次使用的是安装版)

Mysql 5.7.17- winx64(这个很重要)(如果你是32位的,所有的下载软件请下载32位版本,下面配置基本不变)
下载链接:https://dev.mysql.com/downloads/installer/

配置步骤
1.下载并安装所需要的软件,版本如上
2.在VS中新建工程,然后在项目属性中进行如下配置
a. 在VC++ 目录下
Include Directories中添加
**S:\mysql-5.7.17-winx64\include
S:\boost_1_60_0**
(此处的Boost从如下链接中下载并解压)
下载链接http://netix.dl.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.zip
Library Directories 中添加
S:\mysql-5.7.17-winx64\lib

b. 在链接器->常规->Additional Library Directories中添加
**S:\mysql-5.7.17-winx64\lib
S:\mysql-5.7.17-winx64\bin
C:\Program Files\MySQL\MySQL Connector C++ 1.1.8\lib
C:\Program Files\MySQL\MySQL Connector C++ 1.1.8\lib\opt**
c. 在链接器->input->additional dependencies中添加
libmysql.lib
mysqlcppconn.lib
myscqlcppconn-static.lib
d. 在C/C++ ->general -> additional include directories 中添加
C:\Program Files\MySQL\MySQL Connector C++ 1.1.8\include
C:\Program Files\MySQL\MySQL Connector C++ 1.1.8\include\cppconn

  1. 将MySQL connector C++ 1.1.8\lib\opt\mysqlcppconn.dll文件和mysql-5.7.17-winx64\libmysql.dll 和 mysql-5.7.17-winx64\libmysqld.dll 复制到Windows\system32 文件夹底下

  2. 此时,基本配置结束,需要注意的是,因为整个过程使用的64位的软件,因为需要将平台更改为64位的。
    找到configuration manager 并修改项目平台版本为X64即可。(32位版本可以忽略,大多数vs默认是32位的)

此时配置完成
测试如下简单代码(这是我找到最简单的了)
配置过程中可能出现各种各样的问题,欢迎大家在下面及时提出质疑,我会尽我所能来回答的

#include "stdafx.h"
#include <iostream>
#include <map>
#include <string>
#include <memory>
#include "mysql_driver.h"
#include "mysql_connection.h"
#include "cppconn/driver.h"
#include "cppconn/statement.h"
#include "cppconn/prepared_statement.h"
#include "cppconn/metadata.h"
#include "cppconn/exception.h"
using namespace std;
using namespace sql;

int main()
{
sql::mysql::MySQL_Driver *driver = 0;
sql::Connection *conn = 0;
try
{
driver = sql::mysql::get_mysql_driver_instance();
conn = driver->connect("tcp://localhost:3306/dbname", "username", "password");//contest是自己的一个数据库,root是mysql的登录名,123是自己的密码
//请自行修改
cout << "连接成功" << endl;
}
catch (exception ex)
{
cout << "连接失败" << endl;
}
system("pause");
return 0;
}