C API 提供了对 MySQL c/s 模型的底层访问。C API 代码在 mysqlclient 库中实现。可以从该库中引用到的变量及含义:

环境变量 含义
MYSQL_UNIX_PORT 本地连接的套接字文件
MYSQL_TCP_PORT 默认 tcp 端口
MYSQL_PWD 默认密码
MYSQL_DEBUG  
TMPDIR  

  客户端与服务端通讯时,客户端会启用一块内存缓冲空间,起始大小为16KB,随着需求会自动增长,默认最大增长到16MB。适当增大这个默认的最大缓存值,不会造成资源浪费,因为缓存的使用依据需要而自动增加。这个最大值的设定,必须能大于一条单独的查询语句(for client-to-server traffic),且大于服务端返回的一条记录的数据量(for server-to-client traffic)。对于客户端库的最大值限制到1GB,服务端最大缓存为1MB。服务端自动增大的缓存会自动释放,客户端不会,客户端需要在关闭连接后才能释放。

1.构建 C API 程序


  使用 gnu gcc 编译 Linux 下的客户端程序。  指定头文件:-I/usr/local/mysql/include  连接时选项:-L/usr/local/mysql/lib -lmysqlclient

  查看当前机器编译链接时的选项:

[view@file ~]$ /usr/local/mysql/bin/mysql_config --cflags
-I/usr/local/mysql/include -g -DNDEBUG
[view@file ~]$ /mysql/bin/mysql_config --libs
-L/usr/local/mysql/lib -lmysqlclient -lpthread -lm -ldl
# 创建动态链接库(Linux下默认创建动态库)
[view@file ~]$ gcc -o progname progname.o
# 创建静态链接库时,需要指定静态库名
[view@file ~]$ gcc -o progname progname.o /usr/local/mysql/lib/libmysqlclient.a

2.C API 函数


  应用程序交互的步骤:
    ①调用 mysql_library_init() 调用MySQL库
    ②调用 mysql_init() 创建数据库连接,调用 mysql_real_connect() 连接到数据库
    ③发送 SQL 语句(mysql_query()、mysql_real_query())
    ④调用 mysql_close() 终止连接
    ⑤调用 mysql_library_end() 释放库调用

  连接数据库

#include<stdio.h>
#include"mysql.h" int main(void){
MYSQL mysql;
mysql_init(&mysql); // 创建连接,在if语句激活连接
if(NULL != mysql_real_connect(&mysql, "hostname", "username", "password", "dbname", , NULL, )){
printf("连接成功。\n");
}
else{
printf("连接失败!\n");
} mysql_close(&mysql); // 断开数据库连接
return ;
}

MySQL C API(23)的更多相关文章

  1. Mysql学习总结(23)——MySQL统计函数和分组查询

    1.使用count统计条数:select count(字段名...) from tablename; 2.使用avg计算字段的平均值:select avg(字段名) from tablename: 这 ...

  2. Mysql 常用函数(23)- sign 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html sign 的作用 返回参数的符号 sign 的语法 ...

  3. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  4. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  5. Mysql优化系列(2)--通用化操作梳理

    前面有两篇文章详细介绍了mysql优化举措:Mysql优化系列(0)--总结性梳理Mysql优化系列(1)--Innodb引擎下mysql自身配置优化 下面分类罗列下Mysql性能优化的一些技巧,熟练 ...

  6. [转]MySQL Connector/C++(一)

    http://www.cnblogs.com/dvwei/archive/2013/04/18/3029464.html#undefined#undefined MySQL Connector/C++ ...

  7. 微信nickname乱码及mysql编码格式设置(utf8mb4)

    微信nickname乱码及mysql编码格式设置(utf8mb4) 今天在写微信公众平台项目时,写到一个用户管理模块,接口神马的已经调试好了,于是将用户从微信服务器保存到本地数据库,发现报错: jav ...

  8. [转]ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)

    本文转自:http://www.cnblogs.com/parry/p/ASPNET_MVC_Web_API_digest_authentication.html 在前一篇文章中,主要讨论了使用HTT ...

  9. Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

    Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳 ...

随机推荐

  1. C# 生成指定N位随机码

    /// <summary> /// 获取随机码 /// </summary> /// <param name="length">长度</p ...

  2. HTML:meta标签使用总结 [转载] [360浏览器 指定极速模式]

    meta标签作用 META标签是HTML标记HEAD区的一个关键标签,提供文档字符集.使用语言.作者等基本信息,以及对关键词和网页等级的设定等,最大的作用是能够做搜索引擎优化(SEO). PS:便于搜 ...

  3. RedHat7安装vmware虚拟机启动报错

    提示错误如下: Kernel Headers for version 3.10.0-229.14.1.el7.x86_64 were not found.If you.... 安装kernel dev ...

  4. 日期控件My97 DatePicker 的使用

    1.解压后添加My97DatePicker文件夹 2.引入WdatePicker.js文件 日期控件My97DatePicker的使用.html <!DOCTYPE html> <h ...

  5. 安装chrome扩展json-handle

    chrome插件安装 方式一,在线安装 直接插到json-handle地址,添加即可 https://chrome.google.com/webstore/detail/json-handle/iah ...

  6. "上市时间:&nbsp;2014&#24180;&#31179;&#20908;&#23395;" unicode十进制编码转中文

    "上市时间: 2014年秋冬季" unicode十进制编码转中文 System.Web.HttpUtility.HtmlDecode(tmp);

  7. gcc编译工具生成动态库和静态库之一----介绍

     1.库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. ...

  8. 微信小程序客服消息使用

    客服消息使用 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. xiaokefu.com.cn 功能介绍 用户可使用小程序客 ...

  9. 使用jquery.mCustomScrollbar自定义滚动条(1)

    参考博客:https://blog.csdn.net/cdnight/article/details/41351505 api网址:http://manos.malihu.gr/jquery-cust ...

  10. 珍藏的数据库SQL基础练习题答案

    自己珍藏的数据库SQL基础练习题答案 一,基本表的定义与删除. 题1: 用SQL语句创建如下三张表:学生(Student),课程表(Course),和学生选课表(SC),这三张表的结构如表1-1到表1 ...