2016-01-01 119 views
3

MySQL丟棄的斷開的管道和MySQL服務器消失了錯誤。我的數據庫表中包含文本字段,我每隔1小時定期插入一次大型HTML。錯誤:斷開的管道/ MySQL服務器已經消失

我應該考慮設置哪個MySQL變量。

這是當前配置:

[mysqld] 
datadir=/home/monk/mysql 
socket=/home/monk/mysql/mysql.sock 
user=mysql 
default_time_zone='+06:00' 
innodb_buffer_pool_size=35G 
innodb_buffer_pool_instances=15 
query_cache_type=ON 
query_cache_size=64M 
join_buffer_size=524288 
tmp_table_size=32M 
max_heap_table_size=32M 


# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 
max_allowed_packet=1G 
# Recommended in standard MySQL setup 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

wait_timeout = 2000 
interactive_timeout = 2000 



#bind-address=127.0.0.1 
##skip-networking~ 
+0

有趣的是,我有一個類似的問題,並設置max_allowed_pa​​cket 64M來解決它,但你已經設置爲1G!無論如何,這個HTML有多大?您可以使用'SHOW VARIABLES LIKE'max_allowed_pa​​cket';' – Clay

+0

來檢查mysql會話中max_allowed_pa​​cket的值,HTML的大小不超過25Kb。 –

+0

每次我必須重新啓動MySQL才能解決此錯誤,但它會在2-3天后再次出現。 –

回答

1

我認爲,max_allowed_pa​​cket的應該是256MB就夠了,你可能有一個緩慢的網絡連接。也嘗試下面的變量。

將net_write_timeout設置爲雙倍,並且 也在上漲中增加net_buffer_length。

另外你的箱子裏有多少ram,你把所有的東西都帶到innodb_buffer_pool,把它設置到你箱子裏的70%到80%。

還有一個建議是關閉查詢緩存,因爲它是一個網絡的東西。