封装mysql读写分离SDK遇到的一些问题
一、如何编译?
进到cmake目录 source 对应平台的abenv脚本 再到对应的目录用makec编译。
二、创建uuid
命令
uuidgen
三、创建对外暴露的实体
nsresult rv;
nsCOMPtr<ncIDBSql> dbconn = do_CreateInstance(宏定义, &rv);
int main() { static AppContext appCtx (AB_APPLICATION_NAME); AppContext::setInstance (&appCtx); AppSettings* appSettings = AppSettings::getCFLAppSettings (); LibManager::getInstance ()->initLibs (appSettings, &appCtx, 0); ::ncInitXPCOM (); usepool(); return 0; }
四、Can‘t connect to local MySQL server through socket '/tmp/mysql.sock'
是因为找不到mysql.sock,安装mysql时,默认的mysql.sock路径在/var/lib/mysql/mysql.sock中,可在/etc/my.cnf中查看。
解决办法:将之前的sock路径注释,添加一下字段
[mysqld] socket = /tmp/mysql.sock [client] socket = /tmp/mysql.sock [mysqld] socket = /tmp/mysql.sock
没有的[client]的话,自行添加。
然后重启mysql服务
systemctl restart mysqld //重启服务
systemctl status mysqld //查看状态
重启成功后就可以连接了。
五、出现MySql Connect error! Segmentation fault (core dumped)
解决办法: 将host从“localhost”更改为“127.0.0.1”
六、Mysql 连接句柄指针,传入数据库连接函数,返回的指针仍为空
解决办法:定义这个句柄的二级指针传入数据库连接函数,就可以修改句柄指针。
七、指针如果不分配空间就将其置为NULL。
八、String格式字符串不能直接cout输出,用string强制转换一下
string(String); //或者 string(String).c_str();