首页 > 数据库 >使用mysqlclient库连接mysql

使用mysqlclient库连接mysql

时间:2024-04-20 18:45:04浏览次数:16  
标签:mariadb nullptr mysqlclient devel mysql include 连接

使用mysqlclient库连接mysql

安装mysqlclient库

yum install mariadb mariadb-server mariadb-devel mariadb-libs luarocks lua-devel
yum group install "Development Tools"

例程

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include "mysql.h"
using namespace std;

int main() {
    MYSQL *mysql = mysql_init(nullptr);
    if (mysql == nullptr) {
        cerr << "Mysql对象初始化失败!" << endl;
        exit(-1);
    }
    clog << "Mysql对象初始化成功!" << endl;

    MYSQL *conn = mysql_real_connect(mysql, "192.168.0.182", "remote", "Mysql_abc123", "test", 0, nullptr, 0);
    if (conn == nullptr) {
        cerr << mysql_error(mysql) << endl;
        exit(-1);
    }
    clog << "Connect MySQL OK, [" << mysql << "], [" << conn << "]" << endl;

    // 执行SQL语句
    if (mysql_query(conn, "select * from test;") != 0) {
        cerr << mysql_error(mysql) << endl;
    } else {
        MYSQL_RES *result = mysql_store_result(conn);
        MYSQL_ROW row = nullptr;
        uint col_num = mysql_num_fields(result);
        uint row_num = mysql_num_rows(result);
        cout << "行数:" << row_num << "\t列数:" << col_num << endl;
        // 获取列名
        MYSQL_FIELD *fields = mysql_fetch_fields(result);
        for (int i = 0; i < col_num; i++) {
            cout << fields[i].name << '\t';
        }
        cout << endl;
        // 获取数据
        while ((row = mysql_fetch_row(result)) != nullptr) {
            cout << row[0] << "\t" << row[1] << "\t\t" << row[2] << endl;
        }
        mysql_free_result(result);
    }

    mysql_close(conn);

    return 0;
}

标签:mariadb,nullptr,mysqlclient,devel,mysql,include,连接
From: https://www.cnblogs.com/yangxuanzhi/p/18147998

相关文章

  • mysql视图的基本用法
    MySQL视图(View)是一种虚拟的表,它基于一个或多个实际表的查询结果构建而成。视图可以像表一样被查询,但实际上它并不存储数据,而是根据定义时指定的查询规则动态生成结果。MySQL视图的基本用法包括创建视图、查询视图、更新视图以及删除视图。以下是MySQL视图的基本用法:创建视图(Crea......
  • mysql存储引擎
    在MySQL中,存储引擎是指负责存储和检索数据的模块,它决定了数据在磁盘上的存储格式以及支持的特性。MySQL支持多种存储引擎,每种存储引擎都有其自身的特点、优势和适用场景。以下是MySQL中常见的两种存储引擎:InnoDB和MyISAM:InnoDB:InnoDB是MySQL的默认存储引擎,它支持事务......
  • mysql 存储过程
    存储过程(StoredProcedure)是一组预编译的SQL语句集合,它被存储在数据库中并可以在需要时被调用执行。存储过程可以接收参数、执行SQL语句、执行控制流程语句(例如IF、LOOP等),并返回结果集或输出参数。以下是存储过程的一些关键特点和用法:封装复杂逻辑:存储过程可以封装复杂的业务逻......
  • MVCC学习圣经:一文穿透MySQL MVCC,吊打面试官
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • MySQL-05.存储引擎
    C-05.存储引擎为了方便管理,把连接管理,查询缓存,语法解析,查询优化这些不涉及真实数据存储的功能划分为MySQLServer的功能,把真实存取数据的功能划分为存储引擎的功能。所以在MySQLServer完成了查询优化后,只需按照生成的执行计划调用底层存储引擎提供的API,获取到数据后返回给客户端......
  • 【开源】使用Python+Flask+Mysql快速开发一个用户增删改查系统
    项目演示项目本身很简单,增删改查是几乎所有系统的骨架。正所谓万丈高楼平地起,学会了增删改查,航母就指日可待了:),光速入门,直接看演示图:项目地址https://github.com/mudfish/python-flask-user-crudFlask框架介绍说白了就是一个Web框架,能够让你快速开发出Pythonweb应用。简单易......
  • mysql中last_insert_id()用法
    前言在使用MySQL时,若表中含自增字段(auto_increment类型),则向表中insert一条记录后,可以调用last_insert_id()来获得最近insert的那行记录的自增字段值。但事实上,使用last_insert_id()时有很多注意事项,很容易踩到坑。数据准备CREATETABLE`tb_product`(`id`bigin......
  • MySQL 主从复制的执行流程
    MySQL主从复制的执行流程可以分为以下几个主要步骤:1.主服务器记录数据变更:当主服务器接收到写操作(如INSERT、UPDATE、DELETE)时,它将这些操作的变更信息记录到自己的二进制日志(BinaryLog)中。二进制日志包含了所有对数据库进行更改的记录。2.从服务器连接到主服务器:从服务器连......
  • LightDB兼容扫描 - 事前SQL兼容迁移评估工具24.1支持MySQL --> TDSQL-PostgreSQL兼容
    兼容扫描工具下载地址:事前SQL兼容迁移评估工具使用说明:LightDB-事前SQL兼容迁移评估工具使用手册本次24.1版本新增了对MySQL迁移到TDSQL-pg的兼容性扫描。工具的具体使用方法请阅读使用说明文档,针对本次更新,涉及配置项targetDataBase改为MySQL-to-TDSQL-PostgreSQL。以下是......
  • Mysql数据库插入Emoji,字符集设置utf8mb4
    字符集和校对规则字符集(CHARACTERSET)为字母和符号的集合。例如latin1(MySQL默认),utf8和utf8mb4等等…不同字符集的默认校对规则和1个字符最大支持的字节长度可能不一样。校对规则(COLLATE)为规定字符如何比较的指令。比如当我们SQL语句后面需要根据某个字段orde......