首先mysql的安装
yum方式安装mysql5.7
#wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
#rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
#yum install -y mysql-community-server
#systemctl restart mysqld.service
#grep 'temporary password' /var/log/mysqld.log
根据grep出来的密码登录并修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> grant all privileges on *.* to 'root'@'%'identified by '123456';
接着安装依赖的文件
#yum install unixODBC mysql-connector-odbc unixODBC-devel.x86_64 unixODBC-devel.i686 mysql-community-devel.x86_64 mysql-connector-odbc.x86_64
创建ldap的数据库
mysql> create database ldap;
mysql> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'%';
配置ODBC
# cat /etc/odbc.ini
[ldap]
Description = LdapToMysql
Driver = MySQL
Database = ldap
Server = localhost
User = root
Password = 123456
Port = 3306
charset = UTF8
# cat /etc/odbcinst.ini
[PostgreSQL]
Description=ODBC for PostgreSQL
Driver=/usr/lib/psqlodbcw.so
Setup=/usr/lib/libodbcpsqlS.so
Driver64=/usr/lib64/psqlodbcw.so
Setup64=/usr/lib64/libodbcpsqlS.so
FileUsage=1
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib64/libmyodbc8w.so
Setup=/usr/libi64/libodbcmyS.so
Driver64=/usr/lib64/libmyodbc8a.so
Setup64=/usr/lib64/libodbcmyS.so
FileUsage=1
[MySQL ODBC 8.0 Unicode Driver]
Driver=/usr/lib64/libmyodbc8w.so
UsageCount=1
[MySQL ODBC 8.0 ANSI Driver]
Driver=/usr/lib64/libmyodbc8a.so
UsageCount=1
验证是否连接成功
# isql -v ldap
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> show databases;
+-----------------------------------------------------------------+
| Database |
+-----------------------------------------------------------------+
| information_schema |
| ldap |
| mysql |
| performance_schema |
| sys |
+-----------------------------------------------------------------+
SQLRowCount returns 5
5 rows fetched
SQL>
最后源码安装openldap
#cd /opt
#wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.47.tgz
#tar zxvf openldap-2.4.47.tgz
#/opt/openldap-2.4.47
#./configure --prefix=/soft/openldap --enable-sql --disable-bdb --disable-ndb --disable-hdb
#make depend && make && make install
创建软链接
#ln -s /soft/openldap/bin/* /usr/local/bin/
#ln -s /soft/openldap/sbin/* /usr/local/sbin/
生成ldap账户密码
#slappasswd 回车输入密码后生成如下字符串
{SSHA}dAf/QkclIvjYOO0q7egQwMa7elYvuw7p
修改ldap配置文件
# cd /soft/openldap/etc/openldap/
# mv slapd.conf slapd.conf.20200411
#cp /opt/openldap-2.4.47/servers/slapd/back-sql/rdbms_depend/mysql/slapd.conf .
----------------------------------分割线--------------------------------------------------
# cat slapd.conf
# $OpenLDAP$
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /soft/openldap/etc/openldap/schema/core.schema
include /soft/openldap/etc/openldap/schema/cosine.schema
include /soft/openldap/etc/openldap/schema/inetorgperson.schema
# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
pidfile /soft/openldap/var/slapd.pid
argsfile /soft/openldap/var/slapd.args
#######################################################################
# sql database definitions
#######################################################################
database sql
#suffix "o=sql,c=RU"
#rootdn "cn=root,o=sql,c=RU"
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
rootpw {SSHA}dAf/QkclIvjYOO0q7egQwMa7elYvuw7p
dbname ldap
dbhost 192.168.40.93
dbuser root
dbpasswd 123456
subtree_cond "ldap_entries.dn LIKE CONCAT('%',?)"
insentry_stmt "INSERT INTO ldap_entries (dn,oc_map_id,parent,keyval) VALUES (?,?,?,?)"
has_ldapinfo_dn_ru no
为ldap后台数据库添加对应表结构:
# cd /opt/openldap-2.4.47/servers/slapd/back-sql/rdbms_depend/mysql
#mysql -h192.168.40.93 -uroot -p123456
mysql> use ldap
mysql> source backsql_create.sql;
mysql> source testdb_create.sql;
mysql> source testdb_data.sql;
mysql> source testdb_metadata.sql;
安装supervisor服务,并且制作openldap的启动服务
#curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
#sudo python get-pip.py
#pip install supervisor
#echo_supervisord_conf > /etc/supervisord.conf
#vim /etc/supervisord.conf
[include]
files = /etc/supervisord/*.conf
#mkdir -p /etc/supervisord/
#cd /etc/supervisord/
#cat ldap.conf
[program:openldap]
command=/opt/openldap-2.4.47/servers/slapd/slapd -d 5 -h 'ldap:/// ldapi:///' -f /soft/openldap/etc/openldap/slapd.conf
numprocs=1
autostart=true
autorestart=true
startretries=3
user=root
redirect_stderr=true
stdout_logfile=/var/log/openldap.log
#supervisord -c /etc/supervisord.conf
#supervisorctl
>reread
>update
# netstat -tulnp|grep 389
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 20355/slapd
tcp6 0 0 :::389