MySQL中文參考手冊之my.conf
mysql.server
指令碼可以被用來啟動或停止伺服器,通過用start
或stop
引數呼叫它:
shell> mysql.server start shell> mysql.server stop
mysql.server
可在MySQL安裝目錄下的“share/mysql”目錄裡找到,或在MySQL原始碼樹的“support-files”目錄下找到。
在mysql.server
啟動伺服器之前,它把目錄改變到MySQL安裝目錄,然後呼叫safe_mysqld
。如果你有在一個非標準的地點安裝的二進位制分發,你可能需要編輯mysql.server
。修改它,執行safe_mysqld
前,cd
mysql_daemon_user=root
行使用其他使用者,你也能修改mysql.server
把其他選項傳給safe_mysqld
。
mysql.server stop
通過向伺服器發出一個訊號停止它。你可手工執行mysqladmin shutdown
關閉伺服器。
當你開始使用MySQL作為生產應用時,你可能想要增加這些啟動並且停止命令到在你的“/etc/rc * 檔案中適當的地方。注意如果你修改mysql.server
,那麼如果某個時候你升級MySQL時,你的修改版本將被覆蓋,因此你應該做一個你可重新安裝的編輯過的版本的拷貝。
如果你的系統使用“/etc/rc.local”
/bin/sh -c 'cd /usr/local/mysql ; ./bin/safe_mysqld &'
你也可以在一個全域性“/etc/my.cnf”檔案中增加mysql.server
的選項。一個典型的“/etc/my.cnf”檔案可能看起來像這樣:
mysqld] datadir=/usr/local/mysql/var socket=/tmp/mysqld.sock port=3306 [mysql.server] user=mysql basedir=/usr/local/mysql
mysql.server
指令碼使用下列變數:user
、datadir
、basedir
、bindir
和pid-file
。
MySQL3.22 可以從選項檔案中為伺服器和客戶讀取預設啟動選項。
在Unix上,MySQL從下列檔案讀取預設選擇:
檔名 | 用途 |
/etc/my.cnf |
全域性選項 |
DATADIR/my.cnf |
伺服器特定的選專案 |
~/.my.cnf |
使用者特定的選項 |
DATADIR
是MySQL的資料目錄(典型地對二進位制安裝是“/usr/local/mysql/data”或對原始碼安裝是“/usr/local/var”)。注意:這是在配置時間指定的目錄,不是mysqld
啟動時用--datadir
指定的目錄!(--datadir
在伺服器尋找選項檔案的地方無效,因為它以前尋找他們,它處理任何命令列引數。)
MySQL在Win32上從下列檔案讀取預設選項:
檔名 | 用途 |
windows-system-directory/my.ini |
|
C:/my.cnf |
全域性選項 |
C:/mysql/data/my.cnf |
伺服器特定的選項 |
注意,在Win32上你應該用/
而不是/
指定所有的路徑,如果你使用/
,你需要指定兩個,因為在MySQL裡面/
是轉義字元。
MySQL試圖以上述所列的順序讀取選項檔案。如果存在多個選項檔案,在一個後面檔案讀取的選項優先於在先前讀取的一個檔案中指定的同一個選項,在命令列上指定的選項優先於在任何選項檔案指定了的選項。有些選擇能使用環境變數指定,在命令列或在選項檔案指定的選項優先於環境變數。
下列程式支援選項檔案:mysql
、mysqladmin
、mysqld
、mysqldump
、mysqlimport
、mysql.server
、myisamchk
和myisampack
。
你能使用選項檔案指定一個程式支援的任意長的選項!用--help
選項執行程式可得到的可用選項的表。
一個選項檔案可以包含下列形式的行:
#comment
- 註釋行以“#”或“;”開始,空行被忽略。
[group]
group
是你想為其設定選項的程式或組的名字。在一個組行後,任何option
或set-variable
行應用於命名的組,直到選擇檔案結束或其他組的給出。option
- 這等價於在命令列上的
--option
。 option=value
- 這等價於在命令列上的
--option=value
。 set-variable = variable=value
- 這等價於在命令列上的
--set-variable variable=value
。該語法必須被用來設定一個mysqld
變數。
client
組允許你指定適用於所有MySQL客戶的選項(不是mysqld
)。這是理想的組來指定你用來與伺服器連線的口令。(但是保證只是選項檔案本身是可讀的和可寫的。)
注意,對域選項和值,所有頭部和尾部空白自動被刪除。你可以在的值串中使用轉義順序“/b”、“/t”、“/n”、“/r”、“//”和“/s”(“/s”==空白)。
這是一個典型的全域性選項檔案:
[client] port=3306 socket=/tmp/mysql.sock
[mysqld] port=3306 socket=/tmp/mysql.sock set-variable = key_buffer=16M set-variable = max_allowed_packet=1M
[mysqldump] quick
這是典型的使用者選項檔案:
[client] # The following password will be sent to all standard MySQL clients password=my_password [mysql] no-auto-rehash
如果你有一個原始碼分發,你將在“support-files”目錄下找到一個名為“my-example.cnf”樣品配置檔案。如果你有二進位制分發,在“DIR/share/mysql”目錄下查詢,在此DIR
是MySQL安裝目錄的路徑(一般是“/usr/local/mysql”)。你可以拷貝“my-example.cnf”到你的主目錄(重新命名拷貝為“.my.cnf”)來試驗。
為了告訴一個MySQL程式不讀任何選項檔案,在命令列上指定--no-defaults
作為第一個選項。這必須是第一個選項,否則它將無效!如果你想檢查使用哪個選項,你可以給出--print-defaults
選項作為第一個選項。
如果你想要強制使用一個特定配置檔案,你可以使用選項--defaults-file=full-path-to-default-file
。如果你這樣做,只有指定的檔案將被讀取。
開發者注意:選項檔案的處理簡單地通過處理所有在任何命令列前引數的匹配選項來實現(即,在適當的組裡的選項),這對使用多次指定的一個選項的最後例項的程式工作的很好。如果你有這樣一個處理多重指定選項但不讀選項檔案的舊程式, 你只需要增加2行給與它那種能力。檢查任何標準的MySQL客戶的原始碼看怎樣做。