On 2010年07月26日 19:53, Jonathan Clarke wrote:
The file should be named /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif.
You are right. slapd behavior changed immediately after I renamed as you recommended.
I recommend using loglevel config to see debugging information related to configuration issues. If your file is not read, the hdb database won't appear in the output...
Thanks for recommendation. I tried it and began to have a second different problem. This time new db definition is obviously read, but slapd quit with error:
[snip] <= root access granted => access_allowed: search access granted by manage(=mwrscxd) <= test_filter 6 : config_add_internal: DN="olcDatabase={1}bdb,cn=config" no structural objectClass (unrecognized objectClass 'olcBdbConfig') config error processing olcDatabase={1}bdb,cn=config: send_ldap_result: conn=-1 op=0 p=0 [/snip]
This part "Unrecognized objectClass 'olcBdbConfig'" surprised me a bit, as the line caused the problem is taken from openldap manual:
Quote from http://www.openldap.org/doc/admin24/slapdconf2.html
5.2.6. BDB and HDB Database Directives
In addition to the olcDatabaseConfig objectClass, BDB and HDB database entries must have the olcBdbConfig and olcHdbConfig objectClass, respectively.
Jonathan Clarke also wrote:
One would usually add the new configuration object via LDAP, rather than by modifying the database files. This is the point of cn=config. However, adding files may work also...
Thanks.
Perhaps I missed some document, but what you said is not mentioned in the document I referred to. I think it make a lot of sense to add new database via LDAP, but a newbie would not be able to assume this can be done, especially puzzled by not knowing what crediential should I use to access db cn=config, because olcRootPW is not existing in any of the ldif files except the one I just added:
# grep -R olcRootPW /etc/ldap/slapd.d/ /etc/ldap/slapd.d/cn=config/olcDatabase=bdb:olcRootPW: secret /etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb:olcRootPW: secret