環境以下:mysql
郵件系統原來的mysql server版本是3.23。算法
如今使用了mysql server 5.0.7版本,並且單獨部署到了一臺服務器上。sql
使用郵件的認證程序udd去訪問遠程的mysql server 5.0.7。服務器
出現下面的報錯:ide
Sep 20 15:10:53 2016 PID=16613 TID=4151281344 : mysql_client.c db_mysql_init()(68) mysql_real_connect failed: host=172.18.131.14|port=33060, Error: Client does not support authentication protocol requested by server; consider upgrading MySQL client函數
分析緣由:是mysql server 5.0.7版本的password算法和mysql server 3.23的不一致,致使郵件認證程序udd使用原來的認證算法失敗。測試
解決辦法:在修改新版mysql server 5.0.7中使用old_password();函數來從新生成密碼,這樣使用舊版mysql口令訪問的程序udd就能夠正常訪問了。server
mysql>SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('newpassword');部署
mysql> flush priviledges; it
重啓mysqld服務,從新測試郵件的udd程序能夠正常訪問了。