Eu recebo este aviso no mysql,
[Warning] Aborted connection 21 to db: 'MyDB' user: 'MyUser' host: 'localhost' (Got an error reading communication packets)
Passei por alguns tópicos no google e, de acordo com algumas sugestões, aumentei o max_allowed_packet
de 128 to 512 to 1024
ainda o mesmo comportamento.
Eu estou usando Drupal 7, e sim, existem muitos tipos de dados blob, mas 1024 Mb
de max_allowed_packet
deve ser suficiente na minha opinião.
Alguma outra solução alternativa para superar esse aviso?
EDITAR:
Adicionadas algumas configurações como as sugestões / respostas de @ Rolando, ainda recebo o mesmo aviso.
Minha configuração do mysql fica assim:
[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
Meu aplicativo usa apenas o InnoDB, mas existem poucos bancos de dados como o mysql, que vieram com as instalações padrão do mysql, são apenas os que usam o tipo de mecanismo MyISAM, acho que isso não deveria ser minha preocupação.
Como você pode ver, também tenho replicação, o aviso também é o mesmo no servidor replicado, cuja configuração é idêntica a esta.
Respostas:
Fico feliz que você tenha dito que todos os seus dados são do InnoDB para que eu possa responder da seguinte forma: Se max_allowed_packet estiver no limite de 1G e você ainda estiver com problemas, existem apenas dois lugares para procurar:
Abordei algo como cerca de 2 anos atrás
Aug 01, 2011
: Como max_allowed_packet afeta o backup e a restauração de um banco de dados?Apr 20, 2011
: O MySQL fornece o erro "Memória insuficiente" ao inserir um arquivo grande. De onde está essa limitação de tamanho de arquivo?SUGESTÕES
Você precisa aumentar os logs de transações do InnoDB . Aqui estão as etapas para aumentar com segurança innodb_log_buffer_size e innodb_log_file_size :
Etapa 01: adicione-os ao
/etc/my.cnf
Etapa 02: Execute isso no mysql
Etapa 03: Desligar o mysql
Etapa 04: Afaste os logs antigos
Etapa 05: Inicie o mysql
É isso aí.
A infraestrutura do InnoDB agora deve ter espaço de log suficiente para BLOBs de tamanhos diferentes.
De uma chance !!!
fonte
mysql.cnf
arquivo. Fiz o que você sugeriu, mas ainda recebo os avisos. Eu posso vermax_allowed_packet
nosmysqldump
é apenas16Mb
mas eu acho que não é a causa.key_buffer_size
é apenas uma16Kb
vez mais deve ser algo comMyISAM
e não estou usandoMyISAM
o mecanismo de armazenamento no aplicativo.Depois de ler o comentário de @ user19292 em Jan '16 sobre essa pergunta antiga, atualizei de 5.7.9 para 5.7.12 e o problema desapareceu.
fonte
Passei cerca de 5 a 6 horas alterando as opções e tentando diferentes versões do MySQL, sempre obtive o erro.
Eu acho que é estranho porque:
mysql_close()
ou equivalente.fonte