MySQL配置文件笔记

来源:互联网 发布:淘宝上有哪些促销活动 编辑:程序博客网 时间:2024/06/02 05:18

在启动MySQL服务器或者使用MySQL客户端程序时,有以下几种方式为程序提供选项:

·         在命令行中在程序名后面提供。

·         在程序启动时读取的配置文件中设置。

·         在环境变量中设置。

MySQL程序首先检查环境变量,然后检查配置文件,然后检查命令行来确定给出了哪些选项。如果多次指定一个选项,最后出现的选项占先。这说明环境变量具有最低的优先级,命令行选项具有最高优先级。在以上方式中,尤以配置文件的使用最为复杂。

配置文件的使用方式

Linux中,MySQL程序从下面的文件读取启动选项:

文件名

目的

/etc/my.cnf

全局选项

$MYSQL_HOME/my.cnf

服务器相关选项

defaults-extra-file

--defaults-extra-file=path指定的文件,如果有

~/.my.cnf

用户相关选项

注:MYSQL_HOME是一个环境变量,包含服务器相关的my.cnf文件驻留的目录路径。如果未设置MYSQL_HOME,并且DATADIR中有一个my.cnf文件,BASEDIR中没有my.cnf文件,mysqld_safeMYSQL_HOME设置为DATADIR。如果未设置MYSQL_HOME并且在DATADIR中没有my.cnf,则mysqld_safeMYSQL_HOME设置为BASEDIR

        MySQL按照上述顺序寻找配置文件,并读存在的配置文件。如果存在多个配置文件,文件中指定的后读取的选项要优先文件中指定的先读取的选项。

配置文件指定选项的语法

        选项语法类似于命令行语法,例外的是要忽略掉两个破折号。

例如,命令行中的--quick--host=localhost在选项文件中应指定为quickhost=localhost

[group]group是你想要设置选项的程序名或组名。在组行后面,任何opt_nameset-variable行适用于组名,直到选项文件结尾或给出其它组行。

opt_name等价于命令行中的--opt_name

opt_name=value:等价于命令行中的--opt_name=value。在选项文件中,‘=’字符附近可以有空格,而在命令行中是不允许的。你可以用单引号或双引号来引用值。

        如果选项组名与程序名相同,则组内的选项专用于该程序。所有客户程序(不能mysqld)读取[client]选项组。这样允许你指定适用于所有客户端的选项。

        可以在选项文件中使用!include指令来包括具体文件和!includedir来搜索选项文件的具体目录。例如,要包括文件/home/mydir/myopt.cnf,可以使用:

!include /home/me/myopt.cnf

要搜索所有以.cnf结尾的文件的目录/home/mydir并作为选项文件读取,应使用:

!includedir /home/mydir

例如,假定你想要使用my.cnf中的某些内容,如下所示:

[mysqld]

!include /home/mydir/myopt.cnf

在这种情况下,只为该服务器处理文件myopt.cnf,并且!include指令将被客户应用程序忽略。然而,如果你使用下面的部分:

[mysqldump]

!includedir /home/mydir/my-dump-option

则只有mysqldump为以.cnf结尾的文件检查目录/home/mydir/my-dump-option,服务器或其它客户应用程序均不检查。

注释:目前,在Linux操作系统中,所发现的使用!includedir指令包括的文件的文件名必须.cnf为扩展名。在Windows中,该指令也为有.ini扩展名(包括.cnf)的文件做检查。