-
先看官网截图:
------------------------------------------------------------------------------------------
举个例子:
[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这个指令指向的路径就可以了。
------------------------------------------------------------------------------------------
如果你是新人,请你一定记住,在学习某个技术时,不要把自己局限在一个单机的一个特别小的项目里,每一个技术点,有可能需要应用到你难以想象的超大超大型项目中,会变得超级复杂。你要通过这种思路,去理解一个技术点的存在意义和必要性。我相信,你一定可以,因为看了这篇文章的你,一定是个极客。