linux环境下写C++操作mysql(一)
/*****************
connect.cpp
g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient
****************/ #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"mysql.h" class CMysqlInterface
{
public:
CMysqlInterface();
~CMysqlInterface(); void mysqlLibInit();
void mysqlLibDestroy();
int Connect();
int Close(); private:
MYSQL *m_mysqlPtr;
}; int main()
{
printf("version 1.1\n");
int iRet = -;
CMysqlInterface MysqlObj; iRet = MysqlObj.Connect();
if( == iRet)
{
printf("mysql_real_connect success\n");
}
else
{
printf("mysql_real_connect failed\n");
}
return ;
} CMysqlInterface::CMysqlInterface()
{
printf("CMysqlInterface\n");
m_mysqlPtr = NULL;
m_mysqlPtr = mysql_init(NULL);
} CMysqlInterface::~CMysqlInterface()
{
Close(); } int CMysqlInterface::Close()
{
int iRet = ; if(NULL != m_mysqlPtr)
{
mysql_close(m_mysqlPtr);
m_mysqlPtr = NULL;
}
return iRet;
} void CMysqlInterface::mysqlLibDestroy()
{
mysql_library_end();
} int CMysqlInterface::Connect()
{
printf("Connect\n");
int iRet = -;
m_mysqlPtr = mysql_real_connect(m_mysqlPtr,"localhost","root","csql","child",,NULL,);
if(m_mysqlPtr)
{
iRet = ;
}
return iRet;
}
exbot@ubuntu:~/wangqinghe/MySql/20190621/01$ g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -Imysqlclient
/tmp/cceJyiND.o:在函数‘CMysqlInterface::CMysqlInterface()’中:
connect.cpp:(.text+0xaf):对‘mysql_init’未定义的引用
/tmp/cceJyiND.o:在函数‘CMysqlInterface::Close()’中:
connect.cpp:(.text+0x100):对‘mysql_close’未定义的引用
/tmp/cceJyiND.o:在函数‘CMysqlInterface::mysqlLibDestroy()’中:
connect.cpp:(.text+0x121):对‘mysql_server_end’未定义的引用
/tmp/cceJyiND.o:在函数‘CMysqlInterface::Connect()’中:
connect.cpp:(.text+0x17c):对‘mysql_real_connect’未定义的引用
collect2: error: ld returned 1 exit status
这个问题是因为连接命令出了错误 后面跟的应该是 -l 而不是-L
输出结果:
exbot@ubuntu:~/wangqinghe/MySql/20190621/02$ g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient
exbot@ubuntu:~/wangqinghe/MySql/20190621/02$ ./connect
version 1.1
CMysqlInterface
Connect
mysql_real_connect success
linux环境下写C++操作mysql(一)的更多相关文章
- linux环境下写C++操作mysql(二)
main.cpp #include<stdio.h> #include<stdlib.h> #include"mysqlInterface.h" int m ...
- DBA 应该要注意Linux 环境下的一些操作
DBA 对OS的依赖.一丁点儿也不亚于DB.对于Oracle DBA.尤为突出 DB和OS的感情也与日俱增.耦合度高的让人一度以为这两要劳燕双飞了 例如.Oracle里面. 而且.故障诊断以及 ...
- Linux 环境下安装 Nginx+php+mysql 开发环境
一直以来都没有养成记录学习的好习惯,我想从这么一天开始,把自己学习和工作中的经验和坑都记录下来.等到以后老的时候还有可以回忆的地方. 最近在学习linux,虽然已经玩linux很久了,但是没有怎么用心 ...
- oracle11G在linux环境下的卸载操作
1.使用SQL*PLUS停止数据库[oracle@OracleTest oracle]$ sqlplus logSQL> connect / as sysdbaSQL> shutdown ...
- 阿里云服务器 :Linux环境下搭建Apache+php+mysql
以前我用的是Windows2012 的服务器,那时候只是抱着玩一玩的心态,所有用的是Windows,但是后来被导师给DISS了,于是决定改服务器的操作系统: (一)下载安装php+mysql+apac ...
- 在linux环境下搭建JDK+JAVA+Mysql,并完成jforum的安装
参考链接: YUM安装MySQL和JDK和Tomcat:http://cmdschool.blog.51cto.com/2420395/1696206/ http://www.cnblogs.com/ ...
- Linux环境下没有权限操作文件或目录
linux下有超级用户(root)和普通用户,普通用户不能直接操作没有权限的目录,如果出现了没有权限的提示,可以尝试用su命令解决. 比如: #mkdir aaa 我要创建一个aaa的文件夹,没有操作 ...
- eclipse环境下,java操作MySQL的简单演示
首先先通过power shell 进入MySQL 查看现在数据库的状态(博主是win10系统) 右键开始,选择Windows powershell ,输入MySQL -u用户名 -p密码 选择数据库( ...
- linux环境下mongodb启动操作
pkill mongod 进入mongo shell :运行 db.shutdownServer() 1.进入mongo的shell : mongo --port 1008 2.进入bin目录下 m ...
随机推荐
- 使用idea关联mysql时报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/liuqiker/article/detai ...
- 在Qt5使用中文(vs环境)
如果是使用mingw版本的Qt create, 也就是使用GCC编译器应该没那么多事吧. 不过我还是用惯了VS呢. 好了,废话不多说,开始总结vs下乱码的解决方案. vs2003 把源码存成 utf- ...
- 数据绑定-绑定Servlet内置对象
数据绑定:获取用户提交的参数,绑定到入参的参数中,就叫数据绑定. 绑定Servlet内置对象: 测试:
- spring boot配置定时任务设置
一.定时任务的时间写法: 每天凌晨2点 0 0 2 * * ?和每天隔一小时 0 * */1 * * ? 每隔5秒执行一次:*/5 * * * * ? 每隔5分执行一次:0 */5 * * * ? ...
- 权限(rwx)对于目录与文件的意义
1-权限对于目录的意义 首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方. r权限:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意 ...
- LLVM4.0与3.5编译phase对比
说是LLVM4.0和3.5的对比,其实是Clang的4和3.5的对比.在调试Clang编译源码的过程中,发现-S选项在4.0和3.5中的处理不一样,后来使用命令验证了这个事情 jourluohua@j ...
- 关于overflow的学习
我在此记录一下我的学习到的东西,我自己不清楚所以要记录下来. overflow:hidden 但内元素的高度或宽度大于外元素的高度或宽度时,自动隐藏多余的部分,当然外元素设置了固定的高度或宽度. ov ...
- @Validated @RequestBody @RequestParam配合使用校验参数
1. @Validated @RequestBody 配合使用 两者搭配进行参数的校验,要想自己捕获该异常,需要自定义全局异常处理器 2. @Validated @RequestParam 配合使 ...
- Delphi 集合类型
- 02:Java基础语法(一)
Java基础语法 Java的关键字及保留字 关键字(Keyword) 关键字的定义和特点定义:被Java语言赋予了特殊含义的单词特点:关键字中所有字母都为小写注意事项:1)true.false.nul ...