04|MySQL中不同类型的参数与参数配置
俊达
你好,我是俊达。
在第一讲中,我们使用了一个极简的配置文件,只包含了最基本的一些参数,使 MySQL 能正常运行起来,便于我们进行测试、熟悉 MySQL。但是供正式环境使用的 MySQL 就不能仅仅依赖这个基础的配置了,我们需要根据部署 MySQL 的主机配置、使用 MySQL 的业务场景等因素,设置合理的参数,使 MySQL 能以比较高的性能运行,并满足业务对数据一致性的要求。
这一讲中,我们会介绍 MySQL 参数配置的基本机制。然后再介绍一些比较重要的参数,讲解这些参数的作用是什么,如何合理地设置这些参数。你可以根据这里提供的基本方法,为自己的 MySQL 设置一个相对合理的配置。
MySQL 参数设置机制
MySQL 8.0 总共有六百多个配置参数。有时候我们也将这些参数称为变量,因为官方文档中的术语是 Variables。同时在 MySQL 中,我们使用命令 show variables 查看参数的当前值。因此在这一系列的课程中,“参数”和“变量”很多时候指的都是同一个概念。
设置参数
有几个方法都可以用来设置参数。首先 mysqld 进程启动时,可以指定一系列的命令行参数。下面是一个比较典型的例子。
$ ps -elf | grep mysqld
... /usr/local/mysql/bin/mysqld \
--defaults-file=/data/mysql01/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/data/mysql01/data \
--plugin-dir=/usr/local/mysql/lib/plugin \
--user=mysql \
--log-error=/data/mysql01/log/alert.log \
--open-files-limit=1024 \
--pid-file=/data/mysql01/run/mysqld.pid \
--socket=/data/mysql01/run/mysql.sock
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
0/2000
1. MySQL参数设置机制包括全局参数和会话参数,可以通过命令行参数、配置文件、SET命令和SET PERSIST命令来设置参数。
2. MySQL的日志文件包括错误日志、慢SQL日志和General Log,建议开启慢SQL日志以进行SQL优化。
3. MySQL有一系列与文件路径相关的参数,如basedir和datadir,需要合理设置以指定程序文件的路径和数据文件的存放路径。
4. MySQL的参数分为全局参数和会话参数,全局参数对整个实例生效,需要用SET GLOBAL命令设置,会话参数只对某一个会话生效,使用SET命令设置。
5. MySQL 8.0开始支持参数修改持久化,通过SET PERSIST命令来设置,可以将参数的设置保存在数据目录下的mysqld-auto.cnf文件中,实现参数修改的持久化.
6. Redo Log Buffer和Redo日志对于数据持久化和恢复至关重要,需要合理设置相关参数如innodb_log_buffer_size和innodb_flush_log_at_trx_commit。
7. InnoDB参数设置包括innodb_buffer_pool_size和innodb_redo_log_capacity,需要根据实际情况进行合理配置。
8. 数据库崩溃恢复时,通过Redo日志来恢复数据,需要保证数据库的Checkpoint LSN比Redo文件最大的LSN号更大。
9. 对于Buffer Pool比较大,写入频繁的数据库,需要把innodb_redo_log_capacity设置得大一些,设置成几个G到几十G都是可以的。
10. 参数lower_case_table_names可用来控制表名是否区分大小写,需要根据实际情况进行合理设置。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《MySQL 运维实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。