MySQL 连接与认证插件排障
MySQL 连接失败
按网络、监听端口、账号认证的顺序定位错误。下列命令显式指定 TCP;Unix 上 localhost 默认可能走 socket,单写 -P 不能保证测试该端口。<host>、<user> 是需要替换的占位符。
先确认客户端所在主机、目标地址和端口。使用 -p 让客户端交互式询问密码,不要把密码放在命令行参数里。
排查步骤
1. 测试服务器是否响应
mysqladmin --protocol=TCP -h <host> -P 3306 -u <user> -p ping预期结果: 收到服务器响应;即使认证失败,也可区分网络与认证路径。
2. 获取准确的连接错误
mysql --protocol=TCP -h <host> -P 3306 -u <user> -p预期结果: 记录错误代码和目标地址,确认连接走 TCP 而非意外的本地 socket。
3. 连接成功后确认身份和服务器
mysql --protocol=TCP -h <host> -P 3306 -u <user> -p -e "SELECT CURRENT_USER(), @@hostname;"预期结果: 输出账号和服务器名与预期一致,避免连到错误实例。
常见报错
ERROR 2003 / connection refused
原因: 目标端口没有可达监听服务,或网络策略阻断。
处理方式: 检查主机名、端口、服务监听地址与防火墙;不要先修改账号。
ERROR 1045 access denied
原因: 用户名、密码或来源主机授权不匹配。
处理方式: 核对账号及其允许的来源主机,按最小权限修正凭据或授权。
相关文档
官方资料
MySQL 认证插件连接故障
M4版本边界(2026-10-17): 下方是旧客户端2059错误的原始处理记录,包含旧认证插件命令及sqlALTER拼写问题,不是8.4可直接执行的解法。MySQL8.4默认禁用mysql_native_password;应先升级兼容caching_sha2_password的客户端/驱动。现行连接认证排查提供分层步骤,保留原记录仅供追溯。
此记录针对旧客户端不支持 caching_sha2_password 的情形。下方改认证插件是当时的处理记录;应先核对客户端与服务端版本,避免直接套用到当前环境。
连接失败
2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
mysql -uroot -ppassword#登录use mysql;#选择数据库远程连接请将
'localhost'换成'%'sqlsqlALTER USER 'root'@'localhost' IDENTIFIED BY 'example-user' PASSWORD EXPIRE NEVER; #更改加密方式 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'example-user'; #更新用户密码 FLUSH PRIVILEGES; #刷新权限ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
继续阅读
- 知识专题
- 知识专题
- 知识专题