【问题标题】:Error: Broken Pipe/MySQL Server has gone away错误:损坏的管道/MySQL 服务器已消失
【发布时间】:2016-01-01 05:22:16
【问题描述】:

MySQL throwing Broken Pipe and MySQL Server has gone away 错误。我的数据库表包含我每隔 1 小时定期插入大型 HTML 的文本字段。

我应该考虑设置哪个 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~   

【问题讨论】:

  • 有趣的是,我遇到了类似的问题并将 max_allowed_pa​​cket 设置为 64M 来修复它,但您将其设置为 1G!那 HTML 到底有多大?您可以在 mysql 会话中使用 SHOW VARIABLES LIKE 'max_allowed_packet'; 仔细检查 max_allowed_pa​​cket 的值
  • HTML 的大小不超过 25Kb。
  • 每次我必须重新启动 MySQL 来解决这个错误,但它会在 2-3 天后再次出现。
  • 我会在您的连接会话中验证 max_allowed_pa​​cket,并执行ps aux | grep mysql 以验证您正在查看正确的 my.cnf 文件(我相信 mysqld 会检查在 --basedir 中定义的目录参数)。
  • @Clayton:显示变量返回此输出1073741824 for max_allowed_pa​​cket。

标签: mysql database-administration


【解决方案1】:

我认为,max_allowed_pa​​cket 应该是 256MB 就足够了,您的网络连接可能很慢。也试试下面的变量。

将 net_write_timeout 设置为 double 和 在一次反弹中也增加 net_buffer_length。

还有你的盒子里有多少内存,你要把所有的内存都放到 innodb_buffer_pool 中吗,把这个设置为你盒子内存的 70% 到 80%。

还有一个建议是关闭查询缓存,因为它是一个网络内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-28
    • 2011-12-18
    • 2015-12-18
    • 2011-10-12
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多