Mysql 查询字符串太长

Mysql 查询字符串太长

我遇到了两个虚拟机之间发生的奇怪的 mysql 行为。

当我的查询字符串长度超过 1457 个字符时,我使用的连接就会挂起。
我原本以为问题出在查询结果过多,但后来发现查询字符串并不重要。

例如:

select * from users where uname = "abcdefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffpooooooooooppppppppfooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooffffffseroieeeeuuwwwwwwwwwwwuii";

使服务器挂起。

如果我从该字符串中删除一个字符,mysql 将返回一个空的记录集,正如预期的那样。没有这样的用户,并且字段 uname 是 varchar(64)。该表仅包含一条记录。

我尝试监视套接字,发现查询字符串被重新传输了 20 次,然后流量停止,但客户端没有退出,连接也没有断开/关闭。cd

192.168.0.111:43012 -> 192.168.0.112:mysql
    ...
    bytes_sent:22614
    bytes_retrans:20260
    bytes_acked:329
    bytes_received:8208
    segs_out:28
    segs_in:10
    data_segs_out:18
    data_segs_in:8
    ...

从不同实例对同一服务器进行的相同查询运行正常。我尝试了官方 mysql 终端客户端、替代终端客户端和脚本,但得到了相同的结果。

相关内容