文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  使用選項設定程式變數

6.2.2.5 使用選項設定程式變數

許多 MySQL 程式都有可以使用 SET 陳述式在執行時設定的內部變數。請參閱 第 15.7.6.1 節,〈SET 變數賦值語法〉第 7.1.9 節,〈使用系統變數〉

大部分這些程式變數也可以在伺服器啟動時,使用與指定程式選項相同的語法來設定。例如,mysql 有一個 max_allowed_packet 變數,用於控制其通訊緩衝區的最大大小。若要將 mysqlmax_allowed_packet 變數設定為 16MB 的值,請使用下列其中一個命令

mysql --max_allowed_packet=16777216
mysql --max_allowed_packet=16M

第一個命令以位元組指定值。第二個命令以 MB 指定值。對於採用數值的變數,可以使用 KMG 的後綴來表示 1024、10242 或 10243 的乘數。(例如,當用於設定 max_allowed_packet 時,後綴表示千位元組、MB 或 GB 的單位。)從 MySQL 8.0.14 開始,後綴也可以是 TPE,以表示 10244、10245 或 10246 的乘數。後綴字母可以是大小寫。

在選項檔案中,變數設定不包含前導破折號

[mysql]
max_allowed_packet=16777216

[mysql]
max_allowed_packet=16M

如果您願意,選項名稱中的底線可以指定為破折號。以下選項群組是等效的。兩者都會將伺服器的金鑰緩衝區大小設定為 512MB

[mysqld]
key_buffer_size=512M

[mysqld]
key-buffer-size=512M

當在程式調用時設定變數時,可以使用用於指定值乘數的後綴,但不可以使用 SET 在執行時設定值。另一方面,使用 SET,您可以使用運算式來指派變數的值,這在您於伺服器啟動時設定變數時是不正確的。例如,下列行的第一行在程式調用時是合法的,但第二行則不是

$> mysql --max_allowed_packet=16M
$> mysql --max_allowed_packet=16*1024*1024

相反地,下列行的第二行在執行時是合法的,但第一行則不是

mysql> SET GLOBAL max_allowed_packet=16M;
mysql> SET GLOBAL max_allowed_packet=16*1024*1024;