编译和连接程序

  MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.

  1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.

  $ mysql_config --libs

  2. --cflags 选项 - 使用必要的include文件的选项等等.

  $ mysql_config --cflags

  你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:

  $ g++ -o output-file $(mysql_config --cflags) test.c $(mysql_config --libs)

  执行编译后的程序:

  $ ./output.file

#include <mysql.h> #include <stdlib.h> #include <stdio.h> static char *server_args[] = { "this_program", /* this string is not used */ "--datadir=.", "--key_buffer_size=32M" }; static char *server_groups[] = { "embedded", "server", "this_program_SERVER", (char *)NULL }; int main(void) { if (mysql_server_init(sizeof(server_args) / sizeof(char *), server_args, server_groups)) exit(1); MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "admin"; char *password = "metrics"; /* 此处改成你的密码 */ char *database = "test"; conn = mysql_init(NULL); /* Connect to database */ if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s/n", mysql_error(conn)); exit(1); } /* send SQL query */ if (mysql_query(conn, "show tables")) { fprintf(stderr, "%s/n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); //utput table name */ printf("MySQL Tables in mysql database:/n"); while ((row = mysql_fetch_row(res)) != NULL) printf("%s /n", row[0]); printf ("Number of rows: %lu/n", (unsigned long) mysql_num_rows(res)); MYSQL_FIELD *field; while ((field = mysql_fetch_field(res))) { printf("field name %s/n", field->name); } int num_fields = mysql_num_fields(res); for (int i = 0; i < num_fields; i++) { field = mysql_fetch_field_direct(res, i); printf("Field %u is %s/n", i, field->name); } if (!mysql_set_character_set(conn, "utf8")) { MY_CHARSET_INFO cs; mysql_get_character_set_info(conn, &cs); printf("character set information:/n"); printf("character set name: %s/n", cs.name); printf("collation name: %s/n", cs.csname); printf("comment: %s/n", cs.comment); printf("directory: %s/n", cs.dir); printf("multi byte character min. length: %d/n", cs.mbminlen); printf("multi byte character max. length: %d/n", cs.mbmaxlen); } /* close connection */ mysql_free_result(res); mysql_close(conn); /* Use any MySQL API functions here */ mysql_server_end(); return EXIT_SUCCESS; }

运行结果如下:

转载于:https://www.cnblogs.com/zhwj184/archive/2009/11/24/3027541.html

linux c++连接mysql示例相关推荐

  1. linux jsp mysql数据库,Linux JSP连接MySQL数据库.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava Linux JSP连接MySQL数据库.pdf2页 本 ...

  2. mysql的odbc连接字符串_MySQL :: linux ODBC连接mysql

    linux ODBC连接mysql Posted by: Junquan Liu Date: August 28, 2013 11:38PM 想通过oracle连接mysql,根据网上的指引,先安装u ...

  3. Linux中连接mysql执行sql文件

    Linux中连接mysql执行sql文件 数据量小的时候可以把sql语句内容粘贴执行,但是文件很大的时候,这样执行效率很慢很慢,需要使用source执行sql文件 1.客户端连接mysql数据库 [r ...

  4. Linux JSP连接MySQL数据库

    Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 ...

  5. Linux Java连接MySQL数据库

    Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解 ...

  6. biee mysql_BIEE 11g linux下连接mysql数据源

    对于连接MySQL数据源,BIEE提供两种不同的方式,一是使用自带的Datadirect ODBC驱动,二是使用MySQL原生的ODBC驱动(Connector/ODBC). 不过遗憾的是本人未能将使 ...

  7. Linux下连接Mysql服务器的方式

    一:mysql连接简介 1.linux下mysql的连接方式有三种: 本地mysql命令连接 客户端命令连接 脚本语言封装方法连接 2.linux下mysql的连接方法有两种: TCP/IP协议连接 ...

  8. 在linux中连接mysql数据库服务器_Linux下连接Mysql服务器的方式

    一:mysql连接简介 1.linux下mysql的连接方式有三种: 本地mysql命令连接 客户端命令连接 脚本语言封装方法连接 2.linux下mysql的连接方法有两种: TCP/IP协议连接 ...

  9. Linux远程连接Mysql配置

    Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,Linux如何开启mysql远程连接?设置步骤如下: 创建远程链接授权用户 # 进入mysql操作命令 mysql -h lo ...

最新文章

  1. JDBC数据源连接池(1)---DBCP
  2. Facebook的一些基本操作(网页版)
  3. 数据指标有哪些?什么是好的数据指标?
  4. Ghost 命令参数详解
  5. Atiti  attilax主要成果与解决方案与案例rsm版 v2
  6. Matlab 输入输出命令
  7. java 时间格式化 注解_Java关于时间格式化的方法
  8. 介绍5款非常棒的移动自动化测试工具
  9. 梁宁《产品思维》之26三级火箭
  10. 【C语言及程序设计】项目1-4-2-4:计算圆柱体表面积
  11. 如何管理一盘散沙的团队?
  12. 停止精神内耗 每日分享
  13. 树莓派3B+无显示屏安装教程(一)
  14. matlab 图中lengend换行
  15. Idea上传GitHub时报错:push failed: fatal: unable to access ‘https://github.com/***port 443: Timed out
  16. C#监视USB设备插拔动作
  17. ps修图之——四步去修图后的毛边
  18. 基于Python+Vue+Mysql实现(物联网)智能大棚【100010340】
  19. 2-Omni-USDT裸交易创建与签名
  20. 企业网站为何喜欢选择织梦系统?织梦cms的好处有哪些?

热门文章

  1. 解决ubuntu16.04 qt5.9.1无法输入中文
  2. ios内购二次认证服务器代码
  3. SqlServer2008 安装经验日志总结
  4. linux下带密码的scp,linux下带密码的scp
  5. 集群部署中解决定时任务重复执行的问题-redis分布式锁应用
  6. Android 上传图片实例,java上传图片接口
  7. mongoose获取最高分
  8. 微信开发 getUserInfo:fail tunneling socket could not be established, cause=connect ECONNREFUSED
  9. linux编译c++ 静态库,C/C++ 条件编译静态库
  10. java 常用流_Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数...