Laravel 抛出 Warning:Error while sending STMT_PREPARE packet 如何解决

Laravel 执行事件不定期抛出 ErrorException Warning: Error while sending STMT_PREPARE packet. PID=2711 问题如何解决?
项目使用队列处理的任务中,查询数据抛出异常,难道是数据库连接断了吗?

##### ErrorException

Warning: Error while sending STMT_PREPARE packet. PID=2711
-   `/app/Http/Repository/UserRepository.php` in `App\Http\Repository\UserRepository::getUser` at line `100`

public function getUser($name)
{
  $user = User::where('name', $name)->first();
  // ...
}

| name | test123 |

-   `/app/Jobs/DispatchSyncUserInfo.php` in `App\Jobs\DispatchSyncUserInfo::handle` at line `61`

-   Called from: 

    `[internal]` in `call_user_func_array`

-   `/artisan` at line `37`

阅读 827
评论
    1 个回答
    • 10.6k

    Error while sending STMT_PREPARE packet on queued jobs

    上面这个回答中,建议的解决方法是加入数据库重连 😂

    但是,又因为 Laravel 貌似会处理这个异常自动调用数据库重连,所以在下面这里给出的一个解决方案就是不报告这个异常😂。

    ErrorException: Warning: Error while sending STMT_PREPARE packet · Issue #28920 · laravel/framework

    Laravel 6.7 中在这个位置

    • vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php:25

    图片.png

    所以 so the best solution is to discard error in handler?
    图片.png

      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章