`

linux c++连接mysql示例

阅读更多
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;   
}  
分享到:
评论
1 楼 blue44sky 2013-01-18  
编绎的两个mysql参数选项太吊了

相关推荐

    servant C++语言框架rpc的源码实现 tools C++语言框架IDL工具的源码实现 util C++语言.7z

    examples C++语言框架的示例代码,包括:快速入门示例、promise编程入门示例、压测程序示例 unittest tars cpp rpc框架的单元测试用例,基于GoogleTest开发;可以使用命令'git submodule init unittest;git ...

    MySQL 5.1中文手冊

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MySQL 5.1参考手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MySQL 5.1官方简体中文参考手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/(第 2/24 页)2006-11-02 19:12:13 MySQL 5.1 Reference Manual 2.7. 在...

    MySQL 5.1参考手册中文版

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发...

    mysql5.1中文手册

    在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3...

    MySQL 5.1参考手册 (中文版)

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MYSQL中文手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发...

    php大文件上传示例代码-mysql-utf8

    镜像下载(JSP):cab安装包,开发文档,ASP.NET-ACCESS示例,JSP-ACCESS示例(GB2312),JSP-ACCESS示例(UTF-8),JSP-Sql2005示例(UTF-8),JSP-MySQL示例(UTF-8) 镜像下载(PHP):MySQL示例(UTF-8) 问题反馈:...

    mysql官方中文参考手册

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    MySQL5.1参考手册官方简体中文版

    2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树...

    node.js环境下express+mysql的服务端项目示例.zip

    软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...

    Linux 平台基于 Qt + MYSQL 的聊天程序.zip

    Qt技术是一套强大的跨平台应用程序开发框架,专注于使用C++语言来构建高性能、高可维护性的软件解决方案。自1991年首次推出以来,Qt因其卓越的跨平台能力、丰富的功能集、高效的开发工具和良好的社区支持而广受...

    基于Xmpp协议即时通讯服务器架设 客户端设计(资料、示例源码)

    基于Xmpp协议即时通讯服务器架设及客户端设计 服务器端软件 ejabberd 2.1.6 apache2.2 mysql 安装配置 客户端 strophe(javascript linux下min编译) gloox(c++)库 资料及示例源码

    asp.net大文件上传示例代码-access-gb2312

    镜像下载(JSP):cab安装包,开发文档,ASP.NET-ACCESS示例,JSP-ACCESS示例(GB2312),JSP-ACCESS示例(UTF-8),JSP-Sql2005示例(UTF-8),JSP-MySQL示例(UTF-8) 镜像下载(PHP):MySQL示例(UTF-8) 问题反馈:...

    AsheStudyNotes.rar

    2020/06/20 16:02 266,521 Mysql API C++数据库编程.jpg 2020/06/20 16:02 787 OpenEnglish.txt 2020/06/20 16:02 4,816 Python.txt 2020/06/20 16:02 &lt;DIR&gt; 嵌入式Linux 2020/06/28 09:36 28,384 数据结构笔记.txt ...

    web大文件上传代码

    示例下载(JSP):JSP-ACCESS示例(GB2312),JSP-ACCESS示例(UTF-8),JSP-Sql2005示例(UTF-8),JSP-MySQL示例(UTF-8) 示例下载(PHP):MySQL示例(UTF-8) 问题反馈:http://www.ncmem.com/bbs/showforum-4.aspx VC运行库:...

    JSP大文件上传控件-access-utf8

    镜像下载(JSP):cab安装包,开发文档,ASP.NET-ACCESS示例,JSP-ACCESS示例(GB2312),JSP-ACCESS示例(UTF-8),JSP-Sql2005示例(UTF-8),JSP-MySQL示例(UTF-8) 镜像下载(PHP):MySQL示例(UTF-8) 问题反馈:...

Global site tag (gtag.js) - Google Analytics