MySQL max_allowed_packet maior que 1024 MB

2

Eu tenho um DB que é maior que 1 GB (~ 1,4 GB). O upload do DB foi interrompido em 1 GB, porque max_allowed_packet é 1073741824 (1 GB). No arquivo /etc/my.conf eu configuro max_allowed_packet = 2048M.

Como posso aumentar max_allowed_packet 1073741824 para maior?

Obrigado!

    
por Nauris 27.12.2011 / 18:08

1 resposta

5

Notícia ruim

O valor máximo para max_allowed_packet é 1G ou 1024M.

Mesmo que você o configure mais alto, o MySQL não carregará dados além do limite de 1GB.

Boas notícias

O pacote MySQL é para processamento de linhas, especialmente em massa. Quanto menores os campos TEXT / BLOB que você tem em suas tabelas, mais robusto o MySQL Packet será usado. Para que você possa ter mais confiança em seu uso, aqui está uma explicação sobre o que é um pacote MySQL:

De acordo com a página 99 de "Entendendo os Internos do MySQL "(ISBN 0-596-00957-7) , aqui estão os parágrafos 1-3 explicando-o:

MySQL network communication code was written under the assumption that queries are always reasonably short, and therefore can be sent to and processed by the server in one chunk, which is called a packet in MySQL terminology. The server allocates the memory for a temporary buffer to store the packet, and it requests enough to fit it entirely. This architecture requires a precaution to avoid having the server run out of memory---a cap on the size of the packet, which this option accomplishes.

The code of interest in relation to this option is found in sql/net_serv.cc. Take a look at my_net_read(), then follow the call to my_real_read() and pay particular attention to net_realloc().

This variable also limits the length of a result of many string functons. See sql/field.cc and sql/intem_strfunc.cc for details.

    
por 27.12.2011 / 18:47

Tags