当我在 Debian 6、OpenLdap 2.4.23-7.32.4.23-7.3 上运行 slapcat 或重新启动 slapd 时,看到此警告:
hdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (14).
Expect poor performance for suffix "dc=i-tracing,dc=lan".
但当我看一眼:
[root@xxx-ldap:/etc/ldap]# ls -lh /var/lib/ldap
total 5,8M
[...]
-rw-r--r-- 1 openldap openldap 3,1K 8 nov. 12:00 DB_CONFIG
[...]
和
ps aux | grep openldap
openldap 22919 4.4 1.5 87204 5860 ? SLsl 12:20 0:02 /usr/sbin/slapd -h ldaps://xxx-ldap.xxx.lan:636/ ldap://127.0.0.1:389 -g openldap -u openldap -f /etc/ldap/slapd.conf
你知道我能做什么来证明斯拉普德DB_CONFIG 确实在这里,在 /var/lib/ldap 中?
注意: 即使这样做:
service slapd stop
cp /tmp/DB_CONFIG /var/lib/ldap/
chown openldap:openldap /var/lib/ldap/DB_CONFIG
service slapd start
它一直说 /var/lib/ldap 中没有 DB_CONFIG 文件!?!
答案1
也许其他人也会遇到同样的问题。对我来说,openldap 的版本是:
openldap.x86_64 2.4.40-13.el7 @base openldap-客户端.x86_64 2.4.40-13.el7 @base openldap-服务器.x86_64 2.4.40-13.el7 @base
我DB_CONFIG
在 中找到了该文件/usr/share/openldap-servers/DB_CONFIG.example
,所以只需将该文件 cp 到 ldap 目录中即可。修复问题后, 的结果为slaptest
:
599ade3a bdb_monitor_db_open:监控已禁用;配置监控数据库以启用配置文件测试成功
答案2
我终于找到了根本原因,它隐藏在DB_CONFIG的创建时间中:
-rw-r--r-- 1 openldap openldap 3,1K 8 nov. 12:00 DB_CONFIG
它是确切地上次 slapd 重启的时间。
我已经用这些命令修复了它:
service slapd stop
cp /tmp/DB_CONFIG /var/lib/ldap/
chown openldap:openldap /var/lib/ldap/DB_CONFIG
service slapd start