Error number: MY-011756; Symbol: ER_LDAP_AUTH_INFO_FOR_USER; SQLSTATE: HY000
Message: User is authenticated as: %s external user: %s
错误说明
MySQL错误号MY-011756最常出现的错误信息为:ER_LDAP_AUTH_INFO_FOR_USER:无法为用户’%s’提供LDAP认证信息。该错误是属于MySQL数据库连接错误,服务器出现此错误提示表示MySQL无法提供有效的LDAP认证信息。 LDAP的全称是Lightweight Directory Access Protocol,是一种目录服务协议。该协议通常用于从活动目录服务器获取用户登录信息,以决定用户是否具备访问服务器资源的访问权限。
常见案例
由于在MySQL中编写了语句使用LDAP认证信息,如果LDAP认证信息不被MySQL认可,则会出现ER_LDAP_AUTH_INFO_FOR_USER错误。
解决方法
此错误的正确解决方法要根据特定环境而不同,需要分析出LDAP认证信息提供给MySQL的格式和内容。
1. 检查LDAP认证信息的格式。MySQL要求用户的LDAP认证信息格式为’ldap_url|[dn|user]|password’,即以竖线分隔的三个字段,长度不超过256个字符,其中第一个字段为LDAP服务器URL,第二个字段为LDAP认证用户的DN或者用户名,第三个字段为认证用户的密码。如果LDAP认证用户为DN,则第二个字段前面必须加上一个string字符’dn’,例如’ldap_url|dn|user|password’。
2. 检查LDAP认证信息的内容。此时,可以考虑使用ldapsearch命令行工具来验证认证信息是否正确。如果检查有误,需要修改错误并重新执行MySQL语句。
3. 若以上方法仍然无法解决,可能是MySQL没有完整的LDAP编译支持。可以来检查 mysql -V 命令的输出信息中的 –with-ldap 选项,如果未显示此选项,表明MySQL已编译时未激活LDAP支持,可以考虑重新编译MySQL,并激活 –with-ldap 选项来解决。若激活该选项无法有效解决,可以再检查系统上是否已正确配置并安装了 openldap-client 客户端程序,此程序是提供LDAP客户端支持的重要工具。
本文提供了一些有助于解决ER_LDAP_AUTH_INFO_FOR_USER错误的有用技术介绍,以期帮助MySQL用户定位,分析及有效解决此类连接错误。