前言
Windows下C++访问MySQL,一开始使用ODBC,但是觉着有点麻烦,局限性也挺大。举例来说,一些C++特性比如string使用起来很麻烦,还有编码问题,ODBC有一个编码设置,ODBC连接还有一个编码设置,如果任何一个不同,都会导致乱码;如果任何一个与数据库的编码不同,也会乱码。所以改为使用MySQL官方的mysql-connector-cpp。这里记录一下编译过程中遇到的问题
mysql-connector-cpp虽然提供了安装程序,但是需要重新编译,除非你使用的环境与官方编译的环境一样,不然就会有崩溃的问题。因为不同环境下编译的类库,在使用时,可能导致内存申请释放的bug。我遇到的就是string字符串在赋值过程中崩溃。
准备工作
visual studio 2017
boost_1_64_0
mysql
cmake
我们可以直接使用vs的cmake编译,但是一些报错提示和配置太麻烦了,所以建议现在安装官方的cmake程序,然后生成vs程序再编译
mysql-connector-cpp使用了boost库,所以需要下载boost库,官方文档说明了最低版本,下载比它高的就可以。除了编译的时候用,后续开发也需要引入boost库
这里需要安装的mysql,就是需要mysql中的头文件和类库,在编译过程中需要,这里还有一个问题,就是mysql安装的是32位还是64位,看下面注意事项
下载源码
https://dev.mysql.com/downloads/con