當您啟動 mysqld 伺服器時,您可以使用 第 6.2.2 節「指定程式選項」中所述的任何方法指定程式選項。最常見的方法是在選項檔案中或在命令列上提供選項。但是,在大多數情況下,最好確保伺服器每次執行時都使用相同的選項。確保這一點的最佳方法是將它們列在選項檔案中。請參閱第 6.2.2.2 節「使用選項檔案」。該節還說明了選項檔案格式和語法。
mysqld 從 [mysqld] 和 [server] 群組讀取選項。mysqld_safe 從 [mysqld]、[server]、[mysqld_safe] 和 [safe_mysqld] 群組讀取選項。mysql.server 從 [mysqld] 和 [mysql.server] 群組讀取選項。
mysqld 接受許多命令選項。如需簡短摘要,請執行此命令
mysqld --help若要檢視完整清單,請使用此命令
mysqld --verbose --help清單中的某些項目實際上是在伺服器啟動時可以設定的系統變數。可以使用 SHOW VARIABLES 陳述式在執行階段顯示這些項目。先前 mysqld 命令顯示的某些項目不會出現在 SHOW VARIABLES 輸出中;這是因為它們僅是選項,而不是系統變數。
以下清單顯示了一些最常見的伺服器選項。其他選項將在其他章節中說明
影響安全性的選項:請參閱第 8.1.4 節「與安全性相關的 mysqld 選項和變數」。
與 SSL 相關的選項:請參閱加密連線的命令選項。
二進位記錄檔控制選項:請參閱第 7.4.4 節「二進位記錄檔」。
與複寫相關的選項:請參閱第 19.1.6 節「複寫和二進位記錄選項和變數」。
用於載入可插拔儲存引擎等外掛程式的選項:請參閱第 7.6.1 節「安裝和解除安裝外掛程式」。
特定於特定儲存引擎的選項:請參閱第 17.14 節「InnoDB 啟動選項和系統變數」和第 18.2.1 節「MyISAM 啟動選項」。
有些選項會控制緩衝區或快取的大小。對於給定的緩衝區,伺服器可能需要配置內部資料結構。這些結構通常從配置給緩衝區的總記憶體中配置,並且所需空間量可能與平台相關。這表示當您將值指派給控制緩衝區大小的選項時,實際可用的空間量可能與指派的值不同。在某些情況下,空間量可能小於指派的值。伺服器也可能會向上調整值。例如,如果您為最小值為 1024 的選項指派值 0,則伺服器會將值設定為 1024。
除非另有說明,緩衝區大小、長度和堆疊大小的值均以位元組為單位。
有些選項會採用檔案名稱值。除非另有說明,如果該值是相對路徑名稱,則預設檔案位置為資料目錄。若要明確指定位置,請使用絕對路徑名稱。假設資料目錄是 /var/mysql/data。如果將檔案值選項指定為相對路徑名稱,則該選項位於 /var/mysql/data 下。如果該值是絕對路徑名稱,則其位置由路徑名稱指定。
您也可以在伺服器啟動時,使用變數名稱作為選項來設定伺服器系統變數的值。若要將值指派給伺服器系統變數,請使用 -- 形式的選項。例如,var_name=value--sort_buffer_size=384M 會將 sort_buffer_size 變數設定為 384MB 的值。
當您將值指派給變數時,MySQL 可能會自動修正值,使其保持在給定範圍內,或者如果只允許特定值,則將值調整為最接近允許的值。
若要限制系統變數在執行階段使用 SET 陳述式可設定的最大值,請在伺服器啟動時,使用 --maximum- 形式的選項來指定此最大值。var_name=value
您可以使用 SET 陳述式,在執行階段變更大多數系統變數的值。請參閱 第 15.7.6.1 節「SET 變數指派的語法」。
第 7.1.8 節「伺服器系統變數」提供了所有變數的完整說明,以及在伺服器啟動和執行階段設定它們的其他資訊。如需變更系統變數的資訊,請參閱第 7.1.1 節「設定伺服器」。
--help、-?命令列格式 --help-
命令列格式 --allow-suspicious-udfs[={OFF|ON}]類型 布林值 預設值 關閉此選項會控制是否可以載入僅具有主函式的
xxx符號的可載入函式。預設情況下,此選項為關閉,並且只能載入至少具有一個輔助符號的可載入函式;這可以防止嘗試從包含合法函式以外的共用物件檔案載入函式。請參閱 可載入函式安全性注意事項。 -
命令列格式 --ansi使用標準 (ANSI) SQL 語法,而非 MySQL 語法。若要更精確地控制伺服器 SQL 模式,請改用
--sql-mode選項。請參閱第 1.7 節「MySQL 標準符合性」和 第 7.1.11 節「伺服器 SQL 模式」。 --basedir=、dir_name-bdir_nameMySQL 安裝目錄的路徑。此選項會設定
basedir系統變數。伺服器可執行檔會在啟動時判斷其本身的完整路徑名稱,並使用其所在目錄的父目錄作為預設的
basedir值。這反過來會讓伺服器能夠在使用basedir時,搜尋與伺服器相關的資訊,例如包含錯誤訊息的share目錄。--chroot=、dir_name-rdir_name命令列格式 --chroot=dir_name類型 目錄名稱 使用
chroot()系統呼叫,在啟動期間將 mysqld 伺服器置於封閉式環境中。這是建議的安全性措施。使用此選項會稍微限制LOAD DATA和SELECT ... INTO OUTFILE。-
命令列格式 --console平台特定 Windows (僅限 Windows。) 使預設錯誤記錄目的地為主控台。這會影響將其本身輸出目的地建立在預設目的地之上的記錄接收器。請參閱第 7.4.2 節「錯誤記錄」。如果使用此選項,mysqld 不會關閉主控台視窗。
如果同時指定
--console和--log-error,--console會優先。 -
命令列格式 --core-file使用此選項時,如果 mysqld 停止運作,則會寫入核心檔案;不需要 (或接受) 引數。核心檔案的名稱和位置與系統相關。在 Linux 上,名為
core.的核心檔案會寫入程序的目前工作目錄,對於 mysqld 而言,這是資料目錄。pidpid代表伺服器程序的程序 ID。在 macOS 上,名為core.的核心檔案會寫入pid/cores目錄。在 Solaris 上,請使用 coreadm 命令來指定寫入核心檔案的位置,以及如何命名它。對於某些系統,若要取得核心檔案,您還必須為 mysqld_safe 指定
--core-file-size選項。請參閱第 6.3.2 節「mysqld_safe — MySQL 伺服器啟動指令碼」。在某些系統 (例如 Solaris) 上,如果您同時使用--user選項,則不會取得核心檔案。可能會有其他限制或限制。例如,可能需要在啟動伺服器之前執行 ulimit -c unlimited。請參閱您的系統文件。可以使用
innodb_buffer_pool_in_core_file變數來縮小支援它的作業系統上的核心檔案大小。如需詳細資訊,請參閱 第 17.8.3.7 節「從核心檔案排除或包含緩衝集區頁面」。 --daemonize、-D命令列格式 --daemonize[={OFF|ON}]類型 布林值 預設值 關閉此選項會使伺服器以傳統的分支守護程式方式執行,使其能夠與使用 systemd 進行程序控制的作業系統搭配運作。如需詳細資訊,請參閱 第 2.5.9 節「使用 systemd 管理 MySQL 伺服器」。
--daemonize與--initialize和--initialize-insecure互斥。如果伺服器使用
--daemonize選項啟動,且未連線到 tty 裝置,則在沒有明確記錄選項的情況下,會使用--log-error=""的預設錯誤記錄選項,將錯誤輸出導向預設記錄檔。-D是--daemonize的同義詞。--datadir=、dir_name-hdir_nameMySQL 伺服器資料目錄的路徑。此選項會設定
datadir系統變數。請參閱該變數的說明。--debug[=、debug_options]-# [debug_options]命令列格式 --debug[=debug_options]系統變數 debug範圍 全域、工作階段 動態 是 SET_VAR提示適用否 類型 字串 預設值 (Unix) d:t:i:o,/tmp/mysqld.trace預設值 (Windows) d:t:i:O,\mysqld.trace如果 MySQL 使用
-DWITH_DEBUG=1CMake 選項進行配置,您可以使用此選項來取得 mysqld 正在執行的追蹤檔案。一個典型的debug_options字串是d:t:o,。在 Unix 上的預設值為file_named:t:i:o,/tmp/mysqld.trace,在 Windows 上為d:t:i:O,\mysqld.trace。使用
-DWITH_DEBUG=1配置具有除錯支援的 MySQL,讓您在啟動伺服器時可以使用--debug="d,parser_debug"選項。這會導致用於處理 SQL 陳述式的 Bison 剖析器將剖析器追蹤轉儲到伺服器的標準錯誤輸出。通常,此輸出會寫入錯誤日誌。此選項可以給定多次。以
+或-開頭的值會加入或減去先前的值。例如,--debug=T--debug=+P會將值設定為P:T。更多資訊,請參閱第 7.9.4 節,「DBUG 套件」。
-
命令列格式 --debug-sync-timeout[=#]類型 整數 控制是否啟用用於測試和除錯的 Debug Sync 功能。使用 Debug Sync 需要使用
-DWITH_DEBUG=ONCMake 選項配置 MySQL (請參閱第 2.8.7 節,「MySQL 原始碼配置選項」);否則,此選項不可用。選項值是以秒為單位的逾時。預設值為 0,這會停用 Debug Sync。若要啟用它,請指定大於 0 的值;此值也會成為個別同步點的預設逾時。如果選項沒有給定值,則逾時會設定為 300 秒。如需 Debug Sync 功能以及如何使用同步點的說明,請參閱MySQL 內部:測試同步。
-
命令列格式 --default-time-zone=名稱類型 字串 設定預設伺服器時區。此選項會設定全域
time_zone系統變數。如果未給定此選項,預設時區會與系統時區相同 (由system_time_zone系統變數的值給定)。system_time_zone變數與time_zone不同。雖然它們可能具有相同的值,但後者變數用於初始化每個連線用戶端的時區。請參閱第 7.1.15 節,「MySQL 伺服器時區支援」。 --defaults-extra-file=file_name在全域選項檔案之後,但在 (在 Unix 上) 用戶選項檔案之前,讀取此選項檔案。如果該檔案不存在或無法存取,則會發生錯誤。如果
file_name不是絕對路徑名稱,則會相對於目前目錄進行解譯。如果使用,這必須是命令列上的第一個選項。有關此選項和其他選項檔案選項的更多資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
僅讀取給定的選項檔案。如果該檔案不存在或無法存取,則會發生錯誤。如果
file_name不是絕對路徑名稱,則會相對於目前目錄進行解譯。例外狀況:即使使用
--defaults-file,mysqld 也會讀取mysqld-auto.cnf。注意如果使用,這必須是命令列上的第一個選項,除非伺服器使用
--defaults-file和--install(或--install-manual) 選項啟動,則--install(或--install-manual) 必須是第一個。有關此選項和其他選項檔案選項的更多資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
不僅讀取常用的選項群組,還讀取具有常用名稱和
str後綴的群組。例如,mysqld 通常會讀取[mysqld]群組。如果此選項給定為--defaults-group-suffix=_other,mysqld 也會讀取[mysqld_other]群組。有關此選項和其他選項檔案選項的更多資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
--early-plugin-load=plugin_list命令列格式 --early-plugin-load=plugin_list類型 字串 預設值 空字串此選項會告知伺服器在載入強制性的內建外掛程式之前以及在儲存引擎初始化之前,要載入哪些外掛程式。僅支援使用
PLUGIN_OPT_ALLOW_EARLY編譯的外掛程式的早期載入。如果給定多個--early-plugin-load選項,則僅最後一個選項適用。選項值是以分號分隔的
plugin_library和name=plugin_library值清單。每個plugin_library都是包含外掛程式碼的程式庫檔案名稱,而每個name都是要載入的外掛程式名稱。如果外掛程式庫在沒有任何前導外掛程式名稱的情況下命名,伺服器會載入該程式庫中的所有外掛程式。使用前導外掛程式名稱,伺服器只會從程式庫中載入已命名的外掛程式。伺服器會在plugin_dir系統變數命名的目錄中尋找外掛程式庫檔案。例如,如果名為
myplug1和myplug2的外掛程式包含在myplug1.so和myplug2.so外掛程式庫檔案中,請使用此選項來執行早期外掛程式載入mysqld --early-plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"引號會將引數值括起來,因為否則某些命令解譯器會將分號 (
;) 解譯為特殊字元。(例如,Unix Shell 會將其視為命令終止符)。每個命名的外掛程式只會在單次叫用 mysqld 時提早載入。重新啟動後,外掛程式不會提早載入,除非再次使用
--early-plugin-load。如果使用
--initialize或--initialize-insecure啟動伺服器,則不會載入由--early-plugin-load指定的外掛程式。如果伺服器使用
--help執行,則會載入由--early-plugin-load指定的外掛程式,但不會初始化。此行為可確保外掛程式選項顯示在說明訊息中。InnoDB表空間加密依賴於 MySQL Keyring 進行加密金鑰管理,而且要使用的金鑰環外掛程式必須在儲存引擎初始化之前載入,以方便InnoDB復原加密表格。例如,想要在啟動時載入keyring_okv外掛程式的管理員應該將--early-plugin-load與適當的選項值一起使用 (例如,在 Unix 和類 Unix 系統上使用keyring_okv.so,或在 Windows 上使用keyring_okv.dll)。有關
InnoDB表空間加密的資訊,請參閱第 17.13 節,「InnoDB 靜態資料加密」。有關外掛程式載入的一般資訊,請參閱第 7.6.1 節,「安裝和解除安裝外掛程式」。注意對於 MySQL Keyring,僅當金鑰儲存區使用金鑰環外掛程式進行管理時,才會使用此選項。如果金鑰儲存區管理使用金鑰環元件而不是外掛程式,請使用資訊清單檔案指定元件載入;請參閱第 8.4.4.2 節,「金鑰環元件安裝」。
--exit-info[=、flags]-T [flags]命令列格式 --exit-info[=flags]類型 整數 這是不同旗標的位元遮罩,您可以使用這些旗標來除錯 mysqld 伺服器。除非您確切知道它的作用,否則請勿使用此選項!
-
命令列格式 --external-locking[={OFF|ON}]類型 布林值 預設值 關閉啟用外部鎖定 (系統鎖定),預設為停用。如果您在
lockd未完全運作的系統 (例如 Linux) 上使用此選項,mysqld 很容易死鎖。若要明確停用外部鎖定,請使用
--skip-external-locking。外部鎖定只會影響
MyISAM資料表的存取。如需更多資訊 (包括可以使用和無法使用的條件),請參閱第 10.11.5 節,「外部鎖定」。 -
在每個 SQL 語句執行後,將所有變更同步(刷新)至磁碟。通常,MySQL 只會在每個 SQL 語句執行後才將所有變更寫入磁碟,並讓作業系統處理與磁碟的同步。請參閱第 B.3.3.3 節,「如果 MySQL 持續崩潰該怎麼辦」。
注意如果指定了
--flush,flush_time的值就不重要了,且變更flush_time對刷新行為沒有任何影響。 -
命令列格式 --gdb[={OFF|ON}]類型 布林值 預設值 關閉安裝
SIGINT的中斷處理常式(需要使用^C來停止 mysqld 以設定中斷點),並停用堆疊追蹤和核心檔案處理。請參閱第 7.9.1.4 節,「在 gdb 下除錯 mysqld」。在 Windows 上,此選項也會抑制用於實作
RESTART語句的分叉:分叉讓一個程序可以作為另一個程序的監控器,而另一個程序則作為伺服器。然而,分叉使得確定要附加進行除錯的伺服器程序更加困難,因此使用--gdb啟動伺服器會抑制分叉。對於使用此選項啟動的伺服器,RESTART只會退出而不會重新啟動。在非除錯設定中,可以使用
--no-monitor來抑制分叉監控程序。 --initialize,-I命令列格式 --initialize[={OFF|ON}]類型 布林值 預設值 關閉此選項用於初始化 MySQL 安裝,方法是建立資料目錄並在
mysql系統綱要中填入資料表。如需詳細資訊,請參閱第 2.9.1 節,「初始化資料目錄」。此選項會限制 MySQL 伺服器許多其他啟動選項的效果,或與之不相容。以下列出一些最常見的這類問題
我們強烈建議,在使用
--initialize初始化資料目錄時,除了--datadir,其他用於設定目錄位置的選項(例如--basedir),以及可能需要的--user之外,不要指定其他選項。當初始化完成且 mysqld 已關閉時,可以指定用於執行 MySQL 伺服器的選項。當使用--initialize-insecure而非--initialize時,也適用此規定。當伺服器使用
--initialize啟動時,某些功能會無法使用,這會限制init_file系統變數所命名之任何檔案中允許的語句。如需更多資訊,請參閱該變數的說明。此外,disabled_storage_engines系統變數沒有任何效果。當
--ndbcluster選項與--initialize一起使用時,會被忽略。--initialize與--bootstrap和--daemonize互斥。
先前清單中的項目也適用於使用
--initialize-insecure選項初始化伺服器時。-
命令列格式 --initialize-insecure[={OFF|ON}]類型 布林值 預設值 關閉此選項用於初始化 MySQL 安裝,方法是建立資料目錄並在
mysql系統綱要中填入資料表。此選項表示--initialize,且適用相同的限制;如需更多資訊,請參閱該選項的說明,以及第 2.9.1 節,「初始化資料目錄」。警告此選項會建立一個密碼為空的 MySQL
root使用者,這是不安全的。因此,請勿在未手動設定此密碼的情況下在生產環境中使用它。有關如何執行此操作的資訊,請參閱初始化後的 root 密碼指派。 --innodb-xxx設定
InnoDB儲存引擎的選項。InnoDB選項列在第 17.14 節,「InnoDB 啟動選項和系統變數」中。-
命令列格式 --install [服務名稱]平台特定 Windows (僅限 Windows)將伺服器安裝為 Windows 服務,該服務在 Windows 啟動期間自動啟動。如果未給定
service_name值,則預設服務名稱為MySQL。如需更多資訊,請參閱第 2.3.3.8 節,「將 MySQL 作為 Windows 服務啟動」。注意如果伺服器使用
--defaults-file和--install選項啟動,--install必須是第一個。 --install-manual [service_name]命令列格式 --install-manual [服務名稱]平台特定 Windows (僅限 Windows)將伺服器安裝為 Windows 服務,該服務必須手動啟動。它不會在 Windows 啟動期間自動啟動。如果未給定
service_name值,則預設服務名稱為MySQL。如需更多資訊,請參閱第 2.3.3.8 節,「將 MySQL 作為 Windows 服務啟動」。注意如果伺服器使用
--defaults-file和--install-manual選項啟動,--install-manual必須是第一個。-
命令列格式 --large-pages[={OFF|ON}]系統變數 large_pages範圍 全域 動態 否 SET_VAR提示適用否 平台特定 Linux 類型 布林值 預設值 關閉某些硬體/作業系統架構支援大於預設值(通常為 4KB)的記憶體頁面。此支援的實際實作取決於底層硬體和作業系統。執行大量記憶體存取的應用程式可能會因減少轉換後備緩衝區 (TLB) 未命中而透過使用大頁面獲得效能提升。
MySQL 支援 Linux 的大頁面支援實作(在 Linux 中稱為 HugeTLB)。請參閱第 10.12.3.3 節,「啟用大頁面支援」。如需 Solaris 大頁面支援,請參閱
--super-large-pages選項的說明。--large-pages預設為停用。 -
命令列格式 --lc-messages=名稱系統變數 lc_messages範圍 全域、工作階段 動態 是 SET_VAR提示適用否 類型 字串 預設值 en_US用於錯誤訊息的地區設定。預設值為
en_US。伺服器會將引數轉換為語言名稱,並將其與--lc-messages-dir的值結合,以產生錯誤訊息檔案的位置。請參閱第 12.12 節,「設定錯誤訊息語言」。 -
命令列格式 --lc-messages-dir=目錄名稱系統變數 lc_messages_dir範圍 全域 動態 否 SET_VAR提示適用否 類型 目錄名稱 錯誤訊息所在的目錄。伺服器會將此值與
--lc-messages的值一起使用,以產生錯誤訊息檔案的位置。請參閱第 12.12 節,「設定錯誤訊息語言」。 -
命令列格式 --local-service(僅限 Windows)服務名稱之後的
--local-service選項會導致伺服器使用具有有限系統權限的LocalServiceWindows 帳戶執行。如果在服務名稱之後同時給定--defaults-file和--local-service,它們的順序可以任意。請參閱第 2.3.3.8 節,「將 MySQL 作為 Windows 服務啟動」。 -
將預設錯誤日誌目的地設定為指定的檔案。這會影響將其輸出目的地建立在預設目的地上的日誌接收器。請參閱第 7.4.2 節,「錯誤日誌」。
如果選項未指定檔案名稱,則在 Unix 和類 Unix 系統上的預設錯誤日誌目的地是資料目錄中名為
的檔案。除非指定了主機名稱.err--pid-file選項,否則 Windows 上的預設目的地也相同。在這種情況下,檔案名稱是資料目錄中具有.err後綴的 PID 檔案基本名稱。如果選項指定檔案名稱,則預設目的地是該檔案(如果名稱沒有後綴,則會加上
.err後綴),位於資料目錄下,除非給定絕對路徑名稱來指定不同的位置。如果錯誤日誌輸出無法重新導向至錯誤日誌檔案,則會發生錯誤且啟動失敗。
在 Windows 上,如果同時給定
--console和--log-error,則--console的優先順序高於--log-error。在這種情況下,預設錯誤日誌目的地是主控台,而不是檔案。 -
命令列格式 --log-isam[=檔案名稱]類型 檔案名稱 將所有
MyISAM變更記錄到此檔案(僅在除錯MyISAM時使用)。 -
伺服器會重寫寫入一般查詢日誌、慢速查詢日誌和二進位日誌中某些陳述式的密碼,使其不會以明文形式逐字出現。若要抑制一般查詢日誌的密碼重寫,可以使用
--log-raw選項啟動伺服器。此選項可能對診斷目的很有用,以查看伺服器接收到的陳述式確切文字,但基於安全性考量,不建議在生產環境中使用。如果安裝了查詢重寫外掛程式,則
--log-raw選項會以下列方式影響陳述式記錄:如需更多資訊,請參閱第 8.1.2.3 節,「密碼與記錄」。
-
命令列格式 --log-short-format[={OFF|ON}]類型 布林值 預設值 關閉如果已啟用,則將較少資訊記錄到慢速查詢日誌。
-
命令列格式 --log-tc=檔案名稱類型 檔案名稱 預設值 tc.log記憶體對應交易協調器日誌檔的名稱(用於在停用二進位日誌時,影響多個儲存引擎的 XA 交易)。預設名稱為
tc.log。如果未給定完整路徑名稱,則檔案會在資料目錄下建立。此選項未使用。 -
命令列格式 --log-tc-size=#類型 整數 預設值 6 * 頁面大小最小值 6 * 頁面大小最大值(64 位元平台) 18446744073709551615最大值(32 位元平台) 4294967295記憶體對應交易協調器日誌的大小(以位元組為單位)。預設值和最小值是頁面大小的 6 倍,而且值必須是頁面大小的倍數。
-
命令列格式 --memlock[={OFF|ON}]類型 布林值 預設值 關閉將 mysqld 程序鎖定在記憶體中。如果您的作業系統導致 mysqld 交換到磁碟,此選項可能會有所幫助。
--memlock可在支援mlockall()系統呼叫的系統上運作;這包括 Solaris、大多數使用 2.4 或更高版本核心的 Linux 發行版,以及其他 Unix 系統。在 Linux 系統上,您可以透過檢查系統mman.h檔案中是否定義了mlockall(),來判斷是否支援mlockall()(以及此選項),如下所示:$> grep mlockall /usr/include/sys/mman.h如果支援
mlockall(),您應該會在先前命令的輸出中看到類似下列的內容:extern int mlockall (int __flags) __THROW;重要事項使用此選項可能需要您以
root身分執行伺服器,但基於安全性考量,這通常不是個好主意。請參閱第 8.1.5 節,「如何以一般使用者身分執行 MySQL」。在 Linux 和其他系統上,您可以透過變更
limits.conf檔案來避免以root身分執行伺服器的需求。請參閱第 10.12.3.3 節,「啟用大型頁面支援」中關於 memlock 限制的附註。您不得在不支援
mlockall()系統呼叫的系統上使用此選項;如果您這樣做,mysqld 很可能會在您嘗試啟動時立即結束。 -
命令列格式 --myisam-block-size=#類型 整數 預設值 1024最小值 1024最大值 16384用於
MyISAM索引頁面的區塊大小。 不讀取任何選項檔案。如果由於從選項檔案讀取未知選項而導致程式啟動失敗,則可以使用
--no-defaults來防止讀取它們。如果使用此選項,則它必須是命令列上的第一個選項。有關此選項和其他選項檔案選項的更多資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
-
命令列格式 --no-monitor[={OFF|ON}]平台特定 Windows 類型 布林值 預設值 關閉(僅限 Windows)。此選項會抑制用於實作
RESTART陳述式的分叉:分叉會讓一個程序充當另一個充當伺服器的程序的監視器。對於以此選項啟動的伺服器,RESTART只會結束,而不會重新啟動。 --performance-schema-xxx設定 Performance Schema 選項。如需詳細資訊,請參閱第 29.14 節,「Performance Schema 命令選項」。
-
命令列格式 --plugin-load=外掛程式清單類型 字串 此選項會告知伺服器在啟動時載入指定的外掛程式。如果給定多個
--plugin-load選項,則只會套用最後一個選項。可以使用--plugin-load-add選項指定要載入的其他外掛程式。選項值是以分號分隔的
plugin_library和name=plugin_library值清單。每個plugin_library都是包含外掛程式碼的程式庫檔案名稱,而每個name都是要載入的外掛程式名稱。如果外掛程式庫在沒有任何前導外掛程式名稱的情況下命名,伺服器會載入該程式庫中的所有外掛程式。使用前導外掛程式名稱,伺服器只會從程式庫中載入已命名的外掛程式。伺服器會在plugin_dir系統變數命名的目錄中尋找外掛程式庫檔案。例如,如果名為
myplug1和myplug2的外掛程式包含在myplug1.so和myplug2.so外掛程式庫檔案中,請使用此選項來執行早期外掛程式載入mysqld --plugin-load="myplug1=myplug1.so;myplug2=myplug2.so"引號會將引數值括起來,因為否則某些命令解譯器會將分號 (
;) 解譯為特殊字元。(例如,Unix Shell 會將其視為命令終止符)。每個指定的外掛程式僅針對單次 mysqld 的叫用載入。重新啟動後,除非再次使用
--plugin-load,否則不會載入外掛程式。這與INSTALL PLUGIN不同,後者會將項目新增至mysql.plugins資料表,以使外掛程式在每次伺服器正常啟動時載入。在正常啟動順序期間,伺服器會透過讀取
mysql.plugins系統資料表來判斷要載入哪些外掛程式。如果伺服器以--skip-grant-tables選項啟動,則不會載入mysql.plugins資料表中註冊的外掛程式,且無法使用這些外掛程式。--plugin-load可讓外掛程式即使在給定--skip-grant-tables的情況下也能載入。--plugin-load也可讓您載入無法在執行階段載入的外掛程式。此選項不會設定對應的系統變數。
SHOW PLUGINS的輸出提供有關已載入外掛程式的資訊。更詳細的資訊可在 Information SchemaPLUGINS資料表中找到。請參閱第 7.6.2 節,「取得伺服器外掛程式資訊」。如需外掛程式載入的其他資訊,請參閱第 7.6.1 節,「安裝和解除安裝外掛程式」。
-
命令列格式 --plugin-load-add=外掛程式清單類型 字串 此選項補充了
--plugin-load選項。--plugin-load-add會將一個或多個外掛程式新增至在啟動時要載入的外掛程式集。引數格式與--plugin-load的格式相同。--plugin-load-add可用於避免將大型外掛程式集指定為單個冗長難以處理的--plugin-load引數。可以在沒有
--plugin-load的情況下給定--plugin-load-add,但任何出現在--plugin-load之前的--plugin-load-add執行個體都無效,因為--plugin-load會重設要載入的外掛程式集。換句話說,下列選項--plugin-load=x --plugin-load-add=y與此選項等效
--plugin-load="x;y"但下列選項
--plugin-load-add=y --plugin-load=x與此選項等效
--plugin-load=x此選項不會設定對應的系統變數。
SHOW PLUGINS的輸出提供有關已載入外掛程式的資訊。更詳細的資訊可在 Information SchemaPLUGINS資料表中找到。請參閱第 7.6.2 節,「取得伺服器外掛程式資訊」。如需外掛程式載入的其他資訊,請參閱第 7.6.1 節,「安裝和解除安裝外掛程式」。
指定與伺服器外掛程式相關的選項。例如,許多儲存引擎可以建置為外掛程式,對於這類引擎,可以使用
--plugin前綴指定其選項。因此,可以將InnoDB的--innodb-file-per-table選項指定為--plugin-innodb-file-per-table。對於可以啟用或停用的布林值選項,也支援
--skip前綴和其他替代格式(請參閱第 6.2.2.4 節,「程式選項修飾詞」)。例如,--skip-plugin-innodb-file-per-table會停用innodb-file-per-table。使用
--plugin前綴的原因是,如果外掛選項與內建伺服器選項的名稱發生衝突,這樣可以明確地指定外掛選項。例如,如果外掛的作者將外掛命名為 「sql」,並實作一個 「mode」 選項,則該選項名稱可能是--sql-mode,這會與同名的內建選項發生衝突。在這種情況下,對衝突名稱的引用會解析為內建選項。為了避免歧義,使用者可以將外掛選項指定為--plugin-sql-mode。建議對外掛選項使用--plugin前綴,以避免任何歧義問題。--port=、port_num-Pport_num用於監聽 TCP/IP 連接的連接埠號碼。在 Unix 和類 Unix 系統上,除非伺服器是由
root作業系統使用者啟動,否則連接埠號碼必須為 1024 或更高。將此選項設定為 0 會使用預設值。-
命令列格式 --port-open-timeout=#類型 整數 預設值 0在某些系統上,當伺服器停止時,TCP/IP 連接埠可能不會立即可用。如果伺服器隨後快速重新啟動,它嘗試重新開啟連接埠可能會失敗。此選項表示如果伺服器無法開啟 TCP/IP 連接埠,應等待多少秒才能釋放。預設值是不等待。
列印程式名稱及其從選項檔案取得的所有選項。密碼值會被遮罩。如果使用此選項,則它必須是命令列上的第一個選項,但可以使用在
--defaults-file或--defaults-extra-file之後。有關此選項和其他選項檔案選項的更多資訊,請參閱第 6.2.2.3 節,「影響選項檔案處理的命令列選項」。
-
命令列格式 --remove [service_name]平台特定 Windows (僅限 Windows) 移除 MySQL Windows 服務。如果未給定
service_name值,則預設服務名稱為MySQL。如需更多資訊,請參閱 第 2.3.3.8 節,「以 Windows 服務方式啟動 MySQL」。 -
命令列格式 --safe-user-create[={OFF|ON}]已棄用 是 類型 布林值 預設值 關閉如果啟用此選項,則除非使用者具有
mysql.user系統資料表或該資料表中任何欄位的INSERT權限,否則使用者無法使用GRANT陳述式建立新的 MySQL 使用者。如果您希望使用者能夠建立具有該使用者有權授予的那些權限的新使用者,則應授予該使用者以下權限GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';這可確保使用者無法直接變更任何權限欄位,但必須使用
GRANT陳述式將權限授予其他使用者。 -
命令列格式 --skip-grant-tables[={OFF|ON}]類型 布林值 預設值 關閉此選項會影響伺服器啟動順序
--skip-grant-tables會導致伺服器不讀取mysql系統架構中的授權資料表,因此啟動時完全不使用權限系統。這會讓任何可以存取伺服器的人員 不受限制地存取所有資料庫。由於使用
--skip-grant-tables啟動伺服器會停用驗證檢查,因此伺服器也會在這種情況下透過啟用skip_networking來停用遠端連線。若要讓使用
--skip-grant-tables啟動的伺服器在執行階段載入授權資料表,請執行權限刷新作業,這可以透過以下方式完成在連線到伺服器後,發出 MySQL
FLUSH PRIVILEGES陳述式。從命令列執行 mysqladmin flush-privileges 或 mysqladmin reload 命令。
權限刷新也可能會在啟動後執行的其他動作中隱含發生,因此導致伺服器開始使用授權資料表。例如,如果伺服器在啟動順序期間執行升級,則伺服器會刷新權限。
--skip-grant-tables會停用失敗登入追蹤和臨時帳戶鎖定,因為這些功能取決於授權資料表。請參閱 第 8.2.15 節,「密碼管理」。--skip-grant-tables會導致伺服器不載入在資料字典或mysql系統架構中註冊的某些其他物件使用
CREATE EVENT安裝並在events資料字典資料表中註冊的排程事件。使用
INSTALL PLUGIN安裝並在mysql.plugin系統資料表中註冊的外掛。若要讓外掛即使在使用
--skip-grant-tables時也能載入,請使用--plugin-load或--plugin-load-add選項。使用
CREATE FUNCTION安裝並在mysql.func系統資料表中註冊的可載入函式。
--skip-grant-tables不會 抑制元件在啟動期間的載入。--skip-grant-tables會導致disabled_storage_engines系統變數無效。
-
命令列格式 --skip-new已棄用 是 此選項會停用(過去被認為是)新的、可能不安全的行為。它會導致這些設定:
delay_key_write=OFF、concurrent_insert=NEVER、automatic_sp_privileges=OFF。它還會導致將OPTIMIZE TABLE對應到不支援OPTIMIZE TABLE的儲存引擎的ALTER TABLE。此選項已棄用,並可能會在未來版本中移除。
-
命令列格式 --skip-show-database系統變數 skip_show_database範圍 全域 動態 否 SET_VAR提示適用否 類型 布林值 預設值 關閉此選項會設定
skip_show_database系統變數,此變數會控制誰可以被允許使用SHOW DATABASES陳述式。請參閱 第 7.1.8 節,「伺服器系統變數」。 -
命令列格式 --skip-stack-trace不要寫入堆疊追蹤。當您在偵錯工具下執行 mysqld 時,此選項很有用。在某些系統上,您還必須使用此選項才能取得核心檔案。請參閱 第 7.9 節,「偵錯 MySQL」。
-
命令列格式 --slow-start-timeout=#類型 整數 預設值 15000此選項會控制 Windows 服務控制管理員的服務啟動逾時。此值是服務控制管理員在啟動期間嘗試終止 Windows 服務之前等待的最大毫秒數。預設值為 15000 (15 秒)。如果 MySQL 服務啟動時間過長,您可能需要增加此值。值為 0 表示沒有逾時。
-
命令列格式 --socket={file_name|pipe_name}系統變數 socket範圍 全域 動態 否 SET_VAR提示適用否 類型 字串 預設值 (Windows) MySQL預設值 (其他) /tmp/mysql.sock在 Unix 上,此選項指定用於監聽本機連線的 Unix Socket 檔案。預設值為
/tmp/mysql.sock。如果給定此選項,伺服器會在資料目錄中建立檔案,除非給定絕對路徑名稱以指定不同的目錄。在 Windows 上,此選項指定在使用具名管道監聽本機連線時要使用的管道名稱。預設值為MySQL(不區分大小寫)。 --sql-mode=value[,value[,value...]]命令列格式 --sql-mode=name系統變數 sql_mode範圍 全域、工作階段 動態 是 SET_VAR提示適用是 類型 設定 預設值 ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION有效值 ALLOW_INVALID_DATESANSI_QUOTESERROR_FOR_DIVISION_BY_ZEROHIGH_NOT_PRECEDENCEIGNORE_SPACENO_AUTO_VALUE_ON_ZERONO_BACKSLASH_ESCAPESNO_DIR_IN_CREATENO_ENGINE_SUBSTITUTIONNO_UNSIGNED_SUBTRACTIONNO_ZERO_DATENO_ZERO_IN_DATEONLY_FULL_GROUP_BYPAD_CHAR_TO_FULL_LENGTHPIPES_AS_CONCATREAL_AS_FLOATSTRICT_ALL_TABLESSTRICT_TRANS_TABLESTIME_TRUNCATE_FRACTIONAL設定 SQL 模式。請參閱 第 7.1.11 節,「伺服器 SQL 模式」。
注意MySQL 安裝程式可能會在安裝過程中設定 SQL 模式。
如果 SQL 模式與預設值或您預期的不同,請檢查伺服器在啟動時讀取的選項檔案中是否有設定。
-
命令列格式 --standalone平台特定 Windows 僅適用於 Windows;指示 MySQL 伺服器不要以服務形式執行。
-
命令列格式 --super-large-pages[={OFF|ON}]平台特定 Solaris 類型 布林值 預設值 關閉MySQL 中標準的大型頁面使用嘗試使用支援的最大大小,最高可達 4MB。在 Solaris 下,「超大型頁面」功能可啟用最高達 256MB 的頁面使用。此功能適用於最新的 SPARC 平台。可以使用
--super-large-pages或--skip-super-large-pages選項啟用或停用此功能。 --symbolic-links,--skip-symbolic-links命令列格式 --symbolic-links[={OFF|ON}]已棄用 是 類型 布林值 預設值 關閉啟用或停用符號連結支援。在 Unix 上,啟用符號連結表示您可以使用
CREATE TABLE陳述式的INDEX DIRECTORY或DATA DIRECTORY選項,將MyISAM索引檔案或資料檔案連結到另一個目錄。如果您刪除或重新命名資料表,其符號連結指向的檔案也會被刪除或重新命名。請參閱第 10.12.2.2 節,「在 Unix 上使用 MyISAM 資料表的符號連結」。注意符號連結支援,以及控制它的
--symbolic-links選項已棄用;您應該預期它會在未來版本的 MySQL 中移除。此外,該選項預設為停用。相關的have_symlink系統變數也已棄用;預期它會在未來版本的 MySQL 中移除。此選項在 Windows 上沒有意義。
-
命令列格式 --sysdate-is-now[={OFF|ON}]類型 布林值 預設值 關閉預設情況下,
SYSDATE()會傳回其執行的時間,而不是其發生的陳述式開始執行的時間。這與NOW()的行為不同。此選項會使SYSDATE()成為NOW()的同義詞。有關二進位記錄和複寫的含義,請參閱第 14.7 節,「日期和時間函數」中SYSDATE()的說明,以及第 7.1.8 節,「伺服器系統變數」中SET TIMESTAMP的說明。 --tc-heuristic-recover={COMMIT|ROLLBACK}命令列格式 --tc-heuristic-recover=name類型 列舉 預設值 關閉有效值 關閉COMMITROLLBACK在手動啟發式復原中使用的決定。
如果指定了
--tc-heuristic-recover選項,則伺服器會退出,無論手動啟發式復原是否成功。在具有多個能夠進行兩階段提交的儲存引擎的系統上,
ROLLBACK選項不安全,並會導致復原停止,並出現以下錯誤[ERROR] --tc-heuristic-recover rollback strategy is not safe on systems with more than one 2-phase-commit-capable storage engine. Aborting crash recovery.-
命令列格式 --transaction-isolation=name系統變數 transaction_isolation範圍 全域、工作階段 動態 是 SET_VAR提示適用否 類型 列舉 預設值 REPEATABLE-READ有效值 READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READSERIALIZABLE設定預設的交易隔離等級。
level值可以是READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ或SERIALIZABLE。請參閱第 15.3.7 節,「SET TRANSACTION 陳述式」。預設交易隔離等級也可以使用
SET TRANSACTION陳述式或設定transaction_isolation系統變數在執行時設定。 -
命令列格式 --transaction-read-only[={OFF|ON}]系統變數 transaction_read_only範圍 全域、工作階段 動態 是 SET_VAR提示適用否 類型 布林值 預設值 關閉設定預設交易存取模式。預設情況下,唯讀模式為停用狀態,因此模式為讀取/寫入。
若要在執行時設定預設交易存取模式,請使用
SET TRANSACTION陳述式或設定transaction_read_only系統變數。請參閱第 15.3.7 節,「SET TRANSACTION 陳述式」。 --tmpdir=,dir_name-tdir_name用於建立暫存檔案的目錄路徑。如果您的預設
/tmp目錄駐留在太小而無法容納暫存表格的分割區上,這可能會很有用。此選項接受以循環方式使用的多個路徑。路徑在 Unix 上應以冒號字元 (:) 分隔,在 Windows 上應以分號字元 (;) 分隔。--tmpdir可以是非永久位置,例如基於記憶體檔案系統上的目錄或伺服器主機重新啟動時清除的目錄。如果 MySQL 伺服器充當複本,且您正在使用非永久位置來設定--tmpdir,請考慮使用replica_load_tmpdir系統變數為複本設定不同的暫存目錄。對於複本而言,用於複寫LOAD DATA陳述式的暫存檔案會儲存在此目錄中,因此,在具有永久位置的情況下,它們可以在機器重新啟動後繼續存在,儘管如果已移除暫存檔案,複寫現在可以在重新啟動後繼續。有關暫存檔案儲存位置的詳細資訊,請參閱第 B.3.3.5 節,「MySQL 儲存暫存檔案的位置」。
-
命令列格式 --upgrade=value類型 列舉 預設值 AUTO有效值 AUTONONEMINIMALFORCE此選項控制伺服器是否以及如何在啟動時執行自動升級。自動升級包含兩個步驟
步驟 1:資料字典升級。
此步驟會升級
mysql綱要中的資料字典表格。如果實際資料字典版本低於目前預期的版本,則伺服器會升級資料字典。如果無法升級,或被阻止升級,則伺服器無法執行。效能綱要和
INFORMATION_SCHEMA。
步驟 2:伺服器升級。
此步驟包含所有其他升級工作。如果現有的安裝資料具有低於伺服器預期的 MySQL 版本,則必須升級
mysql綱要中的系統表格(其餘的非資料字典表格)。sys綱要。使用者綱要。
有關升級步驟 1 和 2 的詳細資訊,請參閱第 3.4 節,「MySQL 升級程序升級的內容」。
允許以下
--upgrade選項值AUTO伺服器會自動升級它發現過期的任何內容(步驟 1 和 2)。如果未明確指定
--upgrade,這是預設動作。NONE伺服器在啟動過程中不執行任何自動升級步驟(略過步驟 1 和 2)。由於此選項值會阻止資料字典升級,如果發現資料字典過期,伺服器會退出並顯示錯誤
[ERROR] [MY-013381] [Server] Server shutting down because upgrade is required, yet prohibited by the command line option '--upgrade=NONE'. [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.MINIMAL伺服器會升級資料字典、效能綱要和
INFORMATION_SCHEMA(如果需要)(步驟 1)。請注意,在以這個選項升級後,無法啟動群組複寫,因為複寫內部所依賴的系統表格沒有更新,而且在其他領域也可能出現功能降低的情況。FORCE伺服器會升級資料字典、效能綱要和
INFORMATION_SCHEMA(如果需要)(步驟 1)。此外,伺服器會強制升級所有其他內容(步驟 2)。使用此選項預期伺服器啟動時間會更長,因為伺服器會檢查所有綱要中的所有物件。如果伺服器認為步驟 2 的動作沒有必要,則
FORCE可用於強制執行這些動作。例如,您可能認為某個系統表格遺失或已損壞,並想要強制修復。
下表總結了伺服器針對每個選項值採取的動作。
選項值 伺服器執行步驟 1 嗎? 伺服器執行步驟 2 嗎? AUTO如有必要 如有必要 NONE否 否 MINIMAL如有必要 否 FORCE如有必要 是 --user={,user_name|user_id}-u {user_name|user_id}命令列格式 --user=name類型 字串 以具有名稱
user_name或數值使用者 IDuser_id的使用者身分執行 mysqld 伺服器。(此處的「使用者」是指系統登入帳戶,而不是授權表格中列出的 MySQL 使用者。)當以
root身分啟動 mysqld 時,此選項為強制。伺服器會在啟動序列期間變更其使用者 ID,使其以該特定使用者身分執行,而不是以root身分執行。請參閱第 8.1.1 節「安全指南」。為了避免使用者在
my.cnf檔案中加入--user=root選項(導致伺服器以root身分執行)而可能造成的安全漏洞,mysqld 只會使用指定的第一個--user選項,並且在有多個--user選項時產生警告。/etc/my.cnf和$MYSQL_HOME/my.cnf中的選項會在命令列選項之前處理,因此建議您在/etc/my.cnf中放置--user選項,並指定root以外的值。/etc/my.cnf中的選項會在任何其他--user選項之前找到,這可確保伺服器以root以外的使用者身分執行,並且在找到任何其他--user選項時產生警告。-
命令列格式 --validate-config[={OFF|ON}]類型 布林值 預設值 關閉驗證伺服器啟動設定。如果沒有發現錯誤,伺服器會以結束代碼 0 終止。如果發現錯誤,伺服器會顯示診斷訊息並以結束代碼 1 終止。根據
log_error_verbosity值,也可能會顯示警告和資訊訊息,但不會立即產生驗證終止或結束代碼 1。如需更多資訊,請參閱第 7.1.3 節「伺服器設定驗證」。 --validate-user-plugins[={OFF|ON}]命令列格式 --validate-user-plugins[={OFF|ON}]類型 布林值 預設值 ON如果啟用此選項(預設值),伺服器會檢查每個使用者帳戶,並在發現會使帳戶無法使用的情況時產生警告
該帳戶需要未載入的驗證外掛程式。
該帳戶需要
sha256_password或caching_sha2_password驗證外掛程式,但伺服器啟動時未啟用該外掛程式所需的 SSL 或 RSA。
啟用
--validate-user-plugins會減慢伺服器初始化和FLUSH PRIVILEGES的速度。如果您不需要額外的檢查,可以在啟動時停用此選項,以避免效能降低。將此選項與
--help選項一起使用,以取得詳細說明。--version,-V顯示版本資訊並結束。