【发布时间】:2021-02-17 00:22:51
【问题描述】:
突然得到
SQLSTATE[HY000]: 一般错误: 1835 Malformed communication packet (SQL: select * from
tb_userswhere (username= 121211) limit 1)
在 Laravel 上。
我已经检查过这个:MySQL: ERROR 2027 (HY000): Malformed packet,但情况似乎不同。
- 之前使用 SSH 登录(使用:mysql -u -p)后,我已成功登录 MySQL。
- 我已成功从远程 PC 直接登录 MySQL(使用:mysql -h [IP] -u -p)。
但是我的 Laravel 遇到了我之前提到的错误。有这方面的经验吗?
【问题讨论】:
-
更新你的客户端和库,好像有些过时了?您在服务器和客户端上使用什么版本?
-
@CraigJacobs 我也认为 MariaDB,但 OP 没有共享任何版本信息。有人可以尝试在他们的 JIRA 上打开问题吗,我不会在 github 之外打开错误票。
-
我也遇到了 MariaDB 10.3 版的问题。今天早上醒来。下面的解决方法将响应中的整数更改为字符串。这不是一个解决方案。
-
附加信息:从 PHP 7.2 切换到 PHP 7.3 似乎可以缓解我服务器上的错误。但是,此更改可能会引入其他问题。
-
确认,这是昨天发布的以下所有 MariaDB 版本中的一个错误:10.1.48、10.2.35、10.3.26、10.4.16、10.5.7 已开立一个案例: jira.mariadb.org/browse/MDEV-24121 和我提供了一个可重现的 POC。当
Emulate Prepares设置为 false(在 Laravel 中默认设置)并且PDO::ERRMODE_EXCEPTION设置在一起时,会出现此问题。 (在 Laravel 中也是默认设置) - 正确的解决方法是回滚并锁定以前的版本,直到修复发布。
标签: mysql laravel mariadb mariadb-10.3