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`

阅读 6.3k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题