當您啟動 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}]類型 布林值 預設值 OFF此選項會控制是否可以載入僅具有主要函數
xxx符號的可載入函數。預設情況下,此選項為關閉,且只會載入至少有一個輔助符號的可載入函數;這可以防止嘗試從共享物件檔案中載入函數,而不是那些包含合法函數的檔案。請參閱可載入函數安全注意事項。 -
命令列格式 --ansi使用標準 (ANSI) SQL 語法,而不是 MySQL 語法。若要更精確地控制伺服器 SQL 模式,請改用
--sql-mode選項。請參閱第 1.7 節「MySQL 標準一致性」和第 7.1.11 節「伺服器 SQL 模式」。 --basedir=、dir_name-bdir_nameMySQL 安裝目錄的路徑。此選項會設定
basedir系統變數。伺服器執行檔會在啟動時判斷自己的完整路徑名稱,並使用其所在目錄的父目錄作為預設
basedir值。這反過來讓伺服器在搜尋伺服器相關資訊(例如包含錯誤訊息的share目錄)時,能夠使用該basedir。--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會優先於--log-error。 -
命令列格式 --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}]類型 布林值 預設值 OFF此選項會導致伺服器以傳統的 fork 式常駐程式執行,使其能夠與使用 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 Internals: Test Synchronization。
-
命令列格式 --default-time-zone=name類型 字串 設定預設伺服器時區。此選項會設定全域
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}]類型 布林值 預設值 OFF啟用外部鎖定(系統鎖定),預設為停用。如果您在
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}]類型 布林值 預設值 OFF為
SIGINT安裝一個中斷處理程式(需要使用^C來停止 mysqld 以設定中斷點),並停用堆疊追蹤和核心檔案處理。請參閱第 7.9.1.4 節「在 gdb 下除錯 mysqld」。在 Windows 上,此選項也會抑制用於實作
RESTART語句的分叉:分叉可讓一個處理程序充當另一個處理程序(充當伺服器)的監視器。但是,分叉會使確定要附加除錯的伺服器處理程序變得更加困難,因此使用--gdb啟動伺服器會抑制分叉。對於使用此選項啟動的伺服器,RESTART只會結束而不會重新啟動。在非除錯設定中,可以使用
--no-monitor來抑制分叉監視器處理程序。 --initialize、-I命令列格式 --initialize[={OFF|ON}]類型 布林值 預設值 OFF此選項用於初始化 MySQL 安裝,方法是建立資料目錄並在
mysql系統綱要中填入資料表。如需更多資訊,請參閱第 2.9.1 節「初始化資料目錄」。此選項會限制或與 MySQL 伺服器的許多其他啟動選項不相容。這裡會記錄一些最常見的這類問題
我們強烈建議,在使用
--initialize初始化資料目錄時,除了--datadir、用於設定目錄位置的其他選項(例如--basedir)以及可能需要的--user之外,請勿指定其他選項。可以在完成初始化並關閉 mysqld 後,在啟動時指定執行 MySQL 伺服器的選項。當使用--initialize-insecure而不是--initialize時,也適用此規則。當伺服器使用
--initialize啟動時,某些功能不可用,這會限制init_file系統變數所指定之任何檔案中允許的語句。如需更多資訊,請參閱該變數的說明。此外,disabled_storage_engines系統變數無效。與
--initialize一起使用時,會忽略--ndbcluster選項。--initialize與--bootstrap和--daemonize互斥。
前述清單中的項目也適用於使用
--initialize-insecure選項初始化伺服器時。-
命令列格式 --initialize-insecure[={OFF|ON}]類型 布林值 預設值 OFF此選項用於初始化 MySQL 安裝,方法是建立資料目錄並在
mysql系統綱要中填入資料表。此選項隱含--initialize,並且適用相同的限制;如需更多資訊,請參閱該選項的說明和第 2.9.1 節「初始化資料目錄」。警告此選項會建立一個沒有密碼的 MySQL
root使用者,這是不安全的。因此,除非手動設定此密碼,否則請勿在生產環境中使用它。請參閱「初始化後 root 密碼指派」,以了解如何執行此操作。 --innodb-xxx設定
InnoDB儲存引擎的選項。InnoDB選項列於第 17.14 節「InnoDB 啟動選項和系統變數」。-
命令列格式 --install [service_name]特定於平台的 Windows (僅限 Windows)將伺服器安裝為在 Windows 啟動期間自動啟動的 Windows 服務。如果未提供
service_name值,則預設服務名稱為MySQL。如需更多資訊,請參閱第 2.3.3.8 節「以 Windows 服務方式啟動 MySQL」。注意如果伺服器使用
--defaults-file和--install選項啟動,則--install必須是第一個。 --install-manual [service_name]命令列格式 --install-manual [service_name]特定於平台的 Windows (僅限 Windows)將伺服器安裝為必須手動啟動的 Windows 服務。它不會在 Windows 啟動期間自動啟動。如果未提供
service_name值,則預設服務名稱為MySQL。如需更多資訊,請參閱第 2.3.3.8 節「以 Windows 服務方式啟動 MySQL」。注意如果伺服器使用
--defaults-file和--install-manual選項啟動,則--install-manual必須是第一個。-
命令列格式 --large-pages[={OFF|ON}]系統變數 large_pages範圍 全域 動態 否 SET_VAR提示適用否 特定於平台的 Linux 類型 布林值 預設值 OFF某些硬體/作業系統架構支援大於預設值(通常為 4KB)的記憶體頁面。此支援的實際實作取決於基礎硬體和作業系統。執行大量記憶體存取的應用程式可能會因減少轉譯後備緩衝區 (TLB) 未命中而透過使用大型頁面獲得效能改進。
MySQL 支援 Linux 大型頁面支援實作(在 Linux 中稱為 HugeTLB)。請參閱第 10.12.3.3 節「啟用大型頁面支援」。關於 Solaris 對大型頁面的支援,請參閱
--super-large-pages選項的說明。--large-pages預設為停用。 -
命令列格式 --lc-messages=name系統變數 lc_messages範圍 全域、工作階段 動態 是 SET_VAR提示適用否 類型 字串 預設值 en_US用於錯誤訊息的地區設定。預設值為
en_US。伺服器會將引數轉換為語言名稱,並將其與--lc-messages-dir的值結合,以產生錯誤訊息檔案的位置。請參閱第 12.12 節「設定錯誤訊息語言」。 -
命令列格式 --lc-messages-dir=dir_name系統變數 lc_messages_dir範圍 全域 動態 否 SET_VAR提示適用否 類型 目錄名稱 錯誤訊息所在的目錄。伺服器會將此值與
--lc-messages的值結合,以產生錯誤訊息檔案的位置。請參閱第 12.12 節「設定錯誤訊息語言」。 -
命令列格式 --local-service(僅限 Windows)服務名稱後的
--local-service選項會使伺服器使用具有有限系統權限的LocalServiceWindows 帳戶執行。如果在服務名稱之後同時提供--defaults-file和--local-service,則它們的順序可以任意。請參閱第 2.3.3.8 節「以 Windows 服務方式啟動 MySQL」。 -
將預設錯誤記錄目的地設定為指定的檔案。這會影響將自己的輸出目的地基於預設目的地的記錄接收器。請參閱第 7.4.2 節「錯誤記錄檔」。
如果選項未指定檔案名稱,在 Unix 和類 Unix 系統上,預設的錯誤日誌目的地是資料目錄中名為
的檔案。Windows 上的預設目的地相同,除非指定了主機名稱.err--pid-file選項。在這種情況下,檔案名稱是 PID 檔案基本名稱,並在資料目錄中附加.err的後綴。如果選項指定檔案名稱,預設目的地是該檔案(如果名稱沒有後綴,則會附加
.err後綴),該檔案位於資料目錄下,除非給定絕對路徑名稱以指定不同的位置。如果無法將錯誤日誌輸出重新導向至錯誤日誌檔案,則會發生錯誤,並且啟動失敗。
在 Windows 上,如果同時給定
--console和--log-error,則--console優先。在這種情況下,預設的錯誤日誌目的地是主控台,而不是檔案。 -
命令列格式 --log-isam[=檔案名稱]類型 檔案名稱 將所有
MyISAM變更記錄到此檔案中(僅在偵錯MyISAM時使用)。 -
伺服器會重寫寫入一般查詢日誌、慢速查詢日誌和二進位日誌中某些語句的密碼,使其不會以純文字形式逐字出現。透過以
--log-raw選項啟動伺服器,可以抑制一般查詢日誌的密碼重寫。此選項可能對診斷目的有用,可以查看伺服器接收到的語句的確切文字,但基於安全考量,不建議在生產環境中使用。如果安裝了查詢重寫外掛程式,
--log-raw選項會如下影響語句記錄:如需更多資訊,請參閱 第 8.1.2.3 節,「密碼與記錄」。
-
命令列格式 --log-short-format[={OFF|ON}]類型 布林值 預設值 OFF如果已啟用,則將較少資訊記錄到慢速查詢日誌中。
-
命令列格式 --log-tc=檔案名稱類型 檔案名稱 預設值 tc.log記憶體對應的交易協調器日誌檔案名稱(適用於二進位日誌停用時,影響多個儲存引擎的 XA 交易)。預設名稱為
tc.log。如果未以完整路徑名稱給定,則該檔案會在資料目錄下建立。此選項未使用。 -
命令列格式 --log-tc-size=#類型 整數 預設值 6 * 頁面大小最小值 6 * 頁面大小最大值 (64 位元平台) 18446744073709551615最大值 (32 位元平台) 4294967295記憶體對應的交易協調器日誌的大小(以位元組為單位)。預設值和最小值為頁面大小的 6 倍,且該值必須是頁面大小的倍數。
-
命令列格式 --memlock[={OFF|ON}]類型 布林值 預設值 OFF將 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索引頁面的區塊大小。 -
命令列格式 --mysql-native-password={OFF|ON}已棄用 是 類型 布林值 預設值 OFF啟用
mysql_native_password驗證外掛程式,該外掛程式在 MySQL 8.4 中預設為停用。如需更多資訊,請參閱 第 8.4.1.1 節,「原生可插拔驗證」。
不讀取任何選項檔案。如果由於從選項檔案讀取不明選項而導致程式啟動失敗,可以使用
--no-defaults來防止讀取它們。如果使用此選項,它必須是命令列上的第一個選項。如需有關此選項和其他選項檔案選項的其他資訊,請參閱 第 6.2.2.3 節「影響選項檔案處理的命令列選項」。
-
命令列格式 --no-monitor[={OFF|ON}]特定於平台的 Windows 類型 布林值 預設值 OFF(僅限 Windows)。此選項會抑制用於實作
RESTART陳述式的 fork 操作:fork 操作使一個處理序充當另一個處理序的監視器,而另一個處理序充當伺服器。對於以此選項啟動的伺服器,RESTART只是結束,而不會重新啟動。 --performance-schema-xxx設定效能架構選項。如需詳細資訊,請參閱 第 29.14 節,「效能架構命令選項」。
-
命令列格式 --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的輸出提供有關已載入外掛程式的資訊。更詳細的資訊可以在資訊架構PLUGINS表格中找到。請參閱 第 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的輸出提供有關已載入外掛程式的資訊。更詳細的資訊可以在資訊架構PLUGINS表格中找到。請參閱 第 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}]已棄用 是 類型 布林值 預設值 OFF如果啟用此選項,使用者無法使用
GRANT陳述式建立新的 MySQL 使用者,除非該使用者在mysql.user系統資料表或該資料表中的任何欄位具有INSERT權限。如果您希望使用者能夠建立具有該使用者有權授予的權限的新使用者,您應該授予該使用者以下權限GRANT INSERT(user) ON mysql.user TO 'user_name'@'host_name';這確保使用者無法直接變更任何權限欄位,而必須使用
GRANT陳述式來授予其他使用者權限。 -
命令列格式 --skip-grant-tables[={OFF|ON}]類型 布林值 預設值 OFF此選項會影響伺服器啟動順序
--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提示適用否 類型 布林值 預設值 OFF此選項會設定
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 類型 布林值 預設值 OFFMySQL 中大型頁面的標準使用方式會嘗試使用支援的最大大小,最高可達 4MB。在 Solaris 下,「超大型頁面」功能可啟用高達 256MB 的頁面。此功能適用於最新的 SPARC 平台。可以使用
--super-large-pages或--skip-super-large-pages選項來啟用或停用此功能。 --symbolic-links,--skip-symbolic-links命令列格式 --symbolic-links[={OFF|ON}]已棄用 是 類型 布林值 預設值 OFF啟用或停用符號連結支援。在 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}]類型 布林值 預設值 OFFSYSDATE()預設會傳回它執行的時間,而不是它所在陳述式開始執行的時間。這與NOW()的行為不同。此選項會使SYSDATE()成為NOW()的同義詞。有關二進位日誌記錄和複製的含義,請參閱 第 14.7 節「日期和時間函數」中SYSDATE()的描述,以及 第 7.1.8 節「伺服器系統變數」中SET TIMESTAMP的描述。 --tc-heuristic-recover={COMMIT|ROLLBACK}命令列格式 --tc-heuristic-recover=name類型 列舉 預設值 OFF有效值 OFFCOMMITROLLBACK在手動啟發式復原中使用的決策。
如果指定了
--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提示適用否 類型 布林值 預設值 OFF設定預設交易存取模式。預設情況下,唯讀模式為停用,因此模式為讀/寫。
若要在執行階段設定預設交易存取模式,請使用
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結構描述中的資料字典表格。如果實際資料字典版本低於目前的預期版本,伺服器會升級資料字典。如果無法或被阻止執行此操作,伺服器將無法執行。Performance Schema 和
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伺服器會升級資料字典、Performance Schema 和
INFORMATION_SCHEMA(如有必要)(步驟 1)。請注意,在使用此選項進行升級後,無法啟動群組複製,因為複製內部依賴的系統表格未更新,並且在其他領域也可能出現功能減少的情況。FORCE伺服器會升級資料字典、Performance Schema 和
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中的選項會在命令列選項之前處理,因此建議您將--user選項放在/etc/my.cnf中,並指定一個非root的值。/etc/my.cnf中的選項會在任何其他--user選項之前找到,這可確保伺服器以非root的使用者身分執行,並且在找到任何其他--user選項時產生警告。-
命令列格式 --validate-config[={OFF|ON}]類型 布林值 預設值 OFF驗證伺服器啟動設定。如果沒有找到錯誤,伺服器會以結束代碼 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顯示版本資訊並結束。