mysql配置my.cnf中!include和!includedir的作用

Posted 古稀开启编程世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql配置my.cnf中!include和!includedir的作用相关的知识,希望对你有一定的参考价值。

-

先看官网截图:

------------------------------------------------------------------------------------------

举个例子:

[mysqld]
port=3306
...
...
...

[mysqladmin]
ssl=0
...
...
...
!include /home/mydir/myopt.cnf
!includedir /home/mydir/conf.d/

my.cnf内容如上。

文字说明:

my.cnf中的配置,都分有各个模块,例如:[mysqld] [client] [mysqladmin]等等。
各个模块下的参数指令都各自属于自己的模块,和其他模块相当于隔离。
而my.cnf这个配置文件,会被不同的进程所引用处理,例如:mysqld 、 mysqladmin 等等。
如果mysqld引入了my.cnf这个配置文件,它只会读取[mysqld]模块下的所有参数指令,不会搭理其他模块下的。
但有例外,就是上面两个命令 !include 和 !includedir。
不管他们两个参数指令,放在my.cnf中的哪一个模块下,任何地方,都会被处理。
而新引入的文件中,如果有[mysqld]模块参数指令,就会再添加,没有则什么都不做。

可能新人会觉得,云里雾里,莫名其妙,脱裤子放屁多此一举。
但你要知道,你学习的任何一个小技术点,在超大型项目中是难以想象的复杂!
甚至就这么简单的一个my.cnf也要分模块管理和处理,甚至不同模块,不同的人去配置管理。
所以,这个指令的存在就相当于,防止不同的人把别人的配置文件给忽略了。

另外,这样的话,你可以换一种方式管理配置文件了,把最最基础,最最通用的配置放在第一级文件。
然后其他不同情况,不同场景下的配置文件各自存放。
如果因为业务需求等情况,想换配置,只在第一级文件中,修改一下 !include这个指令指向的路径就可以了。

------------------------------------------------------------------------------------------

如果你是新人,请你一定记住,在学习某个技术时,不要把自己局限在一个单机的一个特别小的项目里,每一个技术点,有可能需要应用到你难以想象的超大超大型项目中,会变得超级复杂。你要通过这种思路,去理解一个技术点的存在意义和必要性。我相信,你一定可以,因为看了这篇文章的你,一定是个极客。

MySQL配置文件my.ini或my.cnf的位置

1、Windows下MySQL的配置文件是my.ini,一般会在安装目录的根目录。

2、Linux下MySQL的配置文件是my.cnf,一般会放在/etc/my.cnf,/etc/mysql/my.cnf。如果找不到,可以用find命令查找。

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即可

第三点原文链接:http://blog.csdn.net/newb921/article/details/5178011



以上是关于mysql配置my.cnf中!include和!includedir的作用的主要内容,如果未能解决你的问题,请参考以下文章

Linux中MySQL配置文件my.cnf参数说明

mysql 配置my.cnf时出状况了,mysql无法启动!

MySQL配置文件生效顺序

MySQL配置文件my.ini或my.cnf的位置

mysql 查看当前使用的配置文件my.cnf的方法

mysql 查看当前使用的配置文件my.cnf的方法(推荐)