Je reçois cet avertissement dans mysql,
[Warning] Aborted connection 21 to db: 'MyDB' user: 'MyUser' host: 'localhost' (Got an error reading communication packets)
J'ai parcouru quelques sujets dans google et selon certaines suggestions, j'ai augmenté le max_allowed_packet
de 128 to 512 to 1024
toujours le même comportement.
J'utilise Drupal 7, et oui il y a beaucoup de types de données blob, mais 1024 Mb
de max_allowed_packet
devrait être suffisant à mon avis.
Une autre solution de contournement pour surmonter cet avertissement?
ÉDITER:
Ajout de certains paramètres comme suggestions / réponse de @ Rolando, je reçois toujours le même avertissement.
Ma configuration mysql ressemble à ceci:
[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
Mon application utilise uniquement InnoDB, mais il y a peu de bases de données comme mysql, qui sont livrées avec les installations standard de mysql sont seulement celles qui utilisent le type de moteur MyISAM, je suppose que cela ne devrait pas être mon souci cependant.
Comme vous pouvez le voir, j'ai également une réplication, l'avertissement est le même sur le serveur répliqué également, dont la configuration est identique à celle-ci.
Réponses:
Je suis heureux que vous ayez dit que toutes vos données sont InnoDB, je peux donc répondre comme suit: si max_allowed_packet est au maximum à 1G et que vous rencontrez toujours des problèmes, il n'y a vraiment que deux endroits à regarder:
J'ai abordé quelque chose comme il y a environ 2 ans
Aug 01, 2011
: Comment max_allowed_packet affecte-t-il la sauvegarde et la restauration d'une base de données?Apr 20, 2011
: MySQL donne une erreur "Mémoire insuffisante" lors de l'insertion d'un gros fichier. D'où vient cette limitation de taille de fichier?SUGGESTIONS
Vous devez augmenter les journaux de transactions InnoDB . Voici les étapes pour augmenter en toute sécurité innodb_log_buffer_size et innodb_log_file_size :
Étape 01: ajoutez-les à
/etc/my.cnf
Étape 02: exécutez cela dans mysql
Étape 03: Arrêtez mysql
Étape 04: Écarter les anciens journaux
Étape 05: démarrez mysql
C'est ça.
L'infrastructure InnoDB devrait maintenant avoir suffisamment d'espace de journalisation pour les BLOB de différentes tailles.
Essaie !!!
la source
mysql.cnf
fichier. J'ai fait ce que vous aviez suggéré, mais j'ai quand même reçu les avertissements. Je peux voirmax_allowed_packet
dansmysqldump
est juste ,16Mb
mais je suppose que ce n'est pas la cause.key_buffer_size
est juste16Kb
et encore ça devrait être quelque chose avecMyISAM
et je n'utilise pasMyISAM
de moteur de stockage dans l'application.Après avoir lu le commentaire de @ user19292 en janvier '16 sur cette ancienne question, j'ai mis à jour de 5.7.9 à 5.7.12 et le problème a disparu.
la source
Je viens de passer environ 5-6 heures à changer les options et à essayer différentes versions de MySQL, j'ai toujours eu l'erreur.
Je pense que c'est de l'eider parce que:
mysql_close()
ou équivalent.la source