始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

在Fedora里面安装BerkeleyDB数据库

发布时间:  2012/9/3 17:17:32

一、首先到Oracle的官网下载Berkeley db数据库源文件

下载地址http://download.oracle.com/otn/berkeley-db/db-5.3.15.tar.gz

二、下载之后的文件是一个打包好的文件,需要在命令行里面利用tar来解压(当然你也可以利用一些可视化工具来解压),步骤如下-
 


在命令行里面输入 tar -zxvf  db-5.3.15.tar.gz

解压之后进入db-5.3.15目录有以下文件及文件夹

 

进入build_unix目录

cd build_unix

之后运行../dist/configure

configure工具检查环境之后,并产生编译程序所需要的文件,当它成功运行之后,接着在命令行里面输入

make

当编译结束之后,你需要运行“make install(需要root权限)”,之后库文件和所需要的开发文件将会安装到你的系统中去。

这时安装好的文件将会默认放在系统的/usr/local/BerkeleyDB.5.3目录里面,为了能够在编程环境中利用它,你需要在/etc/ld.so.conf文件中加入/usr/local/BerkeleyDB.5.3/lib,这样你的程序才能正确找到这个库文件,最后运行ldconfig命令更新你的系统。好了,现在你就可以编写DB数据库代码了。

#include <stdio.h>   
#include <db.h>   
#include<string.h>   
#define DATABASE "employees.db"   
  
int main()  
{  
   DBT key, data;  
   DB *dbp;  
   int ret;  
   struct data_struct {  
      int empid;  
      char lastname[50];  
      char firstname[50];  
      float salary;  
   } emp;  
  
   ret = db_create(&dbp, NULL, 0);  
   if (ret != 0)  
   {  
      perror("create");  
      return 1;  
   }  
  
   ret = dbp->open(dbp, NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0);  
   if (ret != 0)  
   {  
      perror("open: ");  
      return 1;  
   }  
  
   while(1)  
   {  
      printf("Enter Employee ID: ");  
      scanf("%d", &emp.empid);  
      if (emp.empid == 0)  
         break;  
      printf("Enter Last name: ");  
      scanf("%s", &emp.lastname);  
      printf("Enter First name: ");  
      scanf("%s", &emp.firstname);  
      printf("Enter Salary: ");  
      scanf("%f", &emp.salary);  
  
      memset(&key, 0, sizeof(DBT));  
      memset(&data, 0, sizeof(DBT));  
  
      key.data = &(emp.empid);  
      key.size = sizeof(emp.empid);  
      data.data = &emp;  
      data.size = sizeof(emp);  
  
      ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE);  
      if (ret != 0)  
      {  
         printf("Employee ID exists\n");  
      }  
   }  
  
   dbp->close(dbp, 0);  
   return 0;  

编译代码

gcc -I/usr/local/BerkeleyDB.5.3/include -o newemployee newemployee.c -L/usr/local/BerkeleyDB.5.3 -ldb

按照上面的编译将会出现一个错误

/usr/bin/ld: cannot find -ldb

collect2: ld 返回 1

这时在命令行里面输入下面的语言问题就可以解决

ln -s /usr/local/BerkeleyDB.5.3/lib/libdb.so /usr/lib/libdb.so

再编译

gcc -I/usr/local/BerkeleyDB.5.3/include -o newemployee newemployee.c -L/usr/local/BerkeleyDB.5.3 -ldb

好了,最后代码编译成功。


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线