OpenLDAP2.4の”bdb_db_open: db_open(/var/db/openldap-data/id2entry.bdb) failed: No such file or directory (2)”と言うエラーについて


CentOS6.2に対してyumでopneldapをインストールすると2.4がインストールされます。
これがなかなかの曲者で、動的データベースと呼ばれるbdbに対して設定ファイルを書き込む仕様が標準となりました。
なお、動的データベースは、2.3から搭載されている機能で、設定を変更した場合に即座に反映されるものですが、取り扱いが非常に厄介な物でもあります。

OpenLDAP2.4の初期構築時に、slapd.confに設定した内容を動的データベースに書き込むには、以下のコマンドを実行します。

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
chomd -R ldap:ldap /etc/openldap/slapd.d/*

しかしここで起動をしようとしても、失敗する事が有ります。
そこでslpatestコマンドで設定ファイルを確認すると、

bdb_db_open: db_open(/var/db/openldap-data/id2entry.bdb) failed: No such file or directory (2)

というエラーが出ていませんか?
実際に/var/db/openldap-data/の中を見ても、id2entry.dbと言うファイルが存在しない事に気づきます。
しかしどうやっても出来ず色々調べていたところ、適当に*.ldifをslapaddで追加すると、このファイルが出来上がる事がわかりました。
こんな感じです。

slapadd -l /etc/openldap/schema/core.ldif
chown -R ldap:ldap /var/lib/ldap/*

これで起動できるようになりました。
バグなんでしょうかね。でも少なくとも4年前からこの仕様が続いている様です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です