You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Telnet连接MySQL 8.0出现乱码,输入密码即终止通信求助

解决MySQL 8.0 telnet连接乱码及认证终止问题

关于telnet连接出现乱码的说明

telnet连接MySQL 3306端口后显示乱码是正常现象,因为MySQL的通信协议并非纯文本格式,握手阶段传输的是二进制数据,telnet作为纯文本终端无法解析这些二进制内容,所以会显示乱码,这不是连接故障。

输入密码后连接终止的原因

MySQL 8.0默认采用caching_sha2_password认证插件,该插件的认证流程需要复杂的加密交互,而telnet是纯文本输入工具,无法完成该插件要求的认证步骤,因此输入密码后连接会直接终止。你能通过Python连接成功,是因为Python的MySQL客户端库(如mysql-connector-python)已经实现了对caching_sha2_password插件的支持。

可行的解决方案

  • 使用官方MySQL客户端工具(推荐):
    直接使用MySQL自带的客户端命令行工具连接,这是最可靠的方式:

    mysql -h [你的IP] -u root -p
    

    输入密码后即可正常进入数据库交互界面。

  • 查看MySQL握手包(仅用于测试):
    如果只是想测试端口连通性或查看握手信息,可以用nc(netcat)替代telnet,它能更清晰地显示二进制握手数据:

    nc [你的IP] 3306
    
  • 临时切换认证插件(不推荐生产环境):
    若一定要用telnet类工具尝试认证,可以将用户的认证插件临时改为旧版的mysql_native_password(该插件支持简单的文本密码交互):

    ALTER USER 'root'@'[你的IP]' IDENTIFIED WITH mysql_native_password BY '你的密码';
    FLUSH PRIVILEGES;
    

    注意:此方式会降低认证安全性,仅适合测试场景,生产环境不建议使用。

内容的提问来源于stack exchange,提问作者fatbee7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:36:00