OpenLDAP安装错误不完全列表

本文记录了在安装和配置OpenLDAP过程中遇到的各种问题及其解决方案,包括编译环境缺失、TLS/SSL和BerkeleyDB配置错误等,并提供了具体的解决步骤。

1.Unable to locate cc 等
没有安装gcc和g++编译环境,在debian下使用apt-get install gcc g++解决

2.error: Could not locate TLS/SSL package
You have not installed OpenSSL properly or you did not set your environmental variables correctly.

3.error: BDB: BerkeleyDB not available
You have not installed BerkerleyDB properly or you did not set your environmental variables correctly.

ERRORSusingconfigureonOpenLDAP

checkingforopenssl/ssl.h...no
checkingforssl.h...no
configure:error:CouldnotlocateTLS/SSLpackage

YouhavenotinstalledOpenSSLproperlyoryoudidnotsetyourenvironmentalvariablescorrectly.
Thesettingsabove(CPPFLAGS="-I/usr/local/ssl/include"LDFLAGS="-L/usr/local/ssl/lib")
assumeyouhaveinstalledopenSSLin/usr/local/ssl.

checkingfordb.h...no
configure:error:BDB:BerkeleyDBnotavailable
YouhavenotinstalledBerkerleyDBproperlyoryoudidnotsetyourenvironmentalvariablescorrectly.Thesettingsabove(CPPFLAGS="-I/usr/local/BerkeleyDB.4.1/include"LDFLAGS="-L/usr/local/BerkeleyDB.4.1/lib")
assumeyouhaveinstalledBerkeleyDBin/usr/local/BerkeleyDB.4.1.
ObviouslythiswillneedtobechangedtosuityourBerkeleyDBversion.

4.BerkeleyDB version incompatible/ mismatch
这个问题我也碰到了,按照上面的说法添加的环境变量。查了一下,有两种解决办法:

方法一:
默认安装的BerkeleyDB.4.2
在/usr/local/下生成了一个目录/usr/local/BerkeleyDB.4.2
这里包含了include和lib
需要用root进行如下操作
cp/usr/local/BerkeleyDB.4.2/lib/*/usr/lib
cp/usr/local/BerkeleyDB.4.2/include/*/usr/include

方法二:
YoujustneedtosettheLD_LIBRARY_PATHenvironmentvariabletodirectorywheretheBDBsharedlibrariesarelocated.

Typethefollowinglineontheterminalyouareworking..
exportLD_LIBRARY_PATH="
< BerkelyDB Directorypath > /build_unix/.libs"

Forex:
exportLD_LIBRARY_PATH="/home/bompada/db-4.2.52.NC/build_unix/.libs"

5.>>>>> ./scripts/test001-slapadd failed (exit 1)
make[2]: *** [bdb-yes] Error 1
make[2]: Leaving directory `/root/openldap-2.3.32/tests'
make[1]: *** [test] Error 2
make[1]: Leaving directory `/root/openldap-2.3.32/tests'
make: *** [test] Error 2

这个问题很有意思,是在maketest的时候出现的
还在寻找解决办法

6.ldapadd: update failed: dc=domain,dc=com ldap_add: Undefined
attribute type (17)

跳过了上面那个maketest错误,直接执行makeinstall,没有报错。
修改完了配置文件,启动ldap后,添加一个entry时出错了。
还在寻找解决办法

7.error: cannot create %sourcedir /usr/src/redhat/SOURCES

其实就是目录没有创建,实际上还缺少一些用于 rpm build 的工具。
安装 rpm-build 这个包就可以了: yum install rpm-build

