mysql配置文件的使用教程
作者:天上的云川
配置文件格式
与在命令行中指定启动选项不同的是,配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号[]
扩起来,想这样
[server] (具体的启动选项...) [mysqld] (具体的启动选项...) [mysqld_safe] (具体的启动选项...) [client] (具体的启动选项...) [mysql] (具体的启动选项...) [mysqladmin] (具体的启动选项...)
像这个配置文件就定义了许多个组,组名分别时server、mysqld、mysqld_safe、client、mysql、mysqladmin。魅族下边可以定义若干个启动选项,我们以[server]为例来看一下填写启动选项的形式(其他组中启动选项的形式是一样的):
[server] option1 #这是option1,该选项不需要选项值 option2=value2 #这是optioin2,该选项需要选项值
在配置文件中指定启动选项的语法类似于命令行语法,但是配置文件中指定的启动选项不允许加–前缀,并且每行指定一个选项,而且=周围可以有空白字符(命令行中选项名、=、选项值之间不允许有空白字符)。另外,在配置文件中,我们可以使用#来添加注释,从#出现直到行尾内容都是属于注释内容,读取配置文件时会忽略这些注释内容
启动命令与选项组
配置文件中不同的选项组是给不同的启动命令使用的。不过有两个选项比较特别:
[server]
组下边的启动选项将作用于所有的服务器程序[client]
组下边的启动选项将作用于所有的客户端程序
下面时启动命令能读取的选项组都有哪些
比如,在/etc/mysql/my.cnf
这个配置文件中添加一些内容:
[server] skip-networking default-storage-engin=MyISAM
然后直接用mysql启动服务程序:
mysqld
虽然在命令行没有添加启动选项,但是在程序启动的时候,就会默认到我们上面提到的默认文件路径下查找配置文件,其中就包括/etc/my.cnf
。又由于mysqld可以读取[server]
选项组的内容,所以skip-networking
和default-storage-engine=MyISAM
这两个选项时生效的。你可以把这些启动选项放在[client]
组里再试试用mysqld
启动服务器程序,就不生效
特定MySQL版本的专用选项组
我们可以在选项组的名称后加上特定的MySQL版本号,比如对于[mysqld]
选项组来说,我们可以定义一个[mysqld-5.7]
的选项组,它的含义和[mysqld]
一样,只不过只有版本号为5.7的mysqld
程序才能启动这个选项组中的选项
同一个配置文件中多个组的优先级
我们说同一个命令可以访问配置文件中的多个组,比如mysqld
可以访问[mysqld]
、[server]
组,如果在同一个配置文件中,比如~./my.cnf
,在这些组里出现了同样的配置,比如这样:
[server] default-storage-engine=InnoDB [mysqld] default-storage-engine=MyISAM
那么,将以最后一个出现的族中的启动选项为准,比方说例子中default-storage-engine
基础现在[server]
组也出现在[mysqld]
组,因为[mysqld]
组在[server]
组后边,就以[mysqld]
组中的配置项为基准
命令行和配置文件中启动选项的区别
在命令行上指定的绝大部分启动选项都可以放到配置文件中,但是有一些选项是专门为命令行设计的,比方说defaults-extra-file
、defaults-file
这样的选项本身就是为了指定配置文件路径的,再放在配置文件中使用就没有意义了
如果同一个启动选项即出现在命令行中,又出现在配置文件中,那么以命令行中的启动选项为准。比如我们在配置文件中写了:
[server] default-storage-engine=InnoDB
而我们的命令行写的是
mysql.server start --default-storage-engine=MyISAM
那最终default-storage-engine
的值就是MyISAM
到此这篇关于mysql配置文件的使用教程的文章就介绍到这了,更多相关mysql配置文件使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!