在使用C/C++的API来连接MySQL数据库时需要事先安装:
mysql-server    MySQL 服务器端程序
mysql-client    MySQL 客户端程序
mysql-devel MySQL   所需的库和包含文件

假设在本机中存在一个名为 test的数据库,用户名root,密码 123456,在里面有一个username表,定义如下:
create table username(id int not null primary key, username varchar(32) not null);

已在username表中存放了一些数据。使用C语言编程读出username表中所有数据并输出。

源代码如下:
#include<mysql/mysql.h>
#include<stdio.h>
int main()
{
  MYSQL      *mysql;
  MYSQL_RES    *res;
  MYSQL_ROW  row;
  char *query = "select * from username";
  int t, r;

  mysql_init(mysql);
  if(!mysql_real_connect(mysql, "localhost", "root", "123456", "test", 0, NULL, 0))
  {
    printf("Error connecting to database: %s\n", mysql_error(mysql));
  }
  else
  {
    printf("Connected....\n");
  }
  t = mysql_query(mysql, query);
  if(t)
  {
    printf("Error making query: %s\n", mysql_error(mysql));
  }
  else
  {
    printf("Query made...\n");
    res =    mysql_use_result(mysql);
    if(res)
    {
      for(r=0; r<=mysql_field_count(mysql); r++)
      {
        row = mysql_fetch_row(res);
        if(row<0) break;
        for(t=0; t<mysql_num_fields(res); t++)
          printf("%s", row[t]);
        printf("\n");
      }    
    }
    mysql_free_result(res);
  }
  mysql_close(mysql);
  return 0;
}

编译命令:
gcc c_mysql.c -L /usr/lib/mysql/ -lmysqlclient -o c_mysql

运行结果:
[root@localhost sql]# ./c_mysql 
Connected....
Query made...
1xiaoming
2xiaoer
3zhangsan

注意:
MySQL的库文件在mysqlclient。因此在编译MySQL程序的时候有必要加上 -lmysqlclient编译选项。如果提示没有找到mysql.h,产生这个错误的原因是没有mysql.h文件,他在mysql-devel包中,需要安装这个包。