怎么连接使用了LDAP认证的MySQL服务器_插件兼容与配置

落瑶小哥_2285

落瑶小哥_2285

2026-04-20

160人浏览

原创

mysql 8.0+ ldap认证需启用authentication_ldap_sasl插件,用户须显式创建并绑定dn,客户端连接需指定--default-auth,权限需单独授予,且jdbc需配置allowpublickeyretrieval=true。

mysql 8.0+ 连接 ldap 认证服务器时 mysql_native_password 插件不生效

ldap 认证依赖 authentication_ldap_sasl 插件,不是传统密码插件。如果客户端仍用 mysql -u user -p 尝试走本地密码验证,会直接报 access denied for user,哪怕 ldap 账号本身是有效的。

实操建议:

  • 确认服务端已加载插件:INSTALL PLUGIN authentication_ldap_sasl SONAME 'authentication_ldap_sasl.so'(Linux)或 .dll(Windows)
  • 用户必须显式绑定 LDAP 认证方式:CREATE USER 'alice'@'%' IDENTIFIED WITH authentication_ldap_sasl BY 'uid=alice,ou=people,dc=example,dc=com'
  • 客户端连接时不能省略 --plugin-dir 和 --default-auth 参数,否则默认用 mysql_native_password 插件协商,必然失败

MySQL 客户端连接 LDAP 时提示 Plugin 'authentication_ldap_sasl' is not loaded

这个错误不是客户端问题,而是服务端插件没启用或路径不对。客户端只是把服务端返回的认证要求转达给你,它自己不加载插件。

实操建议:

  • 检查服务端插件状态:SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'authentication_ldap_sasl',必须为 ACTIVE
  • plugin_dir 配置需指向真实插件路径,例如 Linux 下通常是 /usr/lib/mysql/plugin/,但 Docker 官方镜像默认不包含该插件,需手动挂载或构建镜像
  • 某些发行版 MySQL(如 Percona Server)可能用 authentication_ldap_simple 替代,函数名和配置项不兼容,不能混用

Java 应用用 JDBC 连接 LDAP 认证 MySQL 报 Public Key Retrieval is not allowed

这不是 LDAP 相关错误,而是 JDBC 驱动在开启 SSL 或使用 SHA256 密码交换时的默认保护机制。LDAP 认证流程中,MySQL 服务端可能触发公钥交换阶段,而驱动默认禁用该行为。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载

实操建议:

  • 连接 URL 必须显式加参数:?allowPublicKeyRetrieval=true&useSSL=false(测试环境),生产环境应配好 TLS 证书并设 useSSL=true
  • 驱动版本很重要:MySQL Connector/J 8.0.28+ 对 SASL 认证支持更稳,旧版(如 5.1.x)根本不识别 authentication_ldap_sasl
  • 如果用 HikariCP 等连接池,dataSource.setConnectionInitSql("SET @dummy = 0") 不能绕过认证握手,无效

LDAP 用户登录成功但执行 SQL 报 Access denied for table

LDAP 只管身份认证,不自动赋予权限。用户通过 DN 登录后,仍是空权限状态,和本地用户一样需要显式授权。

实操建议:

  • 权限授予必须用完整用户名+主机:GRANT SELECT ON mydb.* TO 'alice'@'%',注意这里不是 LDAP DN 字符串,而是 CREATE USER 时定义的用户名
  • 不要混淆 IDENTIFIED WITH 的值和授权对象名 —— 前者是认证凭据(如 DN),后者是 MySQL 内部标识符
  • 若用通配符主机(如 '%'),确保 skip_name_resolve = OFF,否则反向 DNS 查找失败可能导致权限匹配异常

LDAP 认证的麻烦点不在连接本身,而在服务端插件加载、客户端协议协商、权限模型这三者的错位。最容易被忽略的是:你以为连上了,其实只是认证握手卡在中间某步,日志里却只显示“Access denied”——这时候得翻 mysqld.err,而不是重试密码。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2832

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

956

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

849

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

434

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2556

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4752

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

767

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 183人学习