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 = -1;
    CMysqlInterface MysqlObj;

    iRet = MysqlObj.Connect();
    if(0 == iRet)
    {
        printf("mysql_real_connect success\n");
    }
    else
    {
        printf("mysql_real_connect failed\n");
    }
    return 0;
}

CMysqlInterface::CMysqlInterface()
{
    printf("CMysqlInterface\n");
    m_mysqlPtr = NULL;
    m_mysqlPtr = mysql_init(NULL);
}

CMysqlInterface::~CMysqlInterface()
{
    Close();

}

int CMysqlInterface::Close()
{
    int iRet = 0;

    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 = -1;
    m_mysqlPtr = mysql_real_connect(m_mysqlPtr,"localhost","root","csql","child",0,NULL,0);
    if(m_mysqlPtr)
    {
        iRet = 0;
    }
    return iRet;
}

[email protected]:~/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

输出结果:

[email protected]:~/wangqinghe/MySql/20190621/02$ g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient

[email protected]:~/wangqinghe/MySql/20190621/02$ ./connect

version 1.1

CMysqlInterface

Connect

mysql_real_connect success

原文地址:https://www.cnblogs.com/wanghao-boke/p/11066981.html

时间: 2024-10-03 12:24:16

linux环境下写C++操作mysql(一)的相关文章

linux环境下写C++操作mysql(二)

main.cpp #include<stdio.h> #include<stdlib.h> #include"mysqlInterface.h" int main() { CMysqlInterface mysqlObj; mysqlObj.connect(); return 0; } mysqlInterface.h class CMysqlInterface { public: CMysqlInterface(); ~CMysqlInterface(); i

Linux环境下安装单实例MySQL 5.7

一.安装环境 1.操作系统版本:CentOS 7.5 2.MySQL版本:5.7.22(社区版) 3.MySQL安装包:mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 二.安装步骤 1.检查系统中是否安装了其他版本的MySQL(root用户) 首先检查系统中是否安装了其他版本的MySQL,使用以下命令进行检查: yum list installed | grep mysql yum list installed | grep mariadb MariaDB数

测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)

1.Linux环境(我搭建的是64位centos版本的linux系统) 1.下载并安装一个VMware Workstation虚拟机,是搭建Linux系统的平台.      2.下载一个centos安装包. 3.打开VMware Workstation,新建一个虚拟机,根据提示安装步骤,导入安装包,设置用户名和密码(此处设置的是普通账户,但密码和根账号root共用),其他的步骤全部点击下一步到最后,然后 静静等安装成功. 4.安装完成后,输入密码进入图形化界面,点击右键选择Open in Ter

oracle11G在linux环境下的卸载操作

1.使用SQL*PLUS停止数据库[[email protected] oracle]$ sqlplus logSQL> connect / as sysdbaSQL> shutdown [immediate]SQL> exit 2.停止Listener[[email protected] oracle]$ lsnrctl stop 3.停止HTTP服务[[email protected] /root]# service httpd stop 4.用su或者重新登录到root(如想重新安

阿里云服务器 :Linux环境下搭建Apache+php+mysql

以前我用的是Windows2012 的服务器,那时候只是抱着玩一玩的心态,所有用的是Windows,但是后来被导师给DISS了,于是决定改服务器的操作系统: (一)下载安装php+mysql+apache 我选的操作系统是Linux的Ubuntu系统,使用的工具是xshell,xftp 1.切换管理员身份           //这一步我没用,我进入的时候就是root权限 在ubuntu中需要用root身份进行操作,所以用下面的命令确保以root身份登录: sudo su 2.开始安装mysql

linux环境下 安装apache、mysql和php环境

一.首先判断是否有系统自带的Apache和mysql rpm -qa|grep httpd     把apache相关的包都列出来 rpm –e httpd-manual-2.2.3-11.el5_2.centos.4     卸载apache.如果实在有卸载不掉的包,可以加—nodeps这个参数来卸载.[[email protected] ~]# rpm -e httpd-manual-2.2.3-11.el5_2.centos.4 --nodeps 其他相关的卸载同理 二.安装apache

linux环境下搭建MySQL数据库的双击热备

准备服务器 由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本.本次我用于测试的两台服务器版本都是Mysql-5.5.17. Mysql 建立主-从服务器双机热备配置步骤 2.1环境描述A服务器(主服务器Master):59.151.15.36B服务器(从服务器Slave):218.206.70.146主从服务器的Mysql版本皆为5

将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table &#39;puyang.ServiceType&#39; doesn&#39;t exist

将一模一样的项目从win迁移到到linux上报错: 一开始还是以为是linux不能识别hql语句,查找资料发现是因为Liunx服务器上mysql是区分大小写的,而本地是不区分的如:代码是这样写的 @Entity@Table(name = "users") 数据库建的表名称是Users,那么就会出现以上异常. 将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExcepti

Linux下使用Python操作MySQL数据库

安装mysql-python 1.下载mysql-python 打开终端: cd /usr/local sudo wget http://nchc.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz 官网地址:http://sourceforge.net/projects/mysql-python/ 2.解压 sudo tar -zxvf MySQL-python-1.2.2.tar.gz cd MySQL-