MySQL配置文件筆記
在啟動MySQL服務器或者使用MySQL客戶端程序時,有以下幾種方式為程序提供選項:
· 在命令行中在程序名後面提供。 www.2cto.com
· 在程序啟動時讀取的配置文件中設置。
· 在環境變量中設置。
MySQL程序首先檢查環境變量,然後檢查配置文件,然後檢查命令行來確定給出了哪些選項。如果多次指定一個選項,最後出現的選項占先。這說明環境變量具有最低的優先級,命令行選項具有最高優先級。在以上方式中,尤以配置文件的使用最為復雜。
配置文件的使用方式
在Linux中,MySQL程序從下面的文件讀取啟動選項:
文件名
目的
/etc/my.cnf
全局選項
$MYSQL_HOME/my.cnf
服務器相關選項
defaults-extra-file
用--defaults-extra-file=path指定的文件,如果有
~/.my.cnf www.2cto.com
用戶相關選項
注:MYSQL_HOME是一個環境變量,包含服務器相關的my.cnf文件駐留的目錄路徑。如果未設置MYSQL_HOME,並且DATADIR中有一個my.cnf文件,BASEDIR中沒有my.cnf文件,mysqld_safe將MYSQL_HOME設置為DATADIR。如果未設置MYSQL_HOME並且在DATADIR中沒有my.cnf,則mysqld_safe將MYSQL_HOME設置為BASEDIR。
MySQL按照上述順序尋找配置文件,並讀存在的配置文件。如果存在多個配置文件,文件中指定的後讀取的選項要優先文件中指定的先讀取的選項。
配置文件指定選項的語法
選項語法類似於命令行語法,例外的是要忽略掉兩個破折號。
例如,命令行中的--quick或--host=localhost在選項文件中應指定為quick或host=localhost。
[group]:group是你想要設置選項的程序名或組名。在組行後面,任何opt_name或set-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 www.2cto.com
例如,假定你想要使用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)的文件做檢查。
作者 xinhanggebuguake