我一直在经历这个教程,并不断收到错误 – 可能是因为我手动input – 所以我重试,进入后执行它
# Load dynamic backend modules dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulepath: /usr/lib/ldap olcModuleload: back_hdb # Database settings dn: olcDatabase=hdb,cn=config objectClass: olcDatabaseConfig objectClass: olcHdbConfig olcDatabase: {1}hdb olcSuffix: dc=example,dc=local olcDbDirectory: /var/lib/ldap
它的工作,所以我键入其余的,并重新执行:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif
现在它说
ldap_add: Other (eg, implementation specific) error (80) additional info: <olcSuffix> namingContext "dc=home,dc=local" already served by a preceding hdb database
据我猜测,这意味着它不能完成ldapadd,因为它已经存在于同一个名称下。
我尝试使用( 从这里 )删除它:
sudo ldapdelete 'dc=example,dc=local'
并要求input密码,密码不起作用,并且在初始设置中没有任何设置为olcRootPW。
我如何在这种情况下使用ldapdelete,所以我可以重新设置这个数据库?
一般来说, cn = config的初始设置过程不是很容易,在这个过程中有很多方法可以让你自己拍摄。 但是,请记住, cn = config存储在slapd.d中的LDIF格式文件(通常在${prefix}/etc/openldap/ ),可以手动编辑(仔细地在slapd不运行时)。 所以,如果你已经locking了自己(没有RootDN / RootPW),或者以某种方式完全破坏了你的cn = config ,你可以随时修复它。
获得基本configuration的一个好方法是以旧式slapd.conf方式实际执行,然后将其转换为slapd.d (使用slaptest -f -F )一旦基本的东西(数据库,模块和RootDN / RootPW)进行sorting。
无法弄清楚如何删除数据库,但我刚刚开始,所以我清除了slapd和ldap-utils。
sudo apt-get purge slapd ldap-utils
并重新安装。