linux 下c/c++ 连接mysql数据库全过程

最近在研究CGI,因为看上C语言运行效率了,腾讯也大量使用CGI,我也来试试。

期间被配置搞得死去活来,Apache配置让其支持CGI,连接MySQL等等。

不说了,上代码:

#include <stdlib.h>
#include <stdio.h>
// #include "mysql.h"
#include "/usr/include/mysql/mysql.h"

int main(int argc,char *argv[]){

	MYSQL *conn_ptr;

	conn_ptr = mysql_init(NULL);
	if(!conn_ptr){
		fprintf(stderr,"Mysql_int failed\n");
		return EXIT_FAILURE;
	}

	conn_ptr = mysql_real_connect(conn_ptr,"localhost","root","123","test",0,NULL,0);

	if(conn_ptr){
		printf("success\n");
	}else{
		printf("fail\n");
	}

	mysql_close(conn_ptr);

	return EXIT_SUCCESS;
}

这个是C连接MySQL的,当屏幕显示,success,很激动啊。

123

这里提醒下,conn_ptr = mysql_real_connect(conn_ptr,"localhost","root","123","test",0,NULL,0);

我这里数据库用户名是root,密码123,连接的是test数据库。

如果你对Linux开发感兴趣,可以参考下Linux程序设计这本书。

--------以下是原文-----------

被配置linux下的c/c++ 连接mysql整整折磨了两天,各种尝试,终于通过了。。。

安装Mysql(还可以下载 .gz包,解压安装,再此只介绍此法,其实都一样了,或百度一下。。。重点在下下下下面)

1.首先安装Mysql服务器

sudo apt-get install mysql-server

2.然后安装客户程序

sudo apt-get install mysql-client

3.启动服务器

sudo /etc/init.d/mysql restart

4.当服务器启动之后,你可以使用netstat命令来查看服务器的运行情况

sudo netstat -tap | grep mysql

5.既然服务器已经启动了,我们登录进去看看吧

mysql -u root -p

其中,root为默认的Mysql数据库管理员账户,回车之后应该输入密码,相信密码在安装时你已经设置过了,如果你没设置的话,默认密码为空,因此直接敲回车就可以了,或者还有一个默认密码是db_user_password.

重点:

      在装好mysql-server和mysql-client后,就来装类似windows 下的驱动;

方法一:

      

1.安装必需的开发包

sudo apt-get install gcc g++ libgcc1 libg++ make gdb

2.安装Mysql的C语言开发包(放心,C++一样用的)

sudo apt-get install libmysql++2c2a libmysqlclient15-dev libmysqlclient15off libmysql++-dev

3.把lib文件复制到库里

sudo cp /usr/lib/mysql/* /usr/lib/

现在,你已经可以使用C/C++链接Mysql了,但是,接下来你必须接受一个残酷的事实,以后编写C/C++程序时,你必须包含mysql.h文件

#include “/usr/include/mysql/mysql.h”

注意:上面的方法在执行第一个 sudo 命令时,有可能报错,

      什么什么未满足依赖关系,各种冲突,等等,我就是卡在这的。。。。后来各种查资料。。。。无意间,另一种方法出现。。。

方法二:那就是下载(mysql-connector-c++-1.1.3-linux-glibc2.3-x86-64bit.tar.gz),(选取适合自己平台版本的,我的是这个。。。)

网址:

http://dev.mysql.com/downloads/connector/cpp/

解压:tar -zxvf  mysql-connector-c++-1.1.3-linux-glibc2.3-x86-64bit.tar.gz

然后将解压得到的文件里对应的库,头文件拷贝到系统能找到的位置,就像上面做的那样。

  sudo cp  mysql-connector-c ????/lib/*    /usr/lib

 sudo cp  mysql-connector-c????/include/*    /usr/include/

ok,然后,测试程序:

//test.cpp

#include 

#include "mysql/mysql.h"

int main()

{

  const char *host = "localhost";

  const char *user = "root";

  const char *pass = "123456";

  const char *db   = "test";

  MYSQL mysql;

  mysql_init(&mysql);

  if (!mysql_real_connect(&mysql, host, user, pass, db, 0, NULL, 0)) {

    printf("%s", mysql_error(&mysql));

  }

  else {

    printf("YES, Conected succeed!");

  }

  mysql_close(&mysql);

  return 0;

}

编译:

gcc test.c -lmysqlclient

执行: ./a.out

参考http://www.cnblogs.com/ang868/archive/2013/01/19/2867917.html

http://hi.baidu.com/guokunjiayou/item/2ccd4ffa74c74b06d99e7223

mysql的可是化管理:

mysql-workbench:一款mysql的图形化工具。还有其他的。

1848  sudo apt-get install mysql-workbench

1849  mysql-workbench

具体的使用:参考

http://www.cnblogs.com/daimage/archive/2012/02/25/2367534.html


转载自:http://blog.sina.com.cn/s/blog_6647df2701016lv4.html