我正在尝试在linux系统上使用lmdb后端配置openldap-2.4.43。到目前为止没有成功。
的slapd.conf:
include /opt/openldap/etc/schema/core.schema
include /opt/openldap/etc/schema/cosine.schema
include /opt/openldap/etc/schema/inetorgperson.schema
allow bind_v2
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
database config
rootdn "cn=Manager,cn=config"
rootpw {SSHA}sMXtPWSAL9yEgDslsXMZiM+qgLJZW9VO
database mdb
suffix "dc=mydomain,dc=com"
rootdn "cn=Manager,dc=mydomain,dc=com"
rootpw {SSHA}sMXtPWSAL9yEgDslsXMZiM+qgLJZW9VO
directory /var/openldap/data/main/
maxsize 10485760
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
straped slaptest(/ opt / openldap / sbin / slaptest -f slapd.conf -F ./slapd.d/)结果(最后一部分):
stat("/var/openldap/data/main/", {st_mode=S_IFDIR|0700, st_size=40, ...}) = 0
getpid() = 2440
brk(0x828a000) = 0x828a000
open("/var/openldap/data/main//data.mdb", O_RDONLY) = -1 ENOENT (No such file or directory)
time(NULL) = 1453993047
write(2, "56aa2c57 mdb_db_open: database \""..., 12256aa2c57 mdb_db_open: database "dc=mydomain,dc=com" cannot be opened: No such file or directory (2). Restore from backup!) = 122
time(NULL) = 1453993047
write(2, "56aa2c57 backend_startup_one (ty"..., 9356aa2c57backend_startup_one (type=mdb, suffix="dc=mydomain,dc=com"): bi_db_open failed! (2)) = 93
write(2, "slap_startup failed (test would "..., 61slap_startup failed (test would succeed using the -u switch)) = 61
_exit(1) = ?
+++ exited with 1 +++
/ var / openldap / data / main是可写的。系统只有一个root用户。
我尝试更改目标文件夹,设置ulimit -c unlimited,更改了maxsize的值。一切都没有明显的结果。
我错过了什么?为什么openldap假设/var/openldap/data/main//data.mdb应该已经存在并且不能自己创建它?
答案 0 :(得分:3)
使用Slaptest将slapd.conf
转换为slapd.d
时遇到同样的错误。
正在转换配置,只是那些错误实际上是警告,因为我当然在/var/lib/ldap
中没有数据库,因为我事先清空了文件夹。
答案 1 :(得分:1)
在main
之后删除尾部斜杠,并在运行slapindex
之前运行slapd
。您需要在数据库更改时随时执行此操作。