Der Server hat wahrscheinlich ein falsches oder zu großes Paket verworfen. Wenn mysqld ein zu großes oder falsches Paket erhält, wird davon ausgegangen, dass beim Client ein Fehler aufgetreten ist, und die Verbindung wird getrennt. Um dies zu beheben, müssen Sie die maximale Paketgrößenbegrenzung max_allowed_packet
in der Datei my.cnf erhöhen und anschließend den MySQL-Server neu starten: (/etc/init.d/mysql restart).
Das Owncloud-Upgrade schlägt mit dem MySQL-Timeout fehl
Ich habe gerade ein Upgrade auf eine neue Owncloud-Version durchgeführt. Nach der Installation des .deb-Pakets bin ich gestartet
sudo -u www-data php /var/www/owncloud/occ upgrade
was gab mir:
oc_appconfig 1/24 [=>--------------------------] 4%Doctrine\DBAL\Exception\DriverException: An exception occurred while executing 'SET unique_checks=1': SQLSTATE[HY000]: General error: 2006 MySQL server has gone away Update failed
Eine Online-Recherche ergab, dass es sich möglicherweise um ein MySQL-Timeout-Problem handelt. Daher habe ich /etc/mysql/my.cnf
Folgendes mit folgendem Inhalt erstellt:
[mysqld] interactive_timeout=86400 wait_timeout=86400 max_allowed_packet=521M
Dann habe ich MySQL neu gestartet und es erneut versucht - ohne Erfolg. Meistens scheitert Schritt 1; manchmal komme ich bis zu schritt 3 (immer mit dem gleichen SQL-Befehl aus).
OS ist Raspbian und läuft auf einem Raspberry Pi 3.
Was wird dieses Problem beheben?
2 Antworten auf die Frage
The error message
SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
can mean a couple of things: Often it refers to a timeout, which can be rectified by increasing the timeout values (default is 8 hours), or indicates that the allowed packet size was exceeded, which can be corrected by increasing max_allowed_packet
. It also occurs when the MySQL server crashes in the middle of the operation, so check for that when the first two options provide no relief.
After some more research, I consulted the MySQL log. There was an empty file named/var/log/mysql.err
, as well as some files which indicate log rotation.
Running ps -ef | grep mysql
then gave me the full command line for the MySQL process, with a parameter for the log file, which turned out to be /var/lib/mysql/<hostname>.err
.
Examining this file revealed that MySQL kept crashing due to data corruption, probably affecting the oc_filecache
table. This explains why the update failed—how to recover from the corruption will be a separate question. The string displayed by occ above the progress bar seems to be the table which was being processed when the error occurred (if that is unclear from the MySQL logs, where one needs to look close to find the table).
Verwandte Probleme
-
3
OpenX: mySql VS PostgreSQL
-
4
Wie kann ich eine MySQL-Datenbank am besten in eine Zugangsdatenbank konvertieren?
-
6
Wie kann ich verhindern, dass Dienste beim Booten unter Ubuntu gestartet werden?
-
2
Wie kann ich meine Datenbank wiederherstellen?
-
6
Ist MySQL standardmäßig mit OS X Leopard 10.5 oder 10.6 installiert?
-
4
Warum wirft PHP nach "mysql_connect" oder bei "mysql_close" "Segmentation fault (11)"?
-
3
Verbindungsproblem zu MySQL auf einem anderen Rechner im LAN
-
3
Hilfe beim Einrichten von MySQL (zur Verwendung mit PHP und Apache) unter OS X
-
10
MySQL startet nicht!
-
1
Mac-Webserver, MySQL-Sicherheit