我已将旧slapd
数据库迁移到新服务器,以下是我采取的步骤:
在旧服务器运行:
slapcat -n 0 -l config.ldif slapcat -n 2 -l data.ldif
我必须跑,
slapcat -n 2
因为-n 1
我得到了slapcat: database doesn't support necessary operations.
将两个 ldif 文件复制到新服务器
安装
openldap
:yum install -y openldap openldap-servers openldap-clients
编辑
config.ldif
并更改行dn: olcDatabase={2}bdb,cn=config olcDatabase: {2}bdb
成为
dn: olcDatabase={1}bdb,cn=config olcDatabase: {1}bdb
slapadd
对两个 ldif 文件运行:slapadd -c -F /etc/openldap/slapd.d -n 0 -l config.ldif
olcOverlay
第一次出现此错误时我收到不允许的错误,因此我删除了该config.ldif
文件的行,然后它就正常工作了。slapadd -c -F /etc/openldap/slapd.d -n 1 -l data.ldif
这似乎工作正常。
开始
slapd
。这就是我的问题所在,slapd
无法启动,并且出现错误:olcDbDirectory: value #0: invalid path: Permission denied config error processing olcDatabase={1}bdb,cn=config: olcDbDirectory: value #0: invalid path: Permission denied
我的文件
olcDbDirectory
中的config.ldif
设置为/usr/local/openldap/ldap
,并且该文件夹存在并归所有ldap:ldap
,我甚至尝试授予它777
权限,但仍然收到此错误。
我希望slapd
能开始。如果有人能给我任何帮助,那就太好了,无论是我可能错过的步骤还是我应该做什么来解决这个错误。
答案1
当你导入时config.ldif
,slapadd
不会覆盖 yum 安装部署的现有内容。要正确导入配置,你必须先删除当前配置:
rm -r /etc/openldap/slapd.d/cn=config*
sudo -u ldap slapadd -F /etc/openldap/slapd.d -n0 -l config.ldif
(如果您slapadd
以 root 身份运行,那么您应该chown -R ldap:ldap /etc/openldap/slapd.d
随后sudo -u ldap
避免这样做。)
如果你做对了所有事情,slapadd
就会成功没有需要-c
。