<think> 我们正在处理一个关于OpenLDAP的问题:在清空MDB后端数据库后,尝试导入备份数据时报告53号错误允许执行该操作)。我们将参考提供的引用内容,并结合OpenLDAP的常见操作来解决这个问题。 首先,从引用[1]中我们知道: - OpenLDAP的数据存储目录是`/usr/local/var/openldap-data/`(具体路径可能根据安装和配置有所同)。 - 删除这个目录可以重置数据库(同时也要删除配置文件,但这里我们关注数据库)。 错误53(LDAP_UNWILLING_TO_PERFORM)通常表示服务器由于某些原因拒绝执行操作。在导入数据时出现这个错误,可能的原因包括: 1. 尝试导入数据时,目录服务没有完全停止。 2. 数据库文件权限问题。 3. 导入的数据与当前的数据库配置符(例如模式匹配)。 4. 尝试导入的数据中可能包含与现有配置冲突的条目(尽管我们已经清空了数据库,但可能配置中还存在一些残留信息或配置未重置)。 根据问题描述,我们已经清空了MDB数据库。这里“清空”可能意味着删除了数据库文件,或者使用了某种方法清除了所有条目。但是,OpenLDAP的配置(slapd.conf或cn=config)可能仍然存在,并且配置可能要求某些条目必须存在(如根条目),或者访问控制限制(ACL)可能阻止了导入操作。 步骤建议: 1. **确保OpenLDAP服务已停止**:在操作数据库文件之前,必须停止slapd服务。 ```bash sudo systemctl stop slapd # 或者使用对应的停止命令,根据系统同可能为service slapd stop等 ``` 2. **彻底清空数据库**: - 删除MDB数据库文件:根据引用[1],数据库存储目录为`/usr/local/var/openldap-data/`。删除该目录下的所有文件(注意:确保该目录仅用于OpenLDAP数据)。 - 另外,也可以考虑删除数据库日志文件(通常在同一个目录或指定日志目录)。 3. **重置配置文件**(如果需要): - 如果之前修改了配置文件(slapd.conf或cn=config),并且这些配置可能导致问题,可以考虑恢复默认配置或重新配置。 - 引用[1]中提到删除配置存储文件(对于cn=config配置,通常是`/usr/local/etc/openldap/slapd.d/`目录下的文件),但注意:如果配置有问题,重置配置可能有助于解决。但注意,这会清除所有配置,包括数据库定义、ACL等。如果希望重置配置,可以跳过此步。 4. **重新启动OpenLDAP服务并尝试重新导入**: - 启动服务:`sudo systemctl start slapd` - 然后使用`ldapadd`或`ldapmodify`导入备份数据(LDIF文件): ```bash ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f backup.ldif ``` 注意:这里需要替换管理员DN和密码。如果使用简单认证(-x),则需要提供正确的管理员DN和密码(-W表示提示输入密码)。 5. **如果问题仍然存在,检查以下方面**: - **权限问题**:确保数据库目录的权限是正确的。通常,该目录应该由运行slapd的用户(如ldap或openldap)拥有,并且具有读写权限。 ```bash sudo chown -R openldap:openldap /usr/local/var/openldap-data/ sudo chmod -R 750 /usr/local/var/openldap-data/ ``` 注意:用户和组名可能因系统而异,请根据实际情况调整。 - **备份文件格式**:检查备份的LDIF文件是否有效。可以使用`slapdtest`或类似的工具检查格式。如果备份文件包含无效条目(如重复条目、模式匹配等),也可能导致错误。 - **配置问题**:检查OpenLDAP的配置是否正确定义了数据库。特别是,确保数据库的根后缀(suffix)与备份数据中的根条目匹配。 - **日志检查**:查看OpenLDAP的日志文件(通常在`/var/log/slapd.log`或系统日志中)。日志中通常会提供更详细的错误信息。 6. **如果重置配置**(步骤3): - 如果上述步骤无效,可以尝试重置整个OpenLDAP实例(包括配置),然后重新配置并导入数据。但请注意,这将清除所有配置,需要重新设置。 引用[2]中提到了一个证书发布错误,这可能与TLS/SSL配置有关。虽然我们的问题看起来是数据导入问题,但如果备份数据中包含证书相关的条目,并且配置中启用了TLS,那么证书问题也可能导致导入失败。因此,如果备份数据中包含安全相关的对象(如证书),请确保相关配置正确。 总结解决方案: - 停止服务,删除数据库文件,确保权限正确,再启动服务后导入。 - 检查备份数据的正确性。 - 检查配置和日志。 §§相关问题§§ 1. 如何正确备份和恢复OpenLDAP数据? 2. OpenLDAP常见的错误代码有哪些?如何解决? 3. 如何重置OpenLDAP的配置和数据库? 4. 在OpenLDAP中,如何配置MDB后端数据库? </think> ### OpenLDAP MDB 数据库清空后导入备份报错53的解决方案 针对 OpenLDAP 清空 MDB 后端数据库后导入备份报错 **53(LDAP_UNWILLING_TO_PERFORM)** 的问题,以下是系统化的解决步骤: --- ### 一、错误原因分析 错误代码 53 表明 OpenLDAP 服务器拒绝操作,常见原因包括: 1. **数据库状态异常**:清空操作未彻底或文件残留 2. **权限问题**:操作账户对数据库文件或目录无权限 3. **配置丢失**:核心配置(如根后缀 `suffix`)未重建 4. **模式冲突**:备份数据与当前数据库模式兼容 5. **服务未完全停止**:操作时 slapd 进程仍在运行 [^1] --- ### 二、解决方案步骤 #### 步骤1:完全停止 OpenLDAP 服务 ```bash sudo systemctl stop slapd # Systemd 系统 # 或 sudo /etc/init.d/slapd stop # SysVinit 系统 ``` #### 步骤2:彻底清除数据库残留 1. 删除 MDB 数据库文件(路径参考 `/usr/local/var/openldap-data/` [^1]): ```bash sudo rm -rf /usr/local/var/openldap-data/* ``` 2. 清除事务日志: ```bash sudo rm -f /usr/local/var/openldap-data/alock sudo rm -f /usr/local/var/openldap-data/data.mdb ``` #### 步骤3:重建数据库目录结构 ```bash sudo mkdir -p /usr/local/var/openldap-data sudo chown -R openldap:openldap /usr/local/var/openldap-data # 关键权限设置 sudo chmod 700 /usr/local/var/openldap-data ``` #### 步骤4:初始化基础配置 1. 创建初始配置 LDIF 文件 `init.ldif`: ```ldif dn: dc=example,dc=com objectClass: top objectClass: dcObject objectClass: organization dc: example o: Example Organization ``` 2. 导入基础配置: ```bash ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f init.ldif ``` #### 步骤5:导入备份数据(关键修正) ```bash ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f backup.ldif ``` **注意**:如果备份包含管理员条目,需确保 `admin` 密码与当前环境一致。 --- ### 三、故障排除补充 1. **权限验证**: ```bash ls -ld /usr/local/var/openldap-data # 应显示 openldap:openldap ``` 2. **日志检查**: ```bash tail -f /var/log/slapd.log # 实时查看错误详情 ``` 3. **模式恢复**: ```bash slapadd -l schema_core.ldif # 导入核心模式 ``` --- ### 四、预防措施 1. 备份时使用标准导出命令: ```bash slapcat -n 0 > backup.ldif # 导出配置数据 slapcat -n 1 > data.ldif # 导出用户数据 ``` 2. 清空数据库前务必停止服务 3. 维护前后校验配置一致性: ```bash ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config ``` > **根本原因**:错误 53 通常源于数据库状态与配置匹配。通过彻底清除物理文件+重建基础配置可解决 90% 的类似问题。证书相关错误(如引用[2])往往需单独处理 TLS 配置[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值