Não foi possível descobrir como excluir o banco de dados, mas eu tinha acabado de começar, então eliminei o slapd e o ldap-utils.
sudo apt-get purge slapd ldap-utils
e reinstalado.
Eu andei por este tutorial e continuei recebendo erros - provavelmente porque eu estava digitando manualmente - então eu tentei novamente, depois de entrar em
# 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
Funcionou, então digitei o restante e executei novamente:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.example.com.ldif
e agora diz
ldap_add: Other (e.g., implementation specific) error (80)
additional info: <olcSuffix> namingContext "dc=home,dc=local" already served by a preceding hdb database
O que, como suponho, significa que não pode completar o ldapadd porque já existe um com o mesmo nome.
Eu tentei excluí-lo usando ( aqui ):
sudo ldapdelete 'dc=example,dc=local'
e está pedindo uma senha, da qual minha senha não funciona e não havia nada definido como o olcRootPW na configuração inicial.
Como eu uso o ldapdelete neste contexto para que eu possa re-configurar este banco de dados?
Geralmente, o processo de configuração inicial para cn = config não é muito fácil e há muitas maneiras de se fotografar no processo. No entanto, lembre-se que cn = config é armazenado em arquivos no formato LDIF em slapd.d (geralmente em ${prefix}/etc/openldap/
) e pode ser editado manualmente (com cuidado e enquanto slapd isn em execução). Então, se você tiver se trancado (sem RootDN / RootPW) ou completamente desconfigurado o seu cn = config de alguma forma, você pode sempre corrigi-lo lá.
Uma boa maneira de obter uma configuração básica é realmente fazê-lo no estilo antigo slapd.conf e convertê-lo em slapd.d (usando slaptest -f -F
) uma vez que o material básico (bancos de dados, módulos e um RootDN / RootPW) é classificado.