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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章