MySQL运维22-配置文件

1、配置文件的分节

配置文件分成了很多节,MySQL程序通常会读取命名和自己名字一样的节。

1.1、client节

  • 客户端工具,如mysql、mysqldump会读取client这一节的配置。
  • default-character-set指程序和MySQL服务器进行通信时所使用的字符集。这个字符集应该和输入窗口(Windows)或控制台窗口(Unix/Linux)里默认使用的字符集一致。
  • 常见client节示例如下:
[client]
port = 3306
socket = /path/to/tmp//3306/mysql.sock
default-character-set = utf8

1.2、mysqld节

  • mysqld服务会读取这一节的配置。
  • init_connect这个参数可以在客户端连接进来的时候执行一些初始化操作,如记录连接IP,但不会对Super用户起作用。

2、配置文件中的一些参数介绍

2.1、max_connect_errors

  1. 作用:如果一台尝试连接数据库的主机失败的次数超过了此阈值,那么这个主机会被MySQL Server阻止访问,必须在MySQL Server上运行FLUSH HOSTS才能解除此限制。
  2. 建议配置:将此值设置得足够大会更好,推荐值是5000。

2.2、skip_name_resolve

  1. 作用:如果skip_name_resolve设置为1,MySQL就不会对传入的客户端主机名做DNS解析,而会直接当做IP地址使用。因此设置skip_name_resolve为1后,MySQL权限表就只能使用IP来统一标识主机,而不能使用主机名来标识了。
  2. 建议配置:skip_name_resolve必须设置为1因MySQL的DNS解析可能会导致严重的性能问题。

3、配置文件的读取顺序

  • /etc、MYSQL_HOME、数据目录(DATADIR)、安装目录(BASEDIR)下及用户目录(~)下的my.cnf都可能生效。
  • 建议只保留一个MySQL配置文件,所有参数放在文件里,不要在启动命令里加参数:虽然官方文档中说明了配置文件的读取顺序,可是该顺序不一定可靠。建议读者不要依赖于官方文档所说明的顺序来部署自己的多个MySQL配置文件。对于生产环境的部署,建议仅存在并加载一个配置文件,而不要配置多个配置文件。有些人除了配置文件,还喜欢在命令行内也设置一些参数,这样容易导致混淆,维护性也会变差,最终将丢失你所做的变更。

4、配置文件的优化不是最重要的

4.1、生产环境配置文件应尽量简单,未经充分验证不要修改

在生产环境中,应该在确定某个选项能解决特定的性能问题时,才去设置它,否则应该尽量保持简单。配置文件添加了过多的参数可能会导致混淆,维护性可能会变差,后来接手的DBA往往会问,为什么要这么设置。实际的数据库产品中,很多参数只有在特定的上下文中才有意义,时过境迁,一些参数可能反而会成为性能问题的根源所在。

4.2、数据库配置文件所起作用有限

数据库配置文件所起的作用有限。系统的性能更多地取决于物理部署和架构,取决于数据库设计、索引和SQL质量等。设置好正确的基本参数之后,最好就不用再去关注它,应该花费更多的时间在库表设计、索引和查询优化上。

4.3、官方配置文件不建议使用

官方的安装包内有附带的示例配置文件,但不建议使用。里面的一些设置不太符合生产实践,可能会有误导,而且这些配置也过时了,不适合现在的硬件和负载。

5、总结

  1. MySQL的配置文件分为多节,每一节根据名字会被不同的程序读取,例如mysql客户端和mysqldump会读取client节的内容,mysqld会读取mysqld节的内容。
  2. MySQL的配置文件虽然可以有多个,但建议一台服务器上只有一个配置文件,官方所谓的读取顺序是不可靠的,多个文件可能导致根本不知道哪个参数生效了。所以尽量也不要在启动命令上加参数,而是全部使用配置文件中的参数,这样方便定位问题。
  3. MySQL配置文件中的参数没有充分验证不要随便更改,因为很多参数的更改在当时可能解决了问题,但时过境迁这个参数可能变成问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值