Linux C++ 连接 MySQL
安装MySQL
连接
具体可以看官方的MySQL参考手册
示例代码
#include<iostream>
#include<mysql/mysql.h>
/*
mysql_init() 获取或初始化MYSQL结构
mysql_real_connect() 连接到MySQL服务器。
mysql_query() 执行指定为“以Null终结的字符串”的SQL查询。
mysql_use_result() 初始化逐行的结果集检索。
mysql_field_count() 返回上次执行语句的结果集的列数。
mysql_fetch_row() 从结果集中获取下一行
mysql_num_fields() 返回结果集中的字段数
*/
class MyDB
{
public:
MyDB();
~MyDB();
bool initDB(std::string host,std::string user,std::string pwd,std::string db_name);
bool exeSQL(std::string sql);
private:
MYSQL*connection;//连接mysql句柄指针
MYSQL_RES*result;//指向查询结果的指针
MYSQL_ROW row; //按行返回的查询信息
};
MyDB::MyDB()
{
connection = mysql_init(nullptr); //初始化数据库连接变量
if(connection == nullptr)
{
std::cout<<"mysql_init error!"<<std::endl;
exit(1);
}
}
MyDB::~MyDB()
{
if(connection != nullptr)
{
mysql_close(connection);
}
}
bool MyDB::initDB(std::string host,std::string user,std::string pwd,std::string db_name)
{
// 函数mysql_real_connect建立一个数据库连接
// 成功返回MYSQL*连接句柄,失败返回NULL
connection = mysql_real_connect(connection,host.c_str(),user.c_str(),pwd.c_str(),db_name.c_str(),0,nullptr,0);
if(connection == nullptr)
{
std::cout<<"mysql_real_connect error!"<<std::endl;
return false;
}
return true;
}
bool MyDB::exeSQL(std::string sql)
{
// mysql_query()执行成功返回0,失败返回非0值.
if(mysql_query(connection,sql.c_str()) != 0)
{
std::cout<<"mysql_query error!"<<std::endl;
return false;
}
else
{
result = mysql_store_result(connection); //获取结果集
// mysql_field_count()返回connection查询的列数
while ((row = mysql_fetch_row(result)) != nullptr)
{
// mysql_num_fields()返回结果集中的字段数
for(int j = 0;j < mysql_num_fields(result);++j)
{
std::cout<<row[j]<<" ";
}
std::cout<<std::endl;
}
// 释放结果集的内存
mysql_free_result(result);
}
return true;
}
int main()
{
MyDB db;
db.initDB("localhost","root","cmf.199991","customers");
db.exeSQL("select * from orders");
return 0;
}
编译命令
g++ main.cpp `mysql_config --cflags --libs` -o main
Linux C++ 连接 MySQL的更多相关文章
- Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样
百度随时就能搜,你就懒得搜下.http://tieba.baidu.com/p/671327617 Ssh tunnel通常能实现3种功能1) 加密网络传输2) 绕过防火墙3) 让位于广域网的机器连接 ...
- linux远程连接mysql数据库
在linux系统中,远程连接mysql数据库时不仅需要开启ip访问,还需要将防火墙中添加相应规则 在wdlinux中的[安全管理]菜单下选择[防火墙[iptables]]选项,增加端口为3306的规则 ...
- linux C连接mysql
linux 环境下C语言连接数据库首先要配置环境 1,确定你的linux下安装mysql我们可以做个测试. 打开你的终端,在终端下输入:service mysqld status [root@bogo ...
- linux c++ 连接mysql 数据库
Mysql是数据库中的主流,因此我一直以为在Linux下配置会很很容易,结果Google了大半天,大部分网页只说了如何安装Mysql之类的废话,对如何使用C/C++连接Mysql却只字不提,或者提的方 ...
- linux ubuntu 连接mysql
linux ubuntu server sudo apt update -ysudo apt list --upgradable sudo apt upgrade -ysudo apt install ...
- Linux中连接mysql执行sql文件
数据量小的时候可以把sql语句内容粘贴执行,但是文件很大的时候,这样执行效率很慢很慢,需要使用source执行sql文件 1.客户端连接mysql数据库 [root@iZbp1bb2egi7w0uey ...
- 在 linux 中连接 mysql 数据库
命令格式 mysql -h主机地址 -u用户名 -p用户密码 登录本机 mysql mysql -u用户名 -p用户密码 实例 TD - X1数据库:/opt/lampp/bin/mysql -u r ...
- linux c++连接mysql编译问题
- tomcat通过socket连接MySQL,不再占用服务端口【linux】
MySQL连接方式的说明 http://icbm.iteye.com/blog/1840673 MySQL除了最常见的TCP连接方式外,还提供SOCKET(LINUX默认连接方式).PIPE和SHAR ...
- Linux 命令之 Navicat 连接 Linux 下的Mysql数据库
2016年12月7日18:44:06 -====------------------------ GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDEN ...
随机推荐
- 获取Linux mac地址(centos与ubuntu通用)
ip -a addr| grep link/ether | awk '{print $2}'| head -n 1 获取Linux mac地址(centos与ubuntu通用)
- 构建SatelliteRpc:基于Kestrel的RPC框架(整体设计篇)
背景 之前在.NET 性能优化群内交流时,我们发现很多朋友对于高性能网络框架有需求,需要创建自己的消息服务器.游戏服务器或者物联网网关.但是大多数小伙伴只知道 DotNetty,虽然 DotNetty ...
- 问题:RuntimeError: Model class LuffyAPI.apps.user.models.UserInfo doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
问题截图 报错原因 提示app未注册,但实际上已经注册的 1. # settings配置文件移动后要将这个settings添加到环境变量中 sys.path.insert(0, BASE_DIR) # ...
- 运行python的几种方式
1. 通过cmd终端去运行 按住win + r 打开命令提示符,然后输入python,就可以进入python环境,输入你需要指定的python代码即可. # 注意:这种方法只是建议临时使用一下,因为午 ...
- com.fasterxml.jackson.databind.exc.InvalidDefinitionException
@JsonIgnoreProperties 此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响. 写法将此标签加在model 类的类名上 ,可以多个 ...
- 【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
问题描述 Azure应用程序网关设置 set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD 登录使用cookie时使用不了. 分析过程 重写网 ...
- [前端] html和原生js实现鼠标拖动和触摸拖动以及点击后跟随鼠标移动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [manjaro linux] 安装完成之后的配置工作,以及常用软件的安装
emmm 很久没有更新了,绝对不是丢掉了博客帐号,有时间还是要好好装饰以下博客的... https://zhuanlan.zhihu.com/p/114296129 看到很多过程 sudo pacma ...
- Linux 常见缩写命令英文全称
linux 命令参考Linux 命令大全: https://man.linuxde.net/ awk = "Aho Weiberger and Kernighan" 三个作者的姓的 ...
- Ubuntu 14.04 Intel 处理器 硬编解码配置(Intel® Media Server Studio)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...