Chinaunix首页 | 论坛 | 博客
  • 博客访问: 766937
  • 博文数量: 199
  • 博客积分: 3584
  • 博客等级: 中校
  • 技术积分: 2193
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-12 21:18
文章分类

全部博文(199)

文章存档

2018年(6)

2013年(14)

2012年(30)

2011年(28)

2010年(24)

2009年(86)

2008年(11)

分类: LINUX

2009-04-21 23:02:13

linux下C语言连接mysql的程序

#include <stdlib.h>
#include <stdio.h>
#include <mysql/mysql.h>
#include <syslog.h>
 
MYSQL mysql;
void doQuery()
{
   MYSQL_ROW m_row;
   MYSQL_RES *m_res;
   char sql[1024];
   
   sprintf(sql,"select count(*) from my_table");
   if(mysql_query(&mysql,sql) != 0)
   {
      fprintf(stderr, "mysql_query err: %s",mysql_error(&mysql));
   }
   m_res = mysql_store_result(&mysql);
   if(m_res==NULL)
   {
      fprintf(stderr, "get result err: %s",mysql_error(&mysql));
   }
   if(m_row = mysql_fetch_row(m_res))
   {
      printf("count(*) is %d!\n",atoi(m_row[0]));
   }
   mysql_free_result(m_res);
}
main()
{
   char host[32] = "my_host";
   char user[32] = "my_user";
   char passwd[32] = "my_passwd";
   char db[32] = "my_db";
    
   if( mysql_init(&mysql) == NULL )
   {
      fprintf(stderr,"Init mysql err!");
      return -1;
   }
   if (mysql_real_connect(&mysql,host,user,passwd,db,0,NULL,0) == NULL)
   {
      fprintf(stderr,"Connect to mysql Error:%s!",mysql_error(&mysql));
      return -1;
   }
   else
   {
      puts("Connect to mysql success!");
   }
       
   doQuery();
   mysql_close(&mysql);
   return 0;
}

编译使用命令:在/usr/lib/mysql下搜索mysqlclient库,并使用zlib库:

gcc -g c_mysql.c -L/usr/lib/mysql -lmysqlclient -lz

 
怎么我连接我本机的数据库出现如下错误呢:
Can't create UNIX socket (24)
Can't connect to local MySQL server through
socket '/var/lib/mysql/mysql.sock' (24)
根据打印的提示,说明你的MySQL启动不正常。
你试试用SSH到服务器,然后用命令行 mysql -u* -p* 能不能进入数据库。
(没有做过试验,仅是转帖参考)
阅读(3181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~