共计 1762 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 充分理解 MySQL 配置文件中各个变量的意义对我们有针对性的优化 MySQL 数据库性能有非常大的意义,这篇文章主要介绍了 MySQL 配置文件 my.cnf / my.ini 区别, 需要的朋友可以参考下 |
充分理解 MySQL 配置文件中各个变量的意义对我们有针对性的优化 MySQL 数据库性能有非常大的意义。我们需要根据不同的数据量级,不同的生产环境情况对 MySQL 配置文件进行优化。
一、配置文件 my.ini 或 my.cnf 的位置
Windows 和 Linux 下的 MySQL 配置文件的名字和存放位置都是不同的:
1、WIndows 下 MySQL 配置文件是 my.ini 存放在 MySQL 安装目录的根目录下;
2、Linux 下 MySQL 配置文件是 my.cnf 存放在 /etc/my.cnf、/etc/mysql/my.cnf。我们也可以通过 find 命令进行查找。
1)find /etc -name my.cnf -- 在 /etc 目录下的文件 my.cnf
2)find /etc -name '*cnf*' -- 使用通配符 *(0 或者任意多个)。表示在 /etc 目录下查找文件名中含有字符串‘cnf' 的文件
3)find / -name my.cnf -- 在根目录下查找文件 my.cnf,表示在整个硬盘查找
4)find . -name 'cnf*' -- 表示当前目录下查找文件名开头是字符串‘cnf' 的文件
3、另外要注意的是,Linux 用 rpm 包安装的 MySQL 是不会安装 /etc/my.cnf 文件的。
至于为什么没有这个文件而 MySQL 却也能正常启动和作用,有两个说法:
第一种说法,my.cnf 只是 MySQL 启动时的一个参数文件,可以没有它,这时 MySQL 会用内置的默认参数启动;
第二种说法,MySQL 在启动时自动使用 /usr/share/mysql 目录下的 my-medium.cnf 文件,这种说法仅限于 rpm 包安装的 MySQL。
解决方法:只需要复制一个 /usr/share/mysql 目录下的.cnf 文件到 /etc 目录,并改名为 my.cnf 即可。
二、配置文件 my.cnf 的内容详解
[mysqld]
# 指定 Mysql 数据库的开放端口。port = 3306
# 设置 Mysql 数据库的安装目录 (绝对路径)。basedir = /usr/local/mysql
# 设置 Mysql 数据库的数据存放的绝对路径 (存放目录)。必须是 data, 或者是 \\xxx-data(my.ini 需要,my.cnf 不需要)。datadir = /www/server/data
# 设置 MySQL 数据库的最大连接数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量。可以过 '%connect%' 通配符查看当前状态的连接数量,以定夺该值的大小。max_connections = 100
# 设置 MySQL 数据库的连接超时时间。默认设置是一个数据库连接超过 8 小时没有使用, 达到了 server 端的 timeout, 服务器将断开这条连接, 此后再通过这个 connection 发起查询操作都将失败。超时等待时间,单位秒,即一个 connection 在若干秒内无响应,则服务器切断与这个客户端的连接。wait_timeout = 28800
# 当没有数据库请求时,28800 秒(即 8 小时)将自动断开连接。要同时设置 interactive_timeout 和 wait_timeout 才会生效。interactive_timeout = 28800
三、配置文件 my.cnf 的内容查找
# 查看并发数
mysql> show status like 'Threads%';
# 查看 mysql 服务器的最大连接数值
mysql> show variables like '%max_connections%';
# 查看 mysql 服务器响应的最大连接数:
mysql> show global status like 'Max_used_connections';
四、配置文件 my.cnf 的内容修改
# 设置 mysql 服务器的最大连接数值
mysql> set GLOBAL max_connections=256;
到此这篇关于 MySQL 配置文件 my.cnf / my.ini 区别的文章就介绍到这了
正文完
星哥说事-微信公众号
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)