Abaixo está o extrato das linhas de erro mais comuns registradas em logs de erro no meu PC:
110905 16:16:54 [Note] Plugin 'FEDERATED' is disabled.
110905 16:16:54 InnoDB: The InnoDB memory heap is disabled
110905 16:16:54 InnoDB: Mutexes and rw_locks use Windows interlocked functions
110905 16:16:54 InnoDB: Compressed tables use zlib 1.2.3
110905 16:16:55 InnoDB: Initializing buffer pool, size = 500.0M
110905 16:16:55 InnoDB: Completed initialization of buffer pool
110905 16:16:55 InnoDB: highest supported file format is Barracuda.
110905 16:16:57 InnoDB: Waiting for the background threads to start
110905 16:16:58 InnoDB: 1.1.8 started; log sequence number 14539513
110905 16:16:59 [Note] Event Scheduler: Loaded 0 events
110905 16:16:59 [Note] C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld: ready for connections.
Version: '5.5.15-log' socket: '' port: 3306 MySQL Community Server (GPL)
110905 16:46:29 [Warning] Aborted connection 1 to db: 'stockist' user: 'root' host: 'localhost' (Got an error reading communication packets)
110905 16:50:42 [Warning] Aborted connection 2 to db: 'dummy_db' user: 'root' host: 'localhost' (Got an error reading communication packets)
Como corrigir esses problemas? Estou usando o MySQL Community Server 5.5.14. Ele é instalado em um PC com 3 GB de RAM na partição NTFS. SO é Windowx XP SP2.
Abaixo está o my.ini
arquivo:
# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# CLIENT SECTION
[client]
port=3306
[mysql]
default-character-set=latin1
# SERVER SECTION
[mysqld]
log-bin=E:/CRITICAL_MYSQL_LOGGING/AUTOMATED_BINARY_LOGS/MySqlBinLog
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
#Path to the database root
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=latin1
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# The maximum amount of concurrent sessions the MySQL server will
# allow.
max_connections=02
# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again.
query_cache_size=15M
# The number of open tables for all threads.
table_cache=256
# Maximum size for internal (in-memory) temporary tables.
tmp_table_size=9M
# How many threads we should keep in a cache for reuse. When a client
# disconnects
thread_cache_size=8
#*** INNODB Specific options ***
innodb_additional_mem_pool_size=20M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=500M
innodb_log_file_size=10M
innodb_thread_concurrency=8
log-queries-not-using-indexes
log-warnings
log=E:/CRITICAL_MYSQL_LOGGING/QUERY_LOGS/QueryLog
log-error=E:/CRITICAL_MYSQL_LOGGING/ERROR_LOGS/ErrorLog
log-slow-queries=E:/CRITICAL_MYSQL_LOGGING/SLOW_QUERY_LOGS/SlowQueryLog
log-bin-index=E:/CRITICAL_MYSQL_LOGGING/BinLogIndexFile
long_query_time=2
Um dos assassinos silenciosos do MySQL Connections é o MySQL Packet.
De acordo com a documentação do MySQL
Você também pode obter esses erros se enviar uma consulta incorreta ou muito grande ao servidor. Se o mysqld receber um pacote muito grande ou fora de ordem, ele assume que algo está errado com o cliente e fecha a conexão. Se você precisar de grandes consultas (por exemplo, se estiver trabalhando com grandes colunas BLOB), poderá aumentar o limite de consulta definindo a variável max_allowed_packet do servidor, que tem um valor padrão de 1 MB. Você também pode precisar aumentar o tamanho máximo do pacote no lado do cliente. Mais informações sobre como definir o tamanho do pacote são fornecidas na Seção C.5.2.10, “Pacote muito grande”.
Uma instrução INSERT ou REPLACE que insere muitas linhas também pode causar esses tipos de erros. Qualquer uma dessas instruções envia uma única solicitação ao servidor, independentemente do número de linhas a serem inseridas; portanto, muitas vezes você pode evitar o erro reduzindo o número de linhas enviadas por INSERT ou REPLACE.
RECOMENDAÇÃO
Tente aumentar o max_allowed_packet para um número muito maior, já que o padrão é 1M. Eu sugeriria cerca de 10 vezes o maior campo TEXT ou BLOB que você possui em seu conjunto de dados atual.
Você pode adicioná-lo a /etc/my.cnf ou my.ini