- 浏览: 612569 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kangh:
转载的也拿出来 都不试一下 完全错误
Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解 -
wangtxlz:
#cd builders/cmake#cmake .系统提示命 ...
crtmpserver流媒体服务器的介绍与搭建 -
hnraysir:
支持支持支持
手机Android音视频采集与直播推送,实现单兵、移动监控类应用 -
wuent:
把web服务器和php框架绑定到一起?真不建议这样。。。
Swoole(PHP高级Web开发框架) -
wuent:
有更详细的性能比较吗?php,python,java
PHP中的(伪)多线程与多进程
bdb安装程序:
1、安装Berkeley DB
# cd /usr/local/src
# wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz
# tar -zxvf db-4.6.21.tar.gz
# cd db-4.6.21
# cd build_unix
Berkeley DB默认是安装在/usr/local/BerkeleyDB.4.6目录下,其中4.6就是版本号,你也可以指定–prefix参数来设置安装目录
# ../dist/configure --prefix=/usr/local/berkeleydb --enable-cxx
其中–enable-cxx就是编译C++库,这样才能编译Berkeley DB数据库的PHP扩展php_db4
# make
# make install
# echo '/usr/local/berkeleydb/lib/' >> /etc/ld.so.conf
# ldconfig
这2句的作用就是通知系统Berkeley DB的动态链接库在/usr/local/berkeleydb/lib/目录。
如果没有系统提示ldconfig命令,则用whereis ldconfig找一下在哪,一般可用 # /sbin/ldconfig
至此,Berkeley DB数据库已经安装完成。
2、安装Berkeley DB的PHP扩展
虽然PHP里已经自带了php_db和php_dba两个扩展都支持Berkekey DB,但是毕竟支持的有限,所以还是编译Berkeley DB自带的php_db4扩展好。
# cd /usr/local/src/db-4.6.18/php_db4/
# phpize(/usr/local/php/bin/phpize)
# ./configure --with-db4=/usr/local/berkeleydb/ --with-php-config=/usr/local/php/bin/php-config
# make
# make install
说明:这里configure的时候可能会提示你找不到php-config,你可以找到你的php安装PATH,然后增加--with-php-config=PATH
至此db4已编译好在/usr/lib64/php/modules/db4.so目录(具体跟你的系统有关)
echo 'extension=db4.so' > /etc/php.d/db4.ini
重起WEB服务器(Apache等)
至此php_db4扩展的安装也完成了,执行php -m即可看到db4扩展已经加载了。
3、测试php_db4扩展php_db4提供了下面4个类:
class Db4Env {
function Db4Env($flags = 0) {}
function close($flags = 0) {}
function dbremove($txn, $filename, $database = null, $flags = 0) {}
function dbrename($txn, $file, $database, $new_database, $flags = 0) {}
function open($home, $flags = DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN, $mode = 0666) {}
function remove($home, $flags = 0) {}
function set_data_dir($directory) {}
function txn_begin($parent_txn = null, $flags = 0) {}
function txn_checkpoint($kbytes, $minutes, $flags = 0) {}
}
class Db4 {
function Db4($dbenv = null) {} // create a new Db4 object using the optional DbEnv
function open($txn = null, $file = null, $database = null, $flags = DB_CREATE, $mode = 0) {}
function close() {}
function del($key, $txn = null) {}
function get($key, $txn = null, $flags = 0) {}
function pget($key, &$pkey, $txn = null, $flags = 0) {}
function get_type() {} // returns the stringified database type name
function stat($txn = null, $flags = 0) {} // returns statistics as an as
function join($cursor_list, $flags = 0) {}
function sync() {}
function truncate($txn = null, $flags = 0) {}
function cursor($txn = null, flags = 0) {}
}
class Db4Txn {
function abort() {}
function commit() {}
function discard() {
function id() {}
function set_timeout($timeout, $flags = 0) {}
}
class Db4Cursor {
function close() {}
function count() {}
function del() {}
function dup($flags = 0) {}
function get($key, $flags = 0) {}
function pget($key, &$primary_key, $flags = 0) {}
function put($key, $data, $flags = 0) {}
}
从字面上也不难理解,Db4Env设置数据库环境、Db4操作数据库、Db4Txn用于事务处理、Db4Cursor用于光标处理。具体使用可参考
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/ext/php.html
/usr/local/src/db-4.6.18/php_db4/samples目录下提供了2个简单的例子simple_counter.php和transactional_counter.php。
simple_counter.php
<?php
// Create a new Db4 Instance
$db = new Db4();
// Open it outside a Db4Env environment with datafile/var/lib/db4
// and database name "test"
$db->open(null, "/var/tmp/db4", "test");
// Get the current value of "counter"
$counter = $db->get("counter");
print "Counter Value is $counter\n";
// Increment $counter and put() it.
$db->put("counter", $counter+1);
// Sync to be certain, since we're leaving the handle open
$db->sync();
?>
transactional_counter.php
<?php
// Open a new Db4Env
$dbenv = new Db4Env();
$dbenv->set_data_dir("/var/tmp/dbhome");
$dbenv->open("/var/tmp/dbhome");
// Open a database in $dbenv. Note that even though
// we pass null in as the transaction, db4 forces this
// operation to be transactionally protected, so PHP
// will force auto-commit internally.
$db = new Db4($dbenv);
$db->open(null, 'a', 'foo');
$counter = $db->get("counter");
// Create a new transaction
$txn = $dbenv->txn_begin();
if($txn == false) {
print "txn_begin failed";
exit;
}
print "Current value of counter is $counter\n";
// Increment and reset counter, protect it with $txn
$db->put("counter", $counter+1, $txn);
// Commit the transaction, otherwise the above put() will rollback.
$txn->commit();
// Sync for good measure
$db->sync();
// This isn't a real close, use _close() for that.
$db->close();
?>
发表评论
-
hash算法 (hashmap 实现原理)
2015-06-12 11:33 0Hash ,一般翻译做“ 散列” ,也有直接音译为 ... -
数据挖掘十大经典算法
2015-05-15 14:27 1164国际权威的学术组织the IEEE Internationa ... -
京东个性化推荐系统持续优化的奥秘
2015-04-20 11:03 0京东基于大数据和个性化推荐算法,实现了向不同用户展示不同的内 ... -
php 经典的算法题你懂的
2015-03-31 12:31 0有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来, ... -
阿里开源Mysql分布式中间件:Cobar
2015-01-28 00:18 1071Cobar是阿里巴巴研发的关系型数据的分布式处理系统(Amoe ... -
由浅入深探究mysql索引结构原理、性能分析与优化
2015-01-28 00:13 761第一部分:基础知识 第 ... -
MySQL Explain 结果解读与实践
2015-01-27 22:33 848Explain 结果解读与实践 基于 MySQL 5.0.6 ... -
MySQL 高可用架构之MMM - yayun
2015-01-20 00:09 812简介 MMM(Master-Master replicati ... -
PHP实现常见查找和排序算法
2015-01-09 15:40 0下面分享一些最常见的算法,用PHP如何实现。 1、冒泡排序 ... -
理解MySQL——索引与优化
2015-01-09 15:23 643写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进 ... -
B树、B-树、B+树、B*树
2015-01-09 15:10 705B树 即二叉搜索树: 1.所 ... -
MySQL NDB 6.3.20集群安装
2014-10-19 10:49 951引言: 本文会先对MySQ ... -
TF-IDF与余弦相似性的应用(三):自动摘要
2014-05-25 23:24 0有时候,很简单的数学方法,就可以完成很复杂的任务。 这个 ... -
TF-IDF与余弦相似性的应用(二):找出相似文章
2014-05-25 23:23 757上一次,我用TF-IDF算法自动提取关键词。 今天,我们再 ... -
TF-IDF与余弦相似性的应用(一):自动提取关键词
2014-05-25 23:22 767这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题。 ... -
生成文本聚类java实现 (3)
2014-05-25 22:25 776很多网友看到我的聚类的研究,到后来基本上都是到car ... -
生成文本聚类java实现 (2)
2014-05-25 22:23 1425Java代码 4.从剩余的词中提取文本 ... -
生成文本聚类java实现 (1)
2014-05-25 22:23 1122本章主要的学习是中文分词 和两种统计词频(传统词频和T ... -
sphinx的配置和管理
2013-10-16 14:38 720Sphinx增量索引(转) 在实际应用中往往有这么一 ... -
贝叶斯推断及其互联网应用(二):过滤垃圾邮件[转]
2013-09-11 15:42 881上一次,我介绍了贝叶斯推断的原理,今天讲如何将它用于垃 ...
相关推荐
标题“db4-4.7.25-17.el6.i686.rpm”指出的是一个特定版本的Berkeley DB(简称db4)软件包,适用于32位的...通过正确安装和配置db4 RPM包,可以解决这个问题,使32位Linux系统能够正常运行需要Berkeley DB支持的软件。
1. **查找并安装旧版本的libdb**:可以使用`yum`或`dnf`(取决于你的Linux发行版)来查找和安装libdb的旧版本。例如,运行`yum search libdb.so.3`或`dnf search libdb.so.3`来查看可用的版本,然后根据结果进行安装...
而**Db4**(Berkeley DB 4)则是一种高性能嵌入式数据库系统,能够高效地存储和检索数据。结合两者,可以创建一个无需依赖系统用户账户即可运行的FTP服务,所有FTP用户的认证信息均保存在Db4数据库中,这大大增强了...
在Red Hat Linux操作系统中,`db_load`是一个用于导入Berkeley DB数据库文件的工具,它通常与`db4`库一起使用。Berkeley DB是一种轻量级、高性能、嵌入式数据库系统,广泛应用于各种软件项目,包括系统配置、日志...
在Linux环境下配置OpenLDAP,需要安装一系列依赖软件,包括BerkeleyDB和cyrus-sasl。接下来,我们将深入探讨这些组件以及OpenLDAP的安装过程。 首先,BerkeleyDB是一个高性能、嵌入式数据库系统,由Oracle公司开发...
DB4(Berkeley DB)是一种嵌入式数据库管理系统,它支持文件数据库。在这里,我们需要安装 DB4 部件包,以便支持文件数据库: ``` [root@KcentOS5 ~]# yum install db4* ``` 这将安装 DB4 部件包,包括 DB4 开发包、...
DB4 是一个基于 Berkeley DB 的文件数据库,能够提供快速的数据存储和检索功能。为了支持虚拟用户环境,需要安装 DB4 部件包。 [root@KcentOS5 ~]# yum install db4* 在安装 DB4 部件包时,需要安装相关的依赖项。...
4. DB4:在VSFTPD的虚拟用户机制中,DB4(Berkeley DB 4)数据库用于存储独立的用户名/密码信息,与系统账号分离。这种方式可以更好地管理和控制FTP用户的权限,每个员工可以根据其级别获得不同的访问权限,确保资料...
在开始配置vsftp虚拟用户之前,需要安装db4-utils软件包,该软件包的作用是提供了一个Berkeley DB数据库引擎,用于存储vsftp虚拟用户的用户名和密码信息。 2. 创建logins_list文件 创建一个名为logins_list的文件...
Tuxedo 8.1 版本可能需要用户手动编译和安装,因此源码是必不可少的。在获取源码后,通常需要进行以下步骤: 1. 解压源码包:使用 `tar` 或 `unzip` 命令解压缩下载的文件。 2. 配置环境:设置必要的环境变量,如 `...
- **Key-Value 存储**:如 Tokyo Cabinet/Tyrant、Berkeley DB 和 MemcachedB,快速查找 key 对应的 value。 - **图存储**:如 Neo4J 和 FlockDB,专门用于存储和处理图形关系。 - **对象存储**:如 db4o 和 Versant...
3. 键值存储:如Tokyo Cabinet/Tyrant、Berkeley DB、MemcacheDB和Redis,这类数据库以键值对形式存储数据,查询速度快,适用于缓存和快速访问场景。 4. 图存储:如Neo4J、FlockDB,专门用于存储和查询复杂的图形...
具有持久连接的Oracle Berkeley DB 4示例 $ cache = new Cache ( '/your/path/to/the/cahe-file/cache.db4' , 'db4' ); $ yorObject = new ObjectYouWantToPutInCache (); $ yourObjectIdentifier = 'your:cool:...
3. **加载用户数据库**:使用 `db_load` 工具将文本文件转换为 Berkeley DB 格式。 ```bash yum -y install db4 db4-utils db_load -T -t hash -f /etc/vsftpd/user_passwd /etc/vsftpd/user_passwd.db chmod ...
为了实现虚拟用户的认证,需要安装 `Berkeley DB` 工具,即 `db4` 和 `db4-utils`。然后创建一个包含用户名和密码的文本文件,例如 `/etc/vsftpd/vuser_passwd.txt`,每个用户名和对应的密码应位于不同行,且用户名...
- **安装Berkeley DB工具:** ```bash yum install db4 db4-utils ``` - **创建用户密码文本:** ```bash cat /etc/vsftpd/vuser_passwd.txt lixiang 8qu.com.cn shuaicong 8qu.com.cn gaojingyuan 8qu....
- **Key-Value 存储**:Tokyo Cabinet/Tyrant、Berkeley DB、MemcacheDB 和 Redis,适用于快速的键值查找。 - **图存储**:Neo4J 和 FlockDB 专门用于存储和处理图形关系。 - **对象存储**:如 db4o,直接使用...
1. **键值存储**:如Tokyo Cabinet/Tyrant、Berkeley DB、MemcacheDB、Redis等,特点是使用键值对形式存储数据,访问速度快,但缺乏复杂查询功能。 2. **文档数据库**:如MongoDB、CouchDB等,使用JSON或类似格式...
# 安装 Berkeley DB 数据库,用于虚拟用户的管理 yum -y install db4* ``` 安装完成后,确保 vsftpd 服务已经安装成功。 ```bash # 检查 vsftpd 服务状态 service vsftpd status ``` #### 四、创建专用账户 为了...