文档章节

修改Mysql的默认配置

紫系流月
 紫系流月
发布于 2017/09/08 22:47
字数 840
阅读 1
收藏 0
点赞 0
评论 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 配置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
CentOS7安装MYSQL5.7数据库

1、安装mysql 2、设置开机启动 3、修改root本地登录密码 mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改...

卢瑶
2017/10/19
0
0
Centos7下安装MySQL5.7

CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。 1. 下载mysql的repo源 2. 安装mysql57-community-release-el7-8.noarch.rpm包 检查安装是否成功 3....

楠木楠
2016/12/27
13
0
CentOS7安装配置启动MySQL等操作(附解决your password does not satisfy the current policy requirements)

部分内容借鉴自 https://www.linuxidc.com/Linux/2016-09/135288.htm https://www.cnblogs.com/ivictor/p/5142809.html 安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1、配置YUM源 在MySQL......

临江仙卜算子
04/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
656
0
CentOS 6.x下的MySQL安装、配置与使用

MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。 因为MySQL使用数据库访问的标准化语言 —— SQL语言,且它具有体积小、速度快、开源等特点,...

daking
2017/12/02
0
0
MYSQL 字符集问题

MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation)。 对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)...

Adairs
2016/03/10
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
14分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
39分钟前
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
4
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0
将博客搬至CSDN

AHUSKY
今天
2
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部