Openldap

openldap 2.4.11 - bdb_dn2id:獲取失敗:DB_NOTFOUND:未找到匹配的密鑰/數據對 (-30989)

  • May 1, 2011

我現在掙扎了很長一段時間,用Google搜尋了很多,但我還沒有弄清楚這個 - 希望是 - 簡單的問題。我是 ldap 的初學者,所以我可能會遺漏一些非常明顯的東西……我有一個非常簡單的 slapd.conf:

include     /private/etc/openldap/schema/core.schema
pidfile     /private/var/db/openldap/run/slapd.pid
argsfile    /private/var/db/openldap/run/slapd.args
database    bdb
suffix      "dc=ronr,dc=nl"
rootdn      "cn=manager,dc=ronr,dc=nl"
rootpw      zz
directory   /private/var/db/openldap/openldap-data
index   objectClass eq

和一個 ldap.conf:

URI ldap://localhost

並開始打耳光。嘗試使用連接到 rootdn 時

ldapadd -x -D "cn=manager,dc=ronr,dc=nl" -w zz -f add_base.ldif -h localhost -d255

我得到:ldap_bind:憑據無效 (49)

在 slapd 的調試級別 250 跟踪中,我得到:

slapd startup: initiated.
backend_startup_one: starting "cn=config"
config_back_db_open
config_build_entry: "cn=config"
config_build_entry: "cn=schema"
config_build_entry: "cn={0}core"
config_build_entry: "olcDatabase={-1}frontend"
config_build_entry: "olcDatabase={0}config"
config_build_entry: "olcDatabase={1}bdb"
backend_startup_one: starting "dc=ronr,dc=nl"
bdb_db_open: database "dc=ronr,dc=nl": dbenv_open(/private/var/db/openldap/openldap-data).
bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
slapd starting
slap_listener_activate(7): 
>>> slap_listener(ldap:///)
connection_get(13): got connid=0
connection_read(13): checking for input on id=0
ber_get_next
ber_get_next: tag 0x30 len 38 contents:
ber_get_next
conn=0 op=0 do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
>>> dnPrettyNormal: <cn=manager,dc=ronr,dc=nl>
<<< dnPrettyNormal: <cn=manager,dc=ronr,dc=nl>, <cn=manager,dc=ronr,dc=nl>
do_bind: version=3 dn="cn=manager,dc=ronr,dc=nl" method=128
bdb_dn2entry("cn=manager,dc=ronr,dc=nl")
=> bdb_dn2id("dc=ronr,dc=nl")
**<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30989)**
send_ldap_result: conn=0 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=49
ber_flush2: 14 bytes to sd 13
connection_get(13): got connid=0
connection_read(13): checking for input on id=0
ber_get_next
ber_get_next on fd 13 failed errno=0 (Undefined error: 0)
connection_closing: readying conn=0 sd=13 for close
connection_close: conn=0 sd=13

我懷疑這條線

<= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30989)

試圖告訴我真正的問題。關鍵是我不知道這裡缺少什麼。我怎樣才能解決這個問題?除了像我所做的那樣將其放入 slapd.conf 之外,我是否應該做一些額外的事情來管理密碼,如果是,我應該怎麼做?FWIW:我在 MacOSX (10.6.6) 上執行它

非常感謝任何有用的提示/建議。羅納德。

我在 Linux 上進行了測試,它工作正常,顯然配置相同。所以我決定使用 ./config –prefix=/usr/local 從 ftp.nl.uu.net/pub/unix/db/openldap/openldap-release/… 安裝 openldap 這導致錯誤版本伯克利數據庫。所以我下載了 download.oracle.com/berkeley-db/db-4.8.30.tar.gz 執行 configure –prefix=/usr/local,安裝它並再次執行 configure for openldap,運氣更好。安裝後它立即工作,從那以後沒有任何問題。並不是說我可以說我知道問題出在哪裡,但對我來說已經足夠了。

引用自:https://serverfault.com/questions/234858