1.

使用odbc的时候,要注意数据库的编码与odbc配置的编码一致,不然有乱码。所以建议,表中字符编码,数据库的编码,odbc等connector的编码都是utf8,避免乱码问题

2.

在windows下,安装完mysql后,建议把数据目录(data目录)移动到非系统目录,避免系统出问题的时候还原。

  • 在d盘创建一个mysqldata
  • 给新文件增加权限NetworkService
  • 把data下的数据全拷贝过去
  • 修改my.ini中的选项 datadir=D:\mysqldata(注意,要\,使用/可能启动失败)
  • 重启服务或是直接重启系统

3.

在64位机器上可以安装64位数据库也可以装32位数据库,但是odbc(也就是connector)与程序有关系,如果程序是32位的,那么必须用32位的odbc(connector),但是32odbc安装在64位系统上,通过菜单栏内的odbc管理工具访问并看不到,因为那个是64位的,需要到系统windows目录下找到syswow64,再运行odbcad32.exe,添加32位的,如果是64位的,是在windows/system32/odbcad32.exe。这两个目录的名字注意一下,是微软在64位系统上兼容32程序设计的。

4.

使用otl连接数据的时需要注意一下,好像不支持utf8

5.

在odbc中添加的user dsn名字要与数据库名字一样,因为程序中使用的名字其实是这个名字,如果和数据库不一样,容易混淆

6.

安装odbc出现无法加载,找不到指定模块的问题,可能是安装的odbc太新,在server上没有对应的windows c++的库,安装最新的vc++库即可

7.

数据库是utf8,但是代码内读取后不是utf8的编码,可能是odbc的配置问题,我们碰到的问题odbc是ansi driver,数据库是utf8,读取乱码,需要在odb的detail->connection->character set设置为latin1,设置成utf8也有问题
这里是因为Navicat中连接属性里面编码65001(utf8)对应的是odbc里面的latin1,而使用mysql字符集对应的是odbc中的utf8

ps.使用最新的navicat和mysql自己的mysql connector c++可以解决这个问题,所有的都按照utf8设计,navicat中数据库连接配置字符选项选择自动即可

8.

mysql connect c++安装要与我们的应用对应,应用是32位,connect就要是32位的,与数据库是32还是64无关

9.

mysql connect c++在使用的时候sqlstring与string不兼容,有问题崩溃,是因为mysql官网编译的代码是c/c++->code generation->runtime library->/MD,如果不是这个,那么就不能通用,会报错,把自己的工程改成这个一样。

如果更改自己工程太麻烦,可以获取源码自行编译。不过windows下编译非常麻烦。

10.

使用mysql c++ connector需要boost库
c/c++->General->Additional Include Directories添加
boost
c:/program files (x86)/MySQL/MySQL Connector C++ 1.1.9/include

Linker->General->Additional Library Directories添加
c:/program files (x86)/mysql/mysql connector c++ 1.1.9/lib/opt

linker->input->additional dependencies添加
mysqlcppconn.lib

11.

使用mysql c++ connector需要引用下面的头文件

#include “mysql_connection.h”
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>

12.

linux下编译mysql connector报错
CMAKE_CXX_COMPILER
是因为没有安装gcc-c++

13.

cmake . -DBOOST_ROOT=/mnt/dbbackup/boost_1_65_1
指定boost目录,必须是绝对路径

14.

试用mysql connector c++的时候,工程的debug和release要与对应的dll和lib对应,不然,string使用会报错

15.

根据mysql 官网编译生成c++ connector工程,然后编译出release和debug版本,对应的cmake等工具,可以在visual studio安装目录下查找,编译的时候要把对应的lib放进去,这样的好处就是可以直接使用dll中的函数,不用查找函数名字,在使用的目录要把对应的dll放过去

16.

数据库中,连接是默认的,编码是无bom的utf8,编码指定是utf8的是有bom的utf8编码,mysql的workbentch默认是使用无bom的utf8

17.

show  full  processlist
查看现在的数据库连接动态
kill 2222
杀掉一个进程

 

版权声明:本文为studywithallofyou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/studywithallofyou/p/11238235.html