我已经在dba.stackexchange.com上发布了这个问题,但它被认为是脱离主题,人们build议我应该把它发布在这里,所以我张贴在这里。
我有一个openldap服务器在ubuntu 14.10上运行,我已经成功地使用下面的ldif添加一个DIT到它:
dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: hdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=example,dc=com olcRootDN: cn=Manager,dc=example,dc=com olcRootPW: secret olcDbIndex: objectClass eq
为了testing多个DITs我尝试使用另一个ldif添加另一个数据库:
dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: hdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=example1,dc=com olcRootDN: cn=Manager,dc=example1,dc=com olcRootPW: secret olcDbIndex: objectClass eq
首先,似乎一切顺利,但当我试图search我的第一个数据库时,我得到一个错误,说:
result: 80 Other (eg, implementation specific) error text: internal error
对这个错误感到困惑,我跑了slapd -d ,这是我得到的:
bdb(dc=example,dc=com): BDB0060 PANIC: fatal region error detected; run recovery
我甚至安装了db-utils并且没有成功运行db_recover 。 问题是我的openldap服务器有什么问题?
我猜主要的错误是你使用相同的olcDbDirectory这两个DITs。 尝试使用不同的目录来存储数据(您可能需要擦除当前数据并重新开始)。