it-swarm.com.de

MySQL: Verbindung abgebrochen ... / ... (Fehler beim Lesen der Kommunikationspakete)

Diese Fehlermeldung wurde in diesem Forum mehrfach übermittelt.

Ich habe folgendes ohne Erfolg versucht.

Kontext

Dies ist eine Symfony1/Doctrine1-Webanwendung. Der Fehler wird auf meinem Computer und auf einem Serveur (beide unter Ubuntu) angezeigt. Auf Browserebene (Chrome) habe ich eine Fehlermeldung erhalten:

POST http://*****/administration_dev.php/utilisateur net::ERR_EMPTY_RESPONSE

(enter image description here

Hier sind meine Computerdetails:

$ uname -a
Linux Bureau 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
$ dpkg -l |grep php
ii  libapache2-mod-php                          1:7.0+35ubuntu6                                             all          server-side, HTML-embedded scripting language (Apache 2 module) (default)
ii  libapache2-mod-php7.0                       7.0.4-7ubuntu2.1                                            AMD64        server-side, HTML-embedded scripting language (Apache 2 module)
ii  php                                         1:7.0+35ubuntu6                                             all          server-side, HTML-embedded scripting language (default)
.../...
$ dpkg -l |grep mysql-
ii  mysql-client-5.7                            5.7.13-0ubuntu0.16.04.2                                     AMD64        MySQL database client binaries
ii  mysql-client-core-5.7                       5.7.13-0ubuntu0.16.04.2                                     AMD64        MySQL database core client binaries
ii  mysql-common                                5.7.13-0ubuntu0.16.04.2                                     all          MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-server                                5.7.13-0ubuntu0.16.04.2                                     all          MySQL database server (metapackage depending on the latest version)
ii  mysql-server-5.7                            5.7.13-0ubuntu0.16.04.2                                     AMD64        MySQL database server binaries and system database setup
ii  mysql-server-core-5.7                       5.7.13-0ubuntu0.16.04.2                                     AMD64        MySQL database server binaries

Der Fehler wird angezeigt, wenn ich versuche, während des Speichervorgangs einen neuen Benutzer zu erstellen.

Vorschlag versucht

# 1 MySQL-Fehler beim Lesen von Kommunikationspaketen

$ mysql -uroot -p -e "SET GLOBAL max_allowed_packet = 1024 * 1024 * 1024;"
Enter password: 
$ mysql -uroot -p -e "SHOW VARIABLES LIKE 'max_allowed_packet';"
Enter password: 
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
$ tail -f -n0 /var/log/mysql/error.log
2016-07-24T19:41:32.736817Z 23 [Note] Aborted connection 23 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:32.906433Z 24 [Note] Aborted connection 24 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.056226Z 25 [Note] Aborted connection 25 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.212496Z 26 [Note] Aborted connection 26 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.363754Z 27 [Note] Aborted connection 27 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.516194Z 28 [Note] Aborted connection 28 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.668201Z 29 [Note] Aborted connection 29 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)

# 2 MySQL: Fehler beim Lesen der Kommunikationspakete

$ cat /etc/mysql/conf.d/david.cnf 
[mysqld]
sql-mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet = 256M
innodb_log_buffer_size = 32M
innodb_log_file_size = 2047M
$ mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0;"
$ Sudo service mysql stop
$ Sudo mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
$ Sudo mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
$ Sudo service mysql start
$ tail -f -n0 /var/log/mysql/error.log
2016-07-24T19:56:02.342912Z 7 [Note] Aborted connection 7 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.494024Z 8 [Note] Aborted connection 8 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.642960Z 9 [Note] Aborted connection 9 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.787908Z 10 [Note] Aborted connection 10 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.933718Z 11 [Note] Aborted connection 11 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:03.084066Z 12 [Note] Aborted connection 12 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:03.235319Z 13 [Note] Aborted connection 13 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)

Mir gehen die Ideen und Vorschläge aus und ich rufe hier um Hilfe.

Vielen Dank für Ihre Unterstützung, ich werde Ihnen weitere Informationen geben, wenn Sie brauchen.

David.

3
David

Die Lösung war im Code. Es scheint, dass eine PHP - Ausnahme nicht behandelt wurde und die Anwendung abstürzte, bevor eine geöffnete SQL-Transaktion geschlossen wurde.

Die MySQL-Fehlermeldung kann ihren Ursprung in diesem unangenehmen Zustand haben, mehr kann ich nicht sagen.

Rolando, danke für deine Zeit.

0
David

Sie führen MySQL 5.7 mit PHP auf dem einen Server) aus. Dies zeigt mir, dass Ihr Server nicht für MySQL reserviert ist. PHP und MySQL konkurrieren offensichtlich um RAM .

Ich sehe auch keinen Versuch, die Größe des InnoDB-Pufferpools festzulegen. Der Standardwert für innodb_buffer_pool_size ist 128M (134217728).

Bitte beachten Sie etwas über max_allowed_packet . Wie der Variablenname andeutet, dies ist die maximal zulässige Größe für ein MySQL-Paket . Laut der MySQL-Dokumentation startet das MySQL-Paket nicht als 1G. Seine anfängliche Größe basiert auf dem Wert von net_buffer_length . Das MySQL-Paket wird dann nach Bedarf dynamisch auf max_allowed_packet erweitert.

Ihre Versuche, das MySQL-Paket zu optimieren, werden durch einen Mangel an RAM zunichte gemacht.

VORSCHLAG # 1

  • Installieren Sie PHP auf einem anderen Server, der ein dedizierter Webserver sein kann.
  • Erhöhen Sie die Anzahl von RAM auf dem DB Server

VORSCHLAG # 2

Wenn Sie sich keinen anderen Server leisten können, erhöhen Sie einfach RAM und die Größe des Pufferpools).

VORSCHLAG 3 (OPTIONAL)

Da Sie MySQL 5.7 verwenden, können Sie den Pufferpool dynamisch erweitern.

Gehen Sie wie folgt vor, um 2 GB einzustellen:

mysql> SET GLOBAL innodb_buffer_pool_size = 1024 * 1024 * 1024 * 2;
0
RolandoMySQLDBA