因为工作原因,需要在windows操作系统下,搭建openldap+mysql工具平台。曾经尝试在网上搜索相关的文章,但是openldap与DBMS连接的内容非常少,在windows操作系统下配置和使用的资料更是少之又少。所以只好查阅了许多零碎的参考资料,摸索了几天,终于折腾成功。在这里把详细的过程记录下来,希望能帮助有需要的朋友。
一、准备工作:
1、 安装好OpenLDAP:
我使用的是openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe,网上很多地方提供下载,在windows下如何安装的文章也很多。
先安装配置好LDAP,确认能够正常使用。
2、 安装好MySQL:
我使用的是5.1.35版本。应该5.0版本以上都没问题。
3、 从openldap官网下载源码包,里面有需要用到的测试数据和配置样例。最好是与安装你安装的OpenLDAP版本一致。本文下载的是openldap-2.2.29.tgz。解压缩至本地目录。
二、部署:
现在开始正式部署。
1、 安装MYSQL的ODBC驱动:下载驱动程序,安装即可(本文使用的是MyODBC-3.51.11-2-win.exe)。
2、 创建数据库:
1) 创建一个空数据库;
2) 在下载的源码包中找到servers/slapd/back-sql/rdbms_depend/mysql目录,在MYSQL客户端依次运行该目录下的个SQL脚本文件:
testdb_create.sql testdb_data.sql backsql_create.sql //只有这个脚本里的内容是必须的,其他脚本里的都是测试数据。第一次配置时还是全部执行。 testdb_metadata.sql |
3、 创建一个可操作以上数据库的账户,并设置密码。
4、 创建ODBC数据源,连接到以上数据库。(开始菜单-->设置-->控制面板-->管理工具-->数据源(ODBC),详细的就不介绍了)。
5、 修改ldap安装目录下的slapd.conf文件,将配置文件中BDB配置相关的代码全部删除掉(就是从“database bdb”语句到最后的内容),添加以下代码:
####################################################################### # sql database definitions ####################################################################### database sql suffix "dc=example,dc=com" rootdn "cn=root,dc=example,dc=com" rootpw pwd dbname ldap //数据源名称,不是数据库名称。 dbuser user //数据库用户帐号 dbpasswd userpwd //数据库用户密码 subtree_cond "ldap_entries.dn LIKE CONCAT(''%'',?)" insentry_query "INSERT INTO ldap_entries (dn,oc_map_id,parent,keyval) VALUES (?,?,?,?)" lastmod off has_ldapinfo_dn_ru no upper_func "upper" strcast_func "CONCAT" concat_pattern "?||?" |
6、 我这样配置之后,无法启动windows下的openldap服务,但是能通过在命令行窗口输入命令:"slapd –d 1"来启动服务。问题出在哪里还没搞清楚,暂时先通过命令行来启动服务吧。
7、 启动服务后,在命令行窗口输入以下命令,如果能看到测试数据的内容,则表示配置成功:
ldapsearch -LLL -s sub -b "dc=example,dc=com" "(objectClass=*)" |
大功告成,说明OpenLDAP已经能够读取数据库里的测试数据。
下一篇文章:Windows+OpenLDAP+MySQL配置及使用详解(二)——数据库初始化,将会介绍如何通过数据库存储OpenLDAP的数据,以及如何通过OpenLDAP客户端来更新数据库的数据。