Heim  >  Artikel  >  PHP-Framework  >  So lösen Sie das Fehlerproblem von workerman+tp5

So lösen Sie das Fehlerproblem von workerman+tp5

藏色散人
藏色散人Original
2020-02-04 14:03:013281Durchsuche

So lösen Sie das Fehlerproblem von workerman+tp5

Wie kann das Fehlerproblem von workererman+tp5 gelöst werden? thinkphp5+workerman Fehlermeldeproblem

In der frühen Version von thinkphp5.0. Der Grund dafür ist, dass die Datenbank aufgrund einer langfristigen Verbindung zur Datenbank getrennt wird.

Empfohlen: „Workerman Tutorial

Lösung:

1. Ändern Sie die Datenbank Öffnen Sie die Datei „database.php“ und setzen Sie den Parameter „break_reconnect“ auf „true“. Trennen und erneut verbinden.

// 是否需要断线重连
'break_reconnect' => true,

2. Ändern Sie die isBreak-Funktion in /library/think/db/Connection.php und ersetzen Sie sie durch die neueste isBreak-Funktion unten.

  /**
     * 是否断线
     * @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. Löschen oder kommentieren Sie die isBreak-Funktion in /library/think/db/connector/Mysql.php.

Nach der Änderung ist workerman für längere Zeit mit der Datenbank verbunden. Wenn die Datenbank getrennt wird, wird sie erneut verbunden.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Fehlerproblem von workerman+tp5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn