操作系统版本:CentOS6 64位
1,安装boost库。因为MySQL Connector/C++使用了boost库,所以必须先安装boost库,我们才能使用MySQL Connector/C++。
点“系统”->"管理"->"添加删除软件",在查询文本框里输入"boost",然后查找。查找完毕后,在右面的查找结果列表中选择"The Boost C++ headers and shared development libraries ",随后安装它,这样boost库就安装完毕了。
2,准备MySQL Connector/C++的头文件和库文件。到mysql官方网站(http://www.mysql.com/downloads/connector/cpp/)选择和自己操作系统对应的MySQL Connector/C++下载下来。
CentOS6 64位下载链接:http://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-1.1.1-linux-glibc2.3-x86-64bit.tar.gz
CentOS6 32位下载链接:http://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-1.1.1-linux-glibc2.3-x86-32bit.tar.gz
3,把MySQL Connector/C++的头文件和库文件拷贝到正确位置。解压缩我们下载的MySQL Connector/C++压缩包,里面有文件和目录,我们只需要“include”和"lib"目录中的文件。
a,拷贝解压缩包中的“include”目录中所有文件到“/usr/include”。
b,拷贝解压缩包中的“lib”目录中所有文件到“/usr/lib”。
4,编写测试C++程序代码。建立一个名称为“mysqlcpp.cpp”的文件,在里面输入下面代码:
#include <iostream>
#include <sstream>
#include <memory>
#include <string>
#include <stdexcept>
using namespace std;
#include <mysql_connection.h>
#include <mysql_driver.h>
#include <cppconn/driver.h>
using namespace sql;
#define DBHOST "tcp://localhost:3306"
#define USER "root"
#define PASSWORD ""
int main() {
Driver *driver;
Connection *conn;
driver = get_driver_instance();
conn = driver->connect(DBHOST, USER, PASSWORD);
conn->setAutoCommit(0);
cout<<"DataBase connection autocommit mode = "<<conn->getAutoCommit()<<endl;
delete conn;
driver = NULL;
conn = NULL;
return 0;
}
5,编译源代码。在终端中进入上面程序源文件所在目录,随后输入:g++ -o mysqlcpp -lmysqlcppconn mysqlcpp.cpp ,如果一切顺利,那么应该没有任何错误提示,随后终端等待下一次输入命令。这个时候我们在源文件目录中会发现已经顺利编译出来一个名字为"mysqlcpp"的可执行文件。我们在终端中输入:./mysqlcpp ,如果我们的MySQL服务器正常工作,那么应该可以看到这个测试程序的正确输出内容了。如果不能连接到MySQL ,请检查MySQL数据库是否工作正常,在确认正常工作后,重新在终端中执行这个编译出来的可执行文件。
6,在Eclipse CDT中使用MySQL Connector/C++。我们在CDT中新建一个C++工程,随后创建一个C++源文件,把上面代码拷贝到这个刚刚创建的源文件中。我们设置一下CDT的参数。
“properties”->"C/C++ Build"->"settings",随后在右侧的“Tools Settings”下面选择“GCC C++ Linker”里选择“libraries”,在右侧上面的“libraries”中增加一项“mysqlcppconn”,随后保存退出就可以了。
上面配置完毕后,我们就能够顺利编译测试程序了,编译完毕后,我们在“Run”菜单下的“Run Configurations”里加上我们刚刚编译出来的可执行文件,随后运行就能够在控制台里看到我们程序的输出了。