https://www.easysoft.com/applications/openldap/back-sql-odbc.html      OpenLDAP 使用 SQLServer 和 Oracle 数据库。

https://www.cnblogs.com/bigbrotherer/p/7251372.html          CentOS7安装OpenLDAP+MySQL+PHPLDAPadmin

1.安装和设置数据库

在CentOS7下,默认安装的数据库为MariaDB,属于MySQL数据库的一个分支,所以我还是使用了MariaDB。安装命令为:

[root@localhost ~]# yum install mariadb-server -y

然后启动数据库服务:

[root@localhost ~]# systemctl start mariadb

[root@localhost ~]# systemctl enable mariadb //设置开机自启

对数据库进行一些基本设置:

[root@localhost ~]# mysql_secure_installation

初始情况下没有密码,直接回车,它会自动提示你重新设置密码,这时就可以设置自己的数据库密码了。设置完密码之后是一些其他的基本设置,都是直接'y'或者'n'就能解决的,对照着它给出的提示就可以完成设置。然后设置字符集,字符集的设置在/etc下:

[root@localhost ~]# vim /etc/my.cnf

#在[mysqld]标签下添加如下内容:
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8 [root@localhost ~]# vim /etc/my.cnf.d/client.cnf #在[client]标签下添加如下内容:
default-character-set=utf8 [root@localhost ~]# vim /etc/my.cnf.d/mysql-clients.cnf #在[mysql]标签下添加如下内容:
default-character-set=utf8

接着重启服务:

[root@localhost ~]# systemctl restart mariadb

此时就大概完成了数据库的安装和设置。因为要将该数据库做完LDAP的后端数据库,所以先新建一个用户ldap和数据库ldap作为连接LDAP的数据库:

[root@localhost ~]# mysql -uroot -p

添加ldap用户,设置密码为ldap,添加权限给ldap用户并新建数据库ldap:

MariaDB [(none)]> CREATE DATABASE ldap;
MariaDB [(none)]> CREATE USER 'ldap'@'%' IDENTIFIED BY 'ldap';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'%';
MariaDB [(none)]> CREATE USER 'ldap'@'localhost' IDENTIFIED BY 'ldap';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'localhost';
MariaDB [(none)]> show databases;

然后退出数据库,进行第二步。

2.安装ODBC并配置ldap数据库

直接yum安装:

[root@localhost ~]# yum install unixODBC mysql-connector-odbc

创建连接配置文件odbc.ini:

[root@localhost ~]# vim /etc/odbc.ini

#添加如下内容
[ldap]
Description = LdapToMysql
Driver = MySQL
Database = ldap
Server = 127.0.0.1
User = ldap
Password = ldap
Port =

验证是否连接成功:

[root@localhost ~]# isql -v ldap

进入如下界面:
   
  输入查看数据库的命令:

SQL> show databases;

  
  连接成功!

3.下载安装并配置OpenLDAP

安装LDAP到/opt目录下:

[root@localhost ~]# yum install wget make gcc mysql-devel unixODBC-devel groff -y
[root@localhost ~]# cd /opt
[root@localhost opt]# wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.43.tgz
[root@localhost opt]# tar zxvf openldap-*.tgz
[root@localhost opt]# rm -rf openldap-*.tgz
[root@localhost opt]# mv openldap-* openldap
[root@localhost opt]# cd /opt/openldap
[root@localhost openldap]# ./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/share/man --infodir=/usr/share/info --enable-sql --disable-bdb --disable-ndb --disable-hdb
[root@localhost openldap]# make depend
[root@localhost openldap]# make
[root@localhost openldap]# make install

此时安装已经完成,接着配置LDAP,首先生成自己的LDAP密码:

[root@localhost openldap]# slappasswd

输入密码之后它会返回给一个加密的密码,类似于“{SSHA}XDEtT6s3MTzrSbHeJl7OlRoqk0w1By1X”。然后打开LDAP配置文件,该文件在/etc/openldap目录下:

[root@localhost openldap]# vim /etc/openldap/slapd.conf

#在第5行下面添加如下内容
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema #修改第55行内容
database sql
#修改第56、57行的dc值(这里最好设置为example,因为后面要用ldap的数据库数据,如果这里使用别的值,那么对应的要把数据库中的所有dn都改掉)
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
#修改第61行rootpw的值,就是之前获取到的加密密码
rootpw {SSHA}hg2Lg6BPtgmgS/dy7WO1f3ExSKY3VMBl
#注释掉第65、67行的内容
#directory /var/openldap-data
#index objectClass eq
#在第61行rootpw下面添加如下内容
rootpw {SSHA}XDEtT6s3MTzrSbHeJl7OlRoqk0w1By1X
dbname ldap
dbuser ldap
dbpasswd ldap
has_ldapinfo_dn_ru no
subtree_cond "ldap_entries.dn LIKE CONCAT('%',?)"

关于dc(domainComponent)的问题,在https://www.bbsmax.com/A/WpdKKPaodV/这篇文章里面讲解的很好,我的安装配置也是从这里学的。

到此,OpenLDAP的安装与配置完成,但此时还不能运行LDAP,因为数据库中没有对应的表结构,LDAP虽然可以使用除BDB之外的数据库,但必须要使用它定义的表结构。对应的表结构在/opt/openldap/servers/slapd/back-sql/rdbms_depend/目录下,该目录下有多种数据库的表结构,包括MySQL、Oracle和PGSQL等,进入mysql目录下,有如下几个sql文件:


backsql_create.sql是基础的表结构,不论其它表有没有,这几个表必须有;testdb_create.sql是测试的表结构,包含几个像person表之类的表结构;testdb_data.sql是测试表中的数据;testdb_metadata.sql是基础表中的数据。进入数据库中执行这几个sql文件:

[root@localhost ~]# mysql -uldap -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.52-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> use ldap MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/backsql_create.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_create.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_data.sql
MariaDB [ldap]> source /opt/openldap/servers/slapd/back-sql/rdbms_depend/mysql/testdb_metadata.sql

此时运行LDAP:

[root@localhost ~]# /opt/openldap/servers/slapd/slapd -d 5 -h 'ldap:/// ldapi:///' -f /etc/openldap/slapd.conf &

4.安装和配置LDAP管理工具PHPldapadmin

首先安装Apache和PHP:

[root@localhost ~]# yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml

然后安装phpldapadmin:

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum --enablerepo=epel -y install phpldapadmin

接着修改配置文件:

[root@localhost ~]# vim /etc/phpldapadmin/config.php

#397行取消注释,398行添加注释
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid'); [root@localhost ~]# vim /etc/httpd/conf.d/phpldapadmin.conf // 修改配置
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
#添加一行内容,指定可访问的ip段(不填不能运行这个管理工具,我就直接写的本地ip)
Require ip 192.168.85.132
</IfModule>

设置开机自启并启动Apache:

[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd
此时phpldapadmin可以访问但可能不能登录,这个和系统SELinux有关,如果SELinux关闭的话登录时候会有一个错误:
error Unable to connect to LDAP server Cloud-Lab.Com
error: Can't contact LDAP server (-1) for user
error Failed to Authenticate to server Invalid Username or Password.

打开这个配置:

[root@localhost ~]# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> off
[root@localhost ~]# setsebool -P httpd_can_connect_ldap on
[root@localhost ~]# getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> on

浏览器访问phpldapadmin:

http://(localhost或服务器地址)/phpldapadmin/

登录phpldapadmin,用户名密码可以在数据库ldap的表persons中查找。

  登录成功的界面:

LDAP第三天 MySQL+LDAP 安装的更多相关文章

  1. Linux服务器运行环境搭建(三)——MySQL数据库安装

    官网:http://www.mysql.com/ 官网下载地址:http://dev.mysql.com/downloads/mysql/ 说明:官网下载页面的“Select Platform” 选择 ...

  2. MySQL的安装与维护

    一.数据库的基本概念 数据库: 以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度的特点.是与应用程序彼此独立的数据集合. DBMS(DataBase Management System,数 ...

  3. GJM :用JIRA管理你的项目(三)基于LDAP用户管理 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  4. HDP2.4安装(三):MySql安装

    在安装Ambari时,Ambari默认的数据库是ProstgreSQL,对ProstgreSQL不太熟悉,选择使用MySql. 但Centos 7 默认支持的是MariaDB数据库. MariaDB是 ...

  5. (三)—Linux文件传输与mysql数据库安装

    文件传输工具使用    为了速成,关于linux系统的学习都先放一放,用到哪个知识点就查哪个,这里想在linux下装一些服务练练手,最先想到的就是装个mysql数据库试试. 因为我用的是虚拟机下的li ...

  6. 七、Dockerfile案例三(Mysql安装)

    七.Dockerfile案例三(Mysql安装) *特别提醒:新版的mysql:5.7数据库下的user表中已经没有Password字段了(5.5的user表还有) 一.查看docker hub上的版 ...

  7. Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建

    一.Centos6下安装Mysql 检测下系统有没有自带的mysql:yum list installed | grep mysql, 如果已经有的话执行命令yum -y remove mysql-l ...

  8. 管理员技术(五): 配置文档的访问权限、 配置附加权限、绑定到LDAP验证服务、配置LDAP家目录漫游

    一.配置文档的访问权限 问题: 本例要求将文件 /etc/fstab 拷贝为 /var/tmp/fstab,并调整文件 /var/tmp/fstab的权限,满足以下要求: 1>  此文件的拥有者 ...

  9. MySql免安装版安装配置,附MySQL服务无法启动解决方案

          文首提要:             我下载的MySQL版本是:mysql-5.7.17-winx64.zip  Archive版:系统:Windows7 64位. 一.解压文件 下载好My ...

随机推荐

  1. ceres求解BA第10章

    1.前言g2o是根据边来保存每一个代价函数,它是在边类中构造误差函数,构造边的时候,会设置顶点.测量值.协方差矩阵等.而在ceres中,用problem类型来构造最终的目标函数.先是使用AddResi ...

  2. 51Nod 1158 全是1的最大子矩阵 —— 预处理 + 暴力枚举 or 单调栈

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1158 1158 全是1的最大子矩阵  基准时间限制:1 秒 空 ...

  3. 【html学习整理】meta,img,表格,表单

    meta标签: 作用: 给搜索引擎用 . 告诉浏览器是什么编码 <meta charset="UTF-8"> <meta name="keywords& ...

  4. html5--1.7超链接上

    html5--1.7超链接上 一.超链接的5种形式 <!DOCTYPE html> <html lang="en"> <head> <me ...

  5. 分享知识-快乐自己:全面解析 java注解实战指南

    请你在看这篇文章时,不要感到枯燥,从头到尾一行行看,代码一行行读,你一定会有所收获的. 问: 为什么学习注解? 学习注解有什么好处? 学完能做什么? 答: 1):能够读懂别人的代码,特别是框架相关的代 ...

  6. VC++中list::list的使用方法总结

    本文主题 这几天在做图像处理方面的研究,其中有一部分是关于图像分割方面的,图像目标在分割出来之后要做进一步的处理,因此有必要将目标图像的信息保存在一个变量里面,一开始想到的是数组,但是马上就发现使用数 ...

  7. listen 71

    Creepy People Leave You Cold Jack Nicholson, playing the crazed caretaker in The Shining, makes me r ...

  8. 2018.3.3 How too much fructose may cause liver damage

    Fructose is the sweetest of the natural sugars. As its name suggests, it is found mainly in fruits. ...

  9. 动态创建TeeChart的简便方法

    最近在项目中使用Teechart ocx版本替换了labview的老版本控件,显示效果和效率均有提高,但是却遇到多线程下报access violation的问题. 翻遍大小论坛,最后在官网论坛找到相同 ...

  10. css 3d box 实现的一些注意事项

    Test1.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...