故障现象:
ldapsearch或其他任何ldap客户端连接server时一直都报:
引用:
ldap_bind: Can't contact LDAP server (-1)
而slapd进程一直都在。netstat发现389端口没有监听。非常奇怪。运行:
命令行下打开debug 也没任何报错,但貌似没提示监听。看文件权限都正常,配置也没动过,白思不得其解,按ctrl+c也无法终止。
后来偶然发现在slapd停止状态下,slapcat也卡住不动,立刻意识到可能db文件不对头。于是在/var/lib/ldap(ldap数据目录)下执行db_recover,然后再执行slapcat就可以看到数据信息了。于是修正/var/lib/ldap的用户权限(因为db_recover用root执行的,产生的新db文件是root:root,而/var/lib/ldap应该是ldap:ldap),再启动slapd,一切正常!
以后有类似情况的朋友可参照本文的做法
