文档章节

修改Mysql的默认配置

紫系流月
 紫系流月
发布于 2017/09/08 22:47
字数 840
阅读 4
收藏 0

我理解了一些mysql的默认变量配置,这些默认配置在高压力的生产环境中被证明是有问题的,这些默认配置在网络震荡或一些其他情况下会产生一些让人非常讨厌的问题。

max_connect_errors

如果客户端连接mysql的时候有错误发生,服务器将会放弃等待在(connect_timeout)秒之后,并且会增加错误连接主机的计数。然后直到这个值达到(max_connect_errors)https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_connect_errors,然后客户端的ip会被锁定禁止连接,直到你执行 FLUSH HOST命令。更糟糕的情况是,如果你的网络不稳定,并且你一直不重启mysql服务器,这个错误会随着时间积累 直至在某个深夜给你造成无限麻烦。

阅读Mysql官网的文章(Host 'host name' is blocked)https://dev.mysql.com/doc/refman/5.7/en/blocked-host.html。不幸的是他们没有办法全完彻底的避免这种情况。这是这个值为0也不能避免这种情况。比较现实的解决方案是设置一个比较大的值 (max_connect_errors=1844674407370954751),并且时不时的运行一下FLUSH HOSTS命令。

connect_timeout

这个值和上面的问题相关.在网络拥堵的情况下(包含客户端和服务器),有可能在几秒钟之后完成连接。但是这个参数的默认值是5秒,当你尝试忽略这个错误,上面的max_connect_errors 会给你造成麻烦。

为了避免这种情况,可以尝试设置connect_timeout的值在15到20 之间。也可以考虑设置thread_cache_size为一个非零值。如果服务器需要在很短的时间内新建大量连接,这样的配置会非常有帮助.

skip-name-resolve

默认情况下对进入服务器的连接mysql会进行反向查找.在这种情况下,不管你的基础服务有多好,对DNS服务总是会有干扰.mysql 的主机缓存是为了将这些查找降到最低.但是这种情况困扰了我8年了.当有错误发生的时候,我只能假设在主机缓存或者解析器之中存在bug.

我推荐在/etc/my.cnf增加skip-name-resolve完全跳过DNS查找。只使用ip地址或者被允许的ip段.这样从DNS得到应答将会十分缓慢,非常容易的达到connect_timeout值。我猜测有2到3个DNS服务配置,但是第一个DNS服务是不可用的.

slave_net_timeout

当主数据库和从数据库之间的网络连接出现故障,但是主从都没有检测到(比如防火墙或者路由的改变)。你一定希望从服务器在slave_net_timeout秒之后可以自己明白发生了某些错误.他会尝试再次连接主服务器,在丢失连接的地方重新上线.这样就太了不起。

然而,这个值很令人沮丧 3600秒 整整一个小时.

如果发生某些错误,难道会有人希望他的从服务器空转吗?我不认为有人希望这种情况发生.

我的建议是你,如果你在一个非常混乱的环境,你可以设置这个值为30秒。

文章翻译自mysql

© 著作权归作者所有

共有 人打赏支持
紫系流月
粉丝 7
博文 8
码字总数 5293
作品 0
郑州
程序员
私信 提问
PHPWAMP配置应该如何修改,Web服务器、php、mysql的具体配置修改

phpwamp支持Nginx、apache、iis(均为完整版更稳定) 默认集成了多个php版本,包含TS与NTS,(支持自定义php版本) Mysql默认集成了mysql5.5、mysql5.6、mysql7(支持自定义Mysql版本) 今天...

Lccee
2017/10/07
0
0
Pentaho6.1资源库MySQL迁移

一、软件环境 操作系统:Windows10 64位 Pentaho版本: biserver-ce-6.1.0.1-196 MySQL版本:5.5.15 MySQL Community Server (GPL) JDK版本:Java 1.7.0_80 二、执行官方sql脚本文件 1、 sq...

灯下黑鬼吹灯
2016/11/10
546
4
CentOS7安装mysql5.7 使用YUM方式

1、配置YUM源 检查mysql源是否安装成功 看到上图所示表示安装成功。 可以修改源,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0...

哥本哈根的小哥
2018/08/16
0
0
在 Gentoo 上配置 FreeRadius 支持 MySQL

安装支持MySQL 的FreeRadius ,默认是不支持的: USE=”mysql” emerge freeradius 或者 echo “=net-dialup/freeradius-2.0.5 mysql” >> /etc/portage/package.use emerge freeradius radi......

鉴客
2011/10/26
1K
0
CentOS7 64位下MySQL5.7安装与配置(YUM)

安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1、配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/ 检查mysql源是否安装成功 看到上图所示表示安装成...

AnyLiem
2018/01/14
2
0

没有更多内容

加载失败,请刷新页面

加载更多

https

进入阿里云域名后台,修改DNS为阿里云官方DNS(默认为官方),然后点击“免费开启SSL证书” 点击“申请”、“验证”并等待签发 然后根据自己的服务器类型下载对应的证书 我使用的是lnmpa工具...

临江仙卜算子
7分钟前
0
0
Quartz监听器Listerner

概述 Quartz的监听器用于当任务调度中你所关注事件发生时,能够及时获取这一事件的通知。Quartz监听器主要有JobListener、TriggerListener、SchedulerListener三种,顾名思义,分别表示任务、...

大笨象会跳舞吧
34分钟前
3
0
Call exception, tries=10, retries=35, started=38348 ms ago, cancelled=false, msg=pc-node1 row

写hbase的问题,2019-01-18 23:23:28,082 | INFO | [hconnection-0x6431d54d-shared--pool2-t5] | Call exception, tries=10, retries=35, started=38348 ms ago, cancelled=false, msg=p......

stys35
38分钟前
2
0
docker 安装portainer、gogs、redis、mongodb、es、rabbitmq、mysql、jenkins、harbor

1、准备三台虚拟机ip如下 编号 Ip 1 192.168.100.101 2 192.168.100.102 3 192.168.100.103 2、镜像应用编排 192.168.100.101 主要安装系统运维相关服务 192.168.100.102 主要安装mysql、mon...

北岩
47分钟前
6
0
storm 提交任务报SocketException错误及解决办法

提交任务爆错: org.apache.storm.thrift.transport.TTransportException: java.net.SocketException: Broken pipe (Write failed) ..... Caused by: org.apache.storm.thrift.transport.TTr......

jingshishengxu
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部