OpenLdap配置mysql作為後臺數據庫

首先mysql的安裝

yum方式安裝mysql5.7

<code>#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/<code>

根據grep出來的密碼登錄並修改validate_password_policy參數的值

<code>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';/<code>

接著安裝依賴的文件

<code>#yum install unixODBC mysql-connector-odbc unixODBC-devel.x86_64 unixODBC-devel.i686 mysql-community-devel.x86_64 mysql-connector-odbc.x86_64/<code>

創建ldap的數據庫

<code>mysql> create database ldap;
mysql> GRANT ALL PRIVILEGES ON ldap.* TO 'ldap'@'%';/<code>

配置ODBC

<code># cat  /etc/odbc.ini
[ldap]
Description = LdapToMysql
Driver = MySQL
Database = ldap
Server = localhost
User = root
Password = 123456
Port = 3306
charset = UTF8/<code>
<code># 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/<code>

驗證是否連接成功

<code># 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>/<code>

最後源碼安裝openldap

<code>#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//<code>

生成ldap賬戶密碼

<code>#slappasswd    回車輸入密碼後生成如下字符串
{SSHA}dAf/QkclIvjYOO0q7egQwMa7elYvuw7p/<code>

修改ldap配置文件

<code># 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\t\t/soft/openldap/etc/openldap/schema/core.schema
include\t\t/soft/openldap/etc/openldap/schema/cosine.schema
include\t\t/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\tldap://root.openldap.org
pidfile\t\t/soft/openldap/var/slapd.pid
argsfile\t/soft/openldap/var/slapd.args
#######################################################################
# sql database definitions
#######################################################################
database\tsql
#suffix\t\t"o=sql,c=RU"
#rootdn\t\t"cn=root,o=sql,c=RU"
suffix\t\t"dc=example,dc=com"
rootdn\t\t"cn=Manager,dc=example,dc=com"
rootpw\t\t{SSHA}dAf/QkclIvjYOO0q7egQwMa7elYvuw7p
dbname\t\tldap
dbhost 192.168.40.93
dbuser\t\troot
dbpasswd\t123456
subtree_cond\t"ldap_entries.dn LIKE CONCAT('%',?)"
insentry_stmt\t"INSERT INTO ldap_entries (dn,oc_map_id,parent,keyval) VALUES (?,?,?,?)"
has_ldapinfo_dn_ru\tno/<code>

為ldap後臺數據庫添加對應表結構:

<code># 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;/<code>

安裝supervisor服務,並且製作openldap的啟動服務

<code>#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
/<code>


OpenLdap配置mysql作為後臺數據庫


分享到:


相關文章: