Comment résoudre le problème d'erreur de workererman+tp5 ? Problème de rapport d'erreurs thinkphp5+workerman
Dans la première version de thinkphp5.0. La raison en est que la base de données est déconnectée en raison d'une connexion à long terme à la base de données.
Recommandé : "Tutoriel Workerman"
Solution :
1. Modifier la base de données Configurer. le fichier database.php et définissez le paramètre break_reconnect sur true. Déconnectez et reconnectez.
// 是否需要断线重连 'break_reconnect' => true,
2. Modifiez la fonction isBreak dans /library/think/db/Connection.php et remplacez-la par la dernière fonction isBreak ci-dessous.
/** * 是否断线 * @access protected * @param \PDOException|\Exception $e 异常对象 * @return bool */ protected function isBreak($e) { if (!$this->config['break_reconnect']) { return false; } $info = [ 'server has gone away', 'no connection to the server', 'Lost connection', 'is dead or not enabled', 'Error while sending', 'decryption failed or bad record mac', 'server closed the connection unexpectedly', 'SSL connection has been closed unexpectedly', 'Error writing data to the connection', 'Resource deadlock avoided', 'failed with errno', ]; $error = $e->getMessage(); foreach ($info as $msg) { if (false !== stripos($error, $msg)) { return true; } } return false; }
3. Supprimez ou commentez la fonction isBreak dans /library/think/db/connector/Mysql.php.
Après modification,workermansera connecté à la base de données pendant une longue période. Si la base de données est déconnectée, elle sera reconnectée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!