Linux下用C语言连接MySQL数据库

时间:2021-01-19 11:29:13
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
    MySql是一个快速、多线程、多用户的SQL数据库服务器,其出现虽然只有短短的数年时间,但凭借着“开放源代码”的东风,它从众多的数据库中脱颖而出,成为PHP的首选数据库。除了因为几乎是免费的这点之外,支持正规的SQL查询语言和采用多种数据类型,能对数据进行各种详细的查询等都是PHP选择MySql的主要原因。下面,就让我们来看看MySql数据库的主要特征。 
  ·MySql的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySql能很容易充分利用CPU。 
  ·MySql可运行在不同的操作系统下。简单地说,MySql可以支持Windows95/98/NT/2000以及UNIX、Linux和SUN OS等多种操作系统平台。这意味着在一个操作系统中实现的应用可以很方便地移植到其他的操作系统下。 
  ·MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证。 
  ·MySql支持ODBC for Windows。MySql支持所有的ODBC 2.5函数和其他许多函数,这样就可以用Access连接MySql服务器,从而使得MySql的应用被大大扩展。 
  ·MySql支持大型的数据库。虽然对于用PHP编写的网页来说只要能够存放上百条以上的记录数据就足够了,但MySql可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,MySql可以针对不同的应用进行相应的修改。 
  ·MySql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。事实上,MySql的稳定性足以应付一个超大规模的数据库。 
  ·强大的查询功能。MySql支持查询的SELECT和WHERE语句的全部运算符和函数,并且可以在同一查询中混用来自不同数据库的表,从而使得查询变得快捷和方便。 
  ·PHP为MySql提供了强力支持,PHP中提供了一整套的MySql函数,对MySql进行了全方位的支持。

为了用C语言连接数据库,上网查了这么多东西都没连接成功,纠结。到最后发现其实也就是简单一步就解决的问题。

测试代码如下:(旨在测试现行的MYSQL数据库能不能于C语言连接)

/* ************************************************************************
 *       Filename:  connect1.c
 *    Description: 
 *        Version:  1.0
 *        Created:  2014年01月31日 14时53分43秒
 *       Revision:  none
 *       Compiler:  gcc
 *         Author:  YOUR NAME (),
 *        Company: 
 * ************************************************************************/
 
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
 
 
int main(int argc, char *argv[])
{
    MYSQL *conn_ptr;
 
    conn_ptr = mysql_init(NULL);
    if(!conn_ptr)
    {
        printf("mysql_init failed\n");
        exit(EXIT_FAILURE);
    }
    conn_ptr = mysql_real_connect(conn_ptr, "localhost", "xiaofeng",
            "101010", "students", 0, NULL, 0);
    if(conn_ptr)
        printf("Connection success.\n");
    else
        printf("Connection failed\n");
 
    mysql_close(conn_ptr);
 
    return EXIT_SUCCESS;
 
}
编译命令:

gcc -I/usr/include/mysql connect1.c -L/usr/lib/mysql -lmysqlclient -o connect1
编译报错,提示没有找到“mysql.h”。

原因是缺少安装 libmysqlclient库文件,执行
sudo apt-get  install  libmysqlclient*


// mysql.h文件就在usr/include/mysql目录下
再次尝试编译,通过, 运行。