生产环境 MySQL Server 核心参数的配置

2014-11-24 18:00:47 · 作者: · 浏览: 0

⑴ lower_case_table_names


● 推荐理由


GNU/Linux 平台,对数据库、表、存储过程等对象名称大小写敏感


为减少开发人员的开发成本,为此推荐大家设置该参数使对象名称都自动转换成小写


● 参数介绍


取值范围:


为0:区分大小写、Linux 平台默认值


为1:不区分大小写


Linux安装的MySQL的配置文件中(/etc/my.cnf)、是没有lower_case_table_names=1这行的


在Windows安装的MySQL的配置文件中(my.ini)、是有lower_case_table_names=1这行的


所以、特别提醒下、在 Replication 配置下、Master和Slave中该参数应当保持一致!!


⑵ max_connect_errors


● 推荐理由


一台物理服务器只要连接 MySQL 数据库服务器 异常中断累计超过10次,就再也无法连接上mysqld服务


为此建议大家设置此值至少大于等于10


处理方案有 2 :


要么重启mysqld、要么 mysqladmin flush-hosts


● 参数介绍


不过、该参数和安全相关、


某些黑客或许会尝试失败来暴力破解密码、该值如若设置过大会留下可趁之际


⑶ interactive_timeout和wait_timeout


● 推荐理由


如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加


那么、最终肯定会达到MySQL Server的连接上限数,这会报'too many connections'的错误


推荐值:


inactive_timeout=172800


wait_timeout=172800


● 参数介绍


interactive_timeout


参数含义:服务器关闭交互式连接所等待的秒数


wait_timeout


参数含义:服务器关闭非交互式连接所等待的秒数


⑷ transaction-isolation和binlog-format


推荐配置


▼只读为主的业务应用场景


transaction-isolation=read-commited


binlog-format=mixed


▼非只读为主的业务应用场景


transaction-isolation=repeatabled-read


binlog-format=mixed


⑸ innodb_adaptive_hash_index


● 推荐理由


InnoDB引擎会根据数据的访问频繁度,把表的数据逐渐缓到内存,若是一张表的数据大量缓存在内存中


则使用 HASH Index 会更高效


InnoDB内有Hash Index机制,监控数据的访 问情况,可以自动创建和维护一个Hash Index