MySQL 配置文件 my.cnf / my.ini 逐行详解

MySQL 配置文件 my.cnf / my.ini 逐行详解

本文首发:MySQL 配置文件 my.cnf / my.ini 逐行详解 - 卡拉云

MySQL 配置文件的意义

充分理解 MySQL 配置文件中各个变量的意义对我们有针对性的优化 MySQL 数据库性能有非常大的意义。我们需要根据不同的数据量级,不同的生产环境情况对 MySQL 配置文件进行优化。

Windows 和 Linux 下的 MySQL 配置文件的名字和存放位置都是不同的,WIndows 下 MySQL 配置文件是 my.ini 存放在 MySQL 安装目录的根目录下;Linux 下 MySQL 配置文件是 my.cnf 存放在 /etc/my.cnf/etc/mysql/my.cnf。我们也可以通过 find 命令进行查找。

另外要注意的是,通过 rpm 命令安装的 MySQL 是没有 /etc/my.cnf 文件的,如果需要配置 MySQL,可以在/etc/my.cnf新建配置文件,然后把本文的配置信息复制到文件中即可。

本教程将带领大家逐条解析最新的 MySQL 8.0 的配置文件,争取搞懂每一条变量。当然,我们理解了变量的意义外,更重要的是针对自己的数据库外部环境,在实践中进行微调,以达到优化性能的目的。

提示:你可以使用 Ctrl+F 快速定位。 MySQL 配置文件详解

  • [client]
  • [mysqld_safe]
  • [mysqld]
  • Query Cache MySQL 错误日志设置 慢查询记录 全局查询日志
  • 从属线程变量
  • 安全变量
  • MyISAM 变量
  • MEMORY 变量
  • InnoDB 变量 WSREP 配置

MySQL 配置文件详解

文件位置: Windows、Linux、Mac 有细微区别,Windows 配置文件是 .ini,Mac/linux 是 .cnf

[Windows]
MySQL\MySQL Server 5.7\my.ini

[Linux / Mac]
/etc/my.cnf
/etc/mysql/my.cnf 

当然我们也可以使用命令来查看 MySQL 默认配置文件位置

mysql --help|grep 'cnf'

查看 MySQL 配置文件位置

[client]

客户端设置。当前为客户端默认参数

port = 3306

默认连接端口为 3306

socket = /tmp/mysql.sock

本地连接的 socket 套接字

default_character_set = utf8

设置字符集,通常使用 uft8 即可

[mysqld_safe]

mysqld_safe 是服务器端工具,用于启动 mysqld,也是 mysqld 的守护进程。当 mysql 被 kill 时,mysqld_safe 负责重启启动它。

open_files_limit = 8192

此为 MySQL 打开的文件描述符限制,它是 MySQL 中的一个全局变量且不可动态修改。它控制着 mysqld 进程能使用的最大文件描述符数量。默认最小值为 1024

需要注意的是这个变量的值并不一定是你在这里设置的值,mysqld 会在系统允许的情况下尽量取最大值。

open_files_limit 没有被配置时,比较 max_connections*5ulimit -n 的值,取最大值

open_file_limit 被配置时,比较 open_files_limitmax_connections*5 的值,取最大值

user = mysql

用户名

log-error  = error.log

错误 log 记录文件

[mysqld]

服务端基本配置

port = 3306

mysqld 服务端监听端口

socket = /tmp/mysql.sock

MySQL 客户端程序和服务器之间的本地通讯指定一个套接字文件

max_allowed_packet  = 16M

允许最大接收数据包的大小,防止服务器发送过大的数据包。

当发出长查询或 mysqld 返回较大结果时,mysqld 才会分配内存,所以增大这个值风险不大,默认 16M,也可以根据需求改大,但太大会有溢出风险。取较小值是一种安全措施,避免偶然出现但大数据包导致内存溢出。

default_storage_engine = InnoDB 

创建数据表时,默认使用的存储引擎。这个变量还可以通过 –default-table-type 进行设置

max_connections  = 512

最大连接数,当前服务器允许多少并发连接。默认为 100,一般设置为小于 1000 即可。太高会导致内存占用过多,MySQL 服务器会卡死。作为参考,小型站设置 100 - 300

max_user_connections = 50

用户最大的连接数,默认值为 50 一般使用默认即可。

thread_cache_size = 64

线程缓存,用于缓存空闲的线程。这个数表示可重新使用保存在缓存中的线程数,当对方断开连接时,如果缓存还有空间,那么客户端的线程就会被放到缓存中,以便提高系统性能。我们可根据物理内存来对这个值进行设置,对应规则 1G 为 8;2G 为 16;3G 为 32;4G 为 64

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值