LDAP第三天 MySQL+LDAP 安装

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 = 3306
复制代码

  验证是否连接成功:

[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://mirror.switch.ch/mirror/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 serverInvalid 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中查找。

  登录成功的界面:

 

转载于:https://www.cnblogs.com/linuxws/p/9096175.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Myeclipse连接Mysql数据库时报错:Error while performing database login with the pro driver:unable...

driver template: Mysql connector/j&#xff08;下拉框进行选择&#xff09; driver name: 任意填&#xff0c;最好是数据库名称&#xff0c;方便查找 connection URL: jdbc:mysql://localhost:3306/programmableweb User name: 用户名 password: 密码 Driver jars: 添加jar包…

Centos6.5静态IP设置

1.创建新的虚拟机 2.打开终端&#xff0c;打开/etc/sysconfig/network-scripts/ifcfg-eth0文件 3.将BOOTPROTOstatic&#xff0c;原值为dhcp 4.添加 IPADDR192.168.43.125  #静态IP GATEWAY192.168.43.1  #网关 NETMASK255.255.255.0  #子网掩码 NETWORK192.168.43.0  …

matlab --- 图像处理基础

MATLAB图像处理 1. 数字图像处理 参考 数字图像处理(Digital Image Processing)又称为计算机图像处理,是一种将图像信号数字化利用计算进行处理的过程。随着计算机科学、电子学和光学的发展,数字图像处理已经广泛的应用到诸多领域之中。本小节主要介绍图像的概念、分类和数字…

java 注解默认值

package com.zejian.annotationdemo;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/** * Created by wuzejian on 2017/5/19. * 数据类型使用Demo */T…

[python、flask] - POST请求

1. 微信小程序POST传递数据给flask服务器 小程序端 // 提交POST数据 import { request } from "../../request/index.js"async handleDetectionPoints() {let params {url: "/detect_points",data: {"points": arr,"img_name": thi…

[vue]data数据属性及ref获取dom

data项的定义 this.$refs获取dom 获取不到数据 这样中转下才ok 小结: data里不能用this.$ref. 另外使用visjs时候 view-source:http://visjs.org/examples/network/basicUsage.html 加载不出东西,点了按钮触发才ok 小结: create里应该是从上到下执行的. 转载于:https://www.cnb…

Linux命令基础3

1. 计划任务&#xff1a;分为”一次性“ 和”长期性“ 一次性任务是由atq服务/进程来实现的&#xff0c;计划的管理操作是at命令&#xff1a; at <时间> : 安排一次性任务 atq 或at -l &#xff1a; 查看任务列表 at -c 序号&#xff1a; 预览任务与设置环境 atrm 序号…

[异步、tensorflow] - 子线程操作tensor,主线程处理tensor

参考整体流程如下图 代码 import tensorflow as tf"""模拟: 子线程不停的取数据放入队列中, 主线程从队列中取数据执行包含: 作用域的命名、把程序的图结构写入事件、多线程 """# 模拟异步存入样本. # 1、 定义一个队列,长度为1000 with tf.va…

Element

官网&#xff1a;http://element-cn.eleme.io/#/zh-CN 转载于:https://www.cnblogs.com/weibanggang/p/9995433.html

ubuntu18.04下安装Anaconda及numpy、matplotlib

为了学习深度学习&#xff0c;我需要首先掌握利用python进行科学计算的知识&#xff0c;顺便复习一下线性代数、微积分、概率论。当然&#xff0c;现在我要做的是安装Anaconda。 1、官网下载&#xff0c;linux版本&#xff1a;https://www.anaconda.com/download 2、如果太慢&a…

[tensorflow] - csv文件读取

参考 文件流程 csv读取流程 函数的流程 import tensorflow as tf import os"""tensorflow中csv文件的读取1、 先找到文件,构造一个列表2、 构造一个文件队列3、 读取(read)队列内容csv: 读取一行二进制文件: 指定一个样本的bytes读取图片文件: 按一张一张…

课程模块表结构

课程模块 我们要开始写课程模块了~~课程模块都有哪些功能呢~~ 我们的课程模块&#xff0c;包括了免费课程以及专题课程两个方向~~ 主要是课程的展示&#xff0c;点击课程进入课程详细页面~~ 课程详细页面展示&#xff0c;课程的概述&#xff0c;课程的价格策略&#xff0c;课程…

vue中computed、metfods、watch的区别

一、computed和methods 我们可以将同一函数定义为一个 method 或者一个计算属性。对于最终的结果&#xff0c;两种方式确实是相同的。 不同的是computed计算属性是基于它们的依赖进行缓存的。计算属性computed只有在它的相关依赖发生改变时才会重新求值。这就意味着只要计算依赖…

OI生涯回忆录(二)

&#xff08;二&#xff09;NOIP2016之后到HLOI2017 之后变得有点颓废&#xff0c;因为有的地方难度上来了&#xff0c;碰见不会的题我就会放挺。又或者有时候题水&#xff0c;改完了就不思进取了。到了过年前那几天连着考了几天试&#xff0c;好像是长春那边冬令营&#xff08…

[tensorflow、神经网络] - 使用tf和mnist训练一个识别手写数字模型,并测试

参考 包含: 1.层级的计算、2.训练的整体流程、3.tensorboard画图、4.保存/使用模型、5.总体代码(含详细注释) 1. 层级的计算 如上图,mnist手写数字识别的训练集提供的图片是 28 * 28 * 1的手写图像,初始识别的时候,并不知道一次要训练多少个数据,因此输入的规模为 [None, 784].…

面向过程、面向函数、面向对象的区别浅谈

Python的面向过程、面向函数、面向对象的区别浅谈 转自--猎奇古今&#xff0c;加上其他 有人之前私信问我&#xff0c;python编程有面向过程、面向函数、面向对象三种&#xff0c;那么他们区别在哪呢&#xff1f; 面向过程就是将编程当成是做一件事&#xff0c;要按步骤完成&am…

js算法初窥06(算法模式03-函数式编程)

在解释什么是函数式编程之前&#xff0c;我们先要说下什么是命令式编程&#xff0c;它们都属于编程范式的一种。命令式编程其实就是一块一块的代码&#xff0c;其中包括了我们要执行的逻辑或者判断或者一些运算。也就是按部就班的一步一步完成我们所需要的逻辑。而函数式编程则…

[mmdetection] - win10配置mmdetection(1.1和2.0) + 训练网络(faster-rcnn、mask-rcnn)

pytorch配置 - 参考 mmdetextion 配置(win10) mmdetection训练faster-rcnn (win10) mmdetection训练mask-rcnn (win10) mmdetection 2.0配置(win10) mmdetection 2.0训练Faster-RCNN&#xff08;win10) mmdetection 2.0全家桶训练&#xff08;终结版) labelme安装教程 l…

13、Spring Boot 2.x 多数据源配置

1.13 Spring Boot 2.x 多数据源配置 完整源码&#xff1a; Spring-Boot-Demos转载于:https://www.cnblogs.com/Grand-Jon/p/9999779.html

[pytorch、学习] - 3.5 图像分类数据集

参考 3.5. 图像分类数据集 在介绍shftmax回归的实现前我们先引入一个多类图像分类数据集 本章开始使用pytorch实现啦~ 本节我们将使用torchvision包,它是服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。torchvision主要由以下几部分构成: torchvision.datasets: …