openldap无法启动--连接不上mysql--Client does not support authenticat

  openldap数据是存储在mysql中的,在部署另外一个环境的时候,另建了一个库,然后同事说权限有什么特别的,去数据库里授权了一下,我也不清除他到底作了什么。由于openldap是通过odbc连mysql的,所以在odbc.ini中改了一下数据库名,然后改openldap的schema,mysql中的数据。

  ok,准备启动openldap,发现启动不起来了,查一下日志,发现是数据库连不上,报backend_startup_one: bi_db_open failed! 。不知道为什么数据库连不上,把所有作过的操作都恢复原状,然后还是启动不了。后来把openldap的loglevel设为-1,然后去看启动时的日志发现:“Client does not support authentication protocol”。在网上查了一下,说是mysql的版本从4.0升级到4.1以后用户密码算法方式改变了,由16位变长到41位了,导致连接时认证不成功,要么把客户端升级,要么把用户的密码用就的算法重新计算后修改了,如下:

SET PASSWORD FOR 'user'@'localhost' = OLD_PASSWORD('newpassword');

但问题是之前openldap都是好的,中间也并没有升级mysql之类的,所以我想可能跟这个并没有什么关系。但后来实在没有办法,死马当活马医,而且我们的mysql服务器是5.0以上的,客户端不知道什么版本。

  但后来试了一下后,居然成功了,it works!怎么回事?我后来猜想服务器的odbc客户端版本是的低的,同事电脑上的客户端是高版本的,中间同事在用授权的时候可能改动了用户原来的密码,将密码的格式改掉了。

发布了5 篇原创文章 · 获赞 0 · 访问量 2522
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章