文档章节

修改Mysql的默认配置

紫系流月
 紫系流月
发布于 2017/09/08 22:47
字数 840
阅读 3
收藏 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...

哥本哈根的小哥
08/16
0
0
centos7 配置mysql

1.配置yum源 检查mysql源是否安装成功 看到上图所示表示安装成功 2.安装mysql 3、启动MySQL服务 查看MySQL的启动状态 4、开机启动 5、修改root默认密码 mysql安装完成之后,在/var/log/mysq...

GOToo
01/23
0
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
01/14
2
0

没有更多内容

加载失败,请刷新页面

加载更多

结合lucene谈谈日期的压缩问题

说起日期值的压缩,一般容易想到的办法是将日期转化成long类型,然后再通过变长整形进行压缩,我算了一下按照毫秒来算最多占用5个字节(可以通过“谈谈变长整型”中的表查看),确实节省了部...

FAT_mt
39分钟前
0
0
导出私有函数与私有变量

在Go语言中, package中包含函数与变量通过identifier的首字母是否大写来决定它是否可以被其它package所访问。当一个函数或变量名称为小写字母时,默认是无法被其他package引用的. 有没有办法...

xtof
39分钟前
0
0
new Date() 在Safari下的 Invalid Date问题

问题复现 var timeStr = '2018-11-11 00:00:00';var time = new Date(timeStr);// error: Invalid Date... 在safari浏览器下,time为Invalid Date, 导致后面代码执行错误; 其他浏览器诸...

会写代码的husky
43分钟前
2
0
0009-如何升级Cloudera Manager和CDH

1.文档编写目的 本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识: 1.如何对Cloudera Manager进行停机升级 2.如何对CDH进行停机升级 3.如何在不影响集群作业的情况...

Hadoop实操
53分钟前
1
0
vue2中引用 better-scroll的方法

文章主要介绍了vue2中引用better-scroll和使用 better-scroll的方法,使用时有三个要点及注意事项在文中给大家详细介绍 ,需要的朋友可以参考下 使用时有三个要点: 一:html部分 <div class...

前端攻城老湿
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部