文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

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 時,後綴表示千位元組、百萬位元組或十億位元組的單位。)從 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;