Ich bekomme diese Warnung in MySQL,
[Warning] Aborted connection 21 to db: 'MyDB' user: 'MyUser' host: 'localhost' (Got an error reading communication packets)
Ich habe nur wenige Themen in Google durchlaufen und nach einem Vorschlag habe ich das max_allowed_packet
von 128 to 512 to 1024
immer noch gleichem Verhalten erhöht .
Ich bin mit Drupal 7, und ja es gibt viele Blob - Datentypen, aber 1024 Mb
die max_allowed_packet
sollte meiner Meinung nach genug sein.
Gibt es eine andere Problemumgehung, um diese Warnung zu überwinden?
BEARBEITEN:
Einige Einstellungen als @ Rolandos Vorschläge / Antwort hinzugefügt, ich erhalte immer noch die gleiche Warnung.
Meine MySQL-Konfiguration sieht folgendermaßen aus:
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1024M
table_open_cache = 128
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 192K
# Query cache disabled
thread_cache_size = 8
myisam-recover = BACKUP
max_connections = 100
thread_concurrency = 10
tmp_table_size = 128M
max_heap_table_size = 128M
log_error = /var/log/mysql/mysql-error.log
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_warnings = 2
server-id = 1
binlog-format = row
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
log_bin = mysql-bin
log-slave-updates
relay-log=mysqld-relay-bin
expire_logs_days = 10
max_binlog_size = 100M
innodb_data_home_dir = /var/db/mysql
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/db/mysql
innodb_buffer_pool_size = 8G
character-set-server = utf8
#innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 2047M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 8
innodb_lock_wait_timeout = 50
innodb_flush_method = O_DIRECT
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
default-character-set = utf8
[mysql]
default-character-set = utf8
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 32M
[mysqlhotcopy]
interactive-timeout
[mysqld_save]
syslog
Meine Anwendung verwendet nur InnoDB, aber es gibt nur wenige Datenbanken wie MySQL, die mit den Standard-MySQL-Installationen geliefert wurden. Sie verwenden nur den MyISAM-Engine-Typ. Ich denke, das sollte nicht mein Anliegen sein.
Wie Sie sehen, habe ich auch eine Replikation. Die Warnung ist auch auf dem replizierten Server dieselbe, dessen Konfiguration mit dieser identisch ist.
Antworten:
Ich bin froh, dass Sie gesagt haben, dass alle Ihre Daten InnoDB sind, sodass ich wie folgt antworten kann: Wenn max_allowed_packet bei 1G maximal ist und Sie immer noch Probleme haben, gibt es wirklich nur zwei Stellen, an denen Sie suchen müssen:
Ich habe vor ungefähr 2 Jahren etwas angesprochen
Aug 01, 2011
: Wie wirkt sich max_allowed_packet auf die Sicherung und Wiederherstellung einer Datenbank aus?Apr 20, 2011
: MySQL gibt beim Einfügen einer großen Datei den Fehler "Nicht genügend Speicher" aus. Woher kommt diese Dateigrößenbeschränkung?VORSCHLÄGE
Sie müssen die InnoDB-Transaktionsprotokolle erhöhen . Hier sind die Schritte zum sicheren Erhöhen von innodb_log_buffer_size und innodb_log_file_size :
Schritt 01: Fügen Sie diese hinzu
/etc/my.cnf
Schritt 02: Führen Sie dies in MySQL aus
Schritt 03: Herunterfahren von MySQL
Schritt 04: Verschieben Sie die alten Protokolle beiseite
Schritt 05: Starten Sie MySQL
Das ist es.
Die InnoDB-Infrastruktur sollte jetzt über genügend Protokollspeicherplatz für BLOBs unterschiedlicher Größe verfügen.
Versuche es !!!
quelle
mysql.cnf
Datei hinzuzufügen . Ich habe getan, was Sie vorgeschlagen haben, aber trotzdem die Warnungen erhalten. Ich kann sehen ,max_allowed_packet
inmysqldump
gerade ist ,16Mb
aber ich denke , das ist nicht die Ursache.key_buffer_size
ist nur16Kb
und wieder sollte es etwas seinMyISAM
und ich benutze keineMyISAM
Storage Engine in der Anwendung.Nachdem ich im Januar 16 den Kommentar von @ user19292 zu dieser alten Frage gelesen hatte, habe ich ein Upgrade von 5.7.9 auf 5.7.12 durchgeführt und das Problem ist behoben.
quelle