我已经配置了第二台主机来通过 syncrepl 复制主 LDAP 服务器slapd.conf
:
syncrepl rid=666
provider=ldaps://my-main-server.com
type=refreshAndPersist
searchBase="dc=Staff,dc=my-main-server,dc=com"
filter="(objectClass=*)"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=repadmin,dc=my-main-server,dc=com"
credentials=mypassword
当我重新启动时slapd
,它会写入/var/log/debug
Jun 11 15:48:33 cluster-mn-04 slapd[29441]: @(#) $OpenLDAP: slapd 2.4.9 (Mar 31 2009 07:18:37) $ ^Ibuildd@yellow:/build/buildd/openldap2.3-2.4.9/debian/build/servers/slapd
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: slapd starting
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: null_callback : error code 0x14
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: syncrepl_entry: rid=666 be_modify failed (20)
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: do_syncrepl: rid=666 quitting
我查看了返回代码的来源,只发现
#define LDAP_TYPE_OR_VALUE_EXISTS 0x14
无论如何include/ldap.h
,我不太明白这个错误信息是什么意思。
您能帮我调试这个问题并找出 LDAP 复制不起作用的原因吗?我已设法通过slapcat
和将“手动”副本slapadd
放入数据库,但我想自动同步。
更新:/var/lib/ldap/*
通过删除并重新导入数据库 已“解决” slapadd
。
答案1
您确定 slapd 有权在目录中写入吗?通常,从头插入后,您必须更改目录的所有者。