設定資料庫旗標

本頁面說明如何設定 Cloud SQL 的資料庫旗標,並列出可為執行個體設定的旗標。資料庫旗標可用於多項作業,包括調整 MySQL 參數、調整選項,以及設定和調整執行個體。

在某些情況下,您可能需要設定多個旗標,才能完整啟用要使用的功能。舉例來說,如要啟用慢速查詢記錄,您必須將 slow_query_log 旗標設為 on,並將 log_output 旗標設為 FILE,才能使用 Google Cloud Logs Explorer 查看記錄。

設定、移除或修改資料庫執行個體的旗標時,資料庫可能會重新啟動。移除之前,系統都會保留執行個體的旗標值。如果執行個體是副本的來源,且執行個體重新啟動,副本也會重新啟動,以配合執行個體的目前設定。

設定資料庫旗標

以下各節將說明常見的旗標管理工作。

設定資料庫旗標

控制台

  1. 在 Google Cloud 控制台中,選取要設定資料庫旗標的 Cloud SQL 執行個體所在專案。
  2. 開啟執行個體並按一下 [編輯]。
  3. 前往「旗標」部分。
  4. 如要設定先前未在執行個體上設定的旗標,請按一下「Add item」(新增項目),從下拉式選單中選擇旗標,然後設定其值。
  5. 按一下 [儲存] 以儲存變更。
  6. 在「總覽」頁面的「標記」下方,確認您所做的變更。

gcloud

編輯執行個體:

gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2

這個指令會覆寫先前設定的所有資料庫旗標。如要保留這些旗標並新增旗標,請加入您要在執行個體上設定的所有旗標值;任何未明確加入的旗標都會設為預設值。如果旗標不接受值,請指定旗標名稱,後面加上等號 (「=」)。

舉例來說,如要設定 general_log、skip_show_database 和 wait_timeout 旗標,可以使用下列指令:

gcloud sql instances patch INSTANCE_NAME \
  --database-flags=general_log=on,skip_show_database=on,wait_timeout=200000

Terraform

如要新增資料庫旗標,請使用 Terraform 資源。

resource "google_sql_database_instance" "instance" {
  database_version = "MYSQL_8_0"
  name             = "mysql-instance"
  region           = "us-central1"
  settings {
    database_flags {
      name  = "general_log"
      value = "on"
    }
    database_flags {
      name  = "skip_show_database"
      value = "on"
    }
    database_flags {
      name  = "wait_timeout"
      value = "200000"
    }
    disk_type = "PD_SSD"
    tier      = "db-n1-standard-2"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

套用變更

如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。

準備 Cloud Shell

  1. 啟動 Cloud Shell。
  2. 設定要套用 Terraform 設定的預設 Google Cloud 專案。

    每個專案只需執行這個指令一次,而且可以在任何目錄中執行。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。

準備目錄

每個 Terraform 設定檔都必須有自己的目錄 (也稱為根模組)。

  1. 在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有 .tf 副檔名,例如 main.tf。在本教學課程中,這個檔案稱為 main.tf。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您正在進行教學課程,可以複製每個章節或步驟中的程式碼範例。

    將程式碼範例複製到新建立的 main.tf。

    您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。

  3. 請查看並修改範例參數,以便套用至您的環境。
  4. 儲存變更。
  5. 初始化 Terraform。每個目錄只需執行一次這項操作。
    terraform init

    如要使用最新版 Google 供應商,請視需要加入 -upgrade 選項:

    terraform init -upgrade

套用變更

  1. 查看設定,確認 Terraform 要建立或更新的資源符合預期:
    terraform plan

    視需要修正設定。

  2. 執行下列指令,並在提示中輸入 yes,套用 Terraform 設定:
    terraform apply

    等待 Terraform 顯示「Apply complete!」訊息。

  3. 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。

刪除變更

如要刪除變更,請按照下列步驟操作:

  1. 如要停用防刪除功能,請在 Terraform 設定檔中將 deletion_protection 引數設為 false。
    deletion_protection =  "false"
  2. 執行下列指令,並在提示中輸入 yes,套用更新後的 Terraform 設定:
    terraform apply
  1. 執行下列指令,並在提示中輸入 yes,移除先前使用 Terraform 設定套用的資源:

    terraform destroy

REST v1

如要為現有資料庫設定旗標,請按照下列步驟操作:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 要求主體:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

舉例來說,如要為現有資料庫設定 general_log 旗標,請使用:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 要求主體:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "general_log",
        "value": "on"
      }
    ]
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

如果資料庫已設定旗標,請修改先前的指令,將這些旗標納入。PATCH 指令會以要求中指定的值覆寫現有的標記。

REST v1beta4

如要為現有資料庫設定旗標,請按照下列步驟操作:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 要求主體:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

舉例來說,如要為現有資料庫設定 general_log 旗標,請使用:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 要求主體:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "general_log",
        "value": "on"
      }
    ]
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

如果資料庫已設定旗標,請修改先前的指令,將這些旗標納入。PATCH 指令會以要求中指定的值覆寫現有的標記。

將所有旗標清除並還原為預設值

控制台

  1. 在Google Cloud 控制台中,選取要清除所有旗標的 Cloud SQL 執行個體所在專案。
  2. 開啟執行個體並按一下 [編輯]。
  3. 開啟「資料庫旗標」專區。
  4. 按一下畫面上所有顯示標記旁的 [X]。
  5. 按一下 [儲存] 以儲存變更。

gcloud

清除執行個體中所有標記並轉為預設值:

gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags

系統會提示您將重新啟動執行個體。

REST v1

清除現有執行個體的所有標記:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 要求主體:

{
  "settings":
  {
    "databaseFlags": []
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

REST v1beta4

清除現有執行個體的所有標記:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 要求主體:

{
  "settings":
  {
    "databaseFlags": []
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

查看資料庫旗標的目前值

如要查看 MySQL 系統變數的所有目前值,請使用 mysql 用戶端登入執行個體,然後輸入下列陳述式:

 SHOW VARIABLES;

請注意,您只能變更支援標記的值 (如下所示)。

判斷已為執行個體設定哪些資料庫旗標

如要查看 Cloud SQL 執行個體設定了哪些旗標,請按照下列步驟操作:

控制台

  1. 在 Google Cloud 控制台中,選取包含 Cloud SQL 執行個體的專案,查看已設定的資料庫旗標。
  2. 選取執行個體,開啟「Instance Overview」(執行個體總覽) 頁面。

    已設定的資料庫旗標會列在「Database flags」(資料庫旗標) 專區下方。

gcloud

取得執行個體狀態:

gcloud sql instances describe INSTANCE_NAME

在輸出內容中,資料庫旗標會列在 settings 下方,做為 databaseFlags 集合。如要進一步瞭解輸出內容中的旗標表示法,請參閱「執行個體資源表示法」。

REST v1

列出已針對執行個體設定的標記:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

在輸出內容中,尋找 databaseFlags 欄位。

REST v1beta4

列出已針對執行個體設定的標記:

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:執行個體 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

在輸出內容中,尋找 databaseFlags 欄位。

由 Cloud SQL 管理的旗標

Cloud SQL 會根據執行個體機型調整特定系統旗標。

innodb_buffer_pool_instances
  • db-f1-micro 和 db-g1-small 為 1。
  • 如果 RAM < 7.5 GB,則為 1。
  • 2 (如果 7.5 GB <= RAM < 13 GB)。
  • 4 (如果 13 GB <= RAM < 26 GB)。
  • 如果 RAM >= 26 GB,則為 8。

支援的標記

Cloud SQL 支援的旗標是 MySQL 最常要求的旗標。不支援本節未提及的旗標。

對於特定旗標,Cloud SQL 支援的值或範圍可能與對應的 MySQL 參數或選項不同。

除非另外註明,否則標記適用於 Cloud SQL 支援的所有 MySQL 版本。

A | B | C | D | E | F | G | H | I | L | M | N | O | P | Q | R | S | T | U | W

Cloud SQL 標記 類型
可接受的值和附註
是否需要
重新啟動?
activate_all_roles_on_login boolean
on | off
預設值:off
否
activate_mandatory_roles boolean
on | off
預設值:on
否
autocommit boolean
on | off
預設:on
否
auto_increment_increment integer
1 ... 65535
否
auto_increment_offset integer
1 ... 65535
否
automatic_sp_privileges boolean
on | off
預設:on
否
back_log integer
1 ... 65535
預設值:max_connections
MySQL 8.4 以下版本:4000
MySQL 9.7 以上版本:10000
是
binlog_cache_size integer
4096 ... 9223372036854775807
否
binlog_expire_logs_seconds integer
0 或 86400 (1 day) ... 4294967295 (max value)
預設值為 86400,相當於 1 天。

如要進一步瞭解此標記,請參閱提示一節。

否
binlog_group_commit_sync_delay 0 ... 1000000

支援 MySQL 5.7 以上版本

預設值為 0。

否
binlog_group_commit_sync_no_delay_count 0 ... 1000000

支援 MySQL 5.7 以上版本

預設值為 0。

否
binlog_gtid_simple_recovery boolean
on | off
預設:on
是
binlog_order_commits boolean
on | off
預設:on

如要進一步瞭解此標記,請參閱提示一節。

否
binlog_row_image enumeration
full (預設)、minimal 或 noblob
否
binlog_row_metadata enumeration
full 或 minimal (預設)
否
binlog_row_value_options string
PARTIAL_JSON
否
binlog_rows_query_log_events boolean
on | off
預設:off
否
binlog_stmt_cache_size 4096 ... 9223372036854775807 否
binlog_transaction_compression boolean
on | off
預設:off

對 binlog_transaction_compression 的變更只會在下一個 START REPLICA 陳述式之後生效。

否
binlog_transaction_compression_level_zstd integer
1 ... 22
default: 3

對 binlog_transaction_compression_level_zstd 的變更只會在下一個 START REPLICA 陳述式之後生效。

否
binlog_transaction_dependency_history_size integer
1 ... 10000000 預設值:
- MySQL 8.4 以下版本:25000
- MySQL 9.7 以上版本:10000000

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
binlog_transaction_dependency_tracking enumeration

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。MySQL 8.4 以上版本不支援這個旗標。

否
block_encryption_mode string
aes-keylen-mode
default: aes-128-ECB
否
bulk_insert_buffer_size integer
0 ... 4294967295
default: 8388608
否
caching_sha2_password_storage_format string
CRYPT5 | PBKDF2_SHA512
default: CRYPT5
否
caching_sha2_password_enforce_storage_format boolean
1 (true) | 0 (false)
預設值:0 (false)
否
caching_sha2_password_proxy_users boolean
on | off
預設:OFF

如要進一步瞭解這個標記,請參閱「提示」一節。

否
collation_connection string
預設值:
MySQL 8.0 以上版本 - utf8mb4_0900_ai_ci

如要進一步瞭解此標記,請參閱提示一節。

否
collation_server string
預設值:
MySQL 5.7 - utf8_general_ci
MySQL 8.0 以上版本 - utf8mb4_0900_ai_ci
否
character_set_client string

預設:
MySQL 5.7:utf8
MySQL 8.0 以上版本:utf8mb4

如要進一步瞭解此標記,請參閱提示一節。

否
character_set_connection string
預設:
MySQL 5.7:utf8
MySQL 8.0 以上版本:utf8mb4

如要進一步瞭解此標記,請參閱提示一節。

否
character_set_results string
utf8 或 utf8mb4
預設值:
MySQL 5.7:utf8
MySQL 8.0 以上版本:utf8mb4

如要進一步瞭解此標記,請參閱提示一節。

否
character_set_server string
utf8 或 utf8mb4 (建議)
是
check_proxy_users boolean
on | off
預設:off
否
cloudsql_allow_analyze_table boolean on | off
預設值:off
否
cloudsql_avoid_parse_session_logging boolean on | off
預設:off
否
cloudsql_iam_authentication boolean on | off
預設值:off
適用於 MySQL 5.7 以上版本的 Cloud SQL。
否
cloudsql_ignore_innodb_encryption boolean on | off
預設值:off
否
cloudsql_index_recreate_enable boolean
on | off
預設:on
否
cloudsql_index_recreate_replica_group string
預設:NULL
否
cloudsql_mysql_audit_data_masking_cmds string
""、dql、dml、ddl、dcl、show、call、create_udf、drop_function、create_procedure、create_function、drop_procedure、alter_procedure、alter_function、create_trigger、drop_trigger、create_event、alter_event、drop_event、create_db、drop_db、alter_db、create_user、drop_user、rename_user、alter_user、create_table、create_index、alter_table、drop_table、drop_index、create_view、drop_view、rename_table、update、insert、insert_select、delete、truncate、replace、replace_select、delete_multi、update_multi、load、select、call_procedure、connect、disconnect、grant、revoke、revoke_all、show_triggers、show_create_proc、show_create_func、show_procedure_code、show_function_code、show_create_event、show_events、show_create_trigger、show_grants、show_binlog_events、show_relaylog_events

預設值:create_user、alter_user、grant 和 update
否
cloudsql_mysql_audit_data_masking_regex string
max_string_length: 2048
預設:請參閱「稽核外掛程式設定」。
否
cloudsql_mysql_audit_log_write_period integer
0...5000 毫秒
預設值:500 毫秒
否
cloudsql_mysql_audit_max_query_length integer
-1...1073741824
預設:-1
否
cloudsql_parameterized_secure_view boolean
on | off
預設值:off
否
cloudsql_vector boolean on | off
預設值:off
是
cloudsql_vector_iterative_filtering boolean

預設值:off
否
cloudsql_vector_iterative_filtering_max_neighbors integer
10...1000
預設值:500
否
cloudsql_vector_max_mem_size integer
1073741824...innodb_buffer_pool_size/2
預設值:1073741824 (以位元組為單位)
是
completion_type enumeration
NO_CHAIN (預設)、CHAIN 或 RELEASE
否
concurrent_insert enumeration
NEVER、AUTO (預設) 或 ALWAYS
否
connect_timeout integer
2 ... 31536000
default: 10
否
connection_memory_chunk_size integer
0 ... 536870912
預設值:
MySQL 8.0.28 至 8.0.33:8912
MySQL 8.0.34 以上版本:8192
否
connection_memory_limit integer
2097152 ... 9223372036854775807
否
connection_memory_status_limit integer
16777216 ... 9223372036854775807
預設值:9223372036854775807
否
cte_max_recursion_depth integer
0 ... 4294967295
default: 1000
否
default_authentication_plugin string
mysql_native_password|caching_sha2_password
是
default_password_lifetime integer 0...65535
預設值:0
否
default_time_zone string
指定時區的方式有兩種:時區偏移和時區名稱。舉例來說,+00:00 是倫敦 (位於世界標準時間時區) 的時區偏移,Europe/London 則是時區名稱。

您可以使用值來指定時區偏移量,範圍從 -12:59 到 +13:00。開頭必須加上零。

使用時區名稱時,系統會自動調整為日光節約時間。使用時區偏移時,系統不支援這項功能。 查看 MySQL 適用的 Cloud SQL 支援的時區名稱清單。您必須在主要執行個體和所有唯讀副本上手動更新這個旗標,才能將其納入考量。

如要設定時區,且不重新啟動 Cloud SQL 執行個體,請使用 set time_zone=timezone_offset 或 timezone_name 指令,並加上 init_connect 旗標。

是
default_tmp_storage_engine string
INNODB|MEMORY
預設:INNODB
否
default_week_format integer
0 ... 7
default: 0
否
delay_key_write enumeration
OFF、ON (預設) 或 ALL
否
disconnect_on_expired_password boolean on | off
預設值:on
是
div_precision_increment integer
0 ... 30
default: 4
否
end_markers_in_json boolean
on | off
預設:off
否
eq_range_index_dive_limit integer
0 ... 2147483647
否
event_scheduler boolean
on | off

如果您使用事件排程器,請將執行個體的 啟用政策設為「ALWAYS」,確保排定的事件會執行。

如要進一步瞭解這個旗標,請參閱「提示」一節。

否
expire_logs_days integer
0 ... 99
預設值為 0,表示不會自動移除。

注意:MySQL 8.4 不支援這個旗標。 請改用 binlog_expire_logs_seconds。如要進一步瞭解這個旗標,請參閱「提示」一節。

否
explicit_defaults_for_timestamp boolean
on | off

否
flush_time integer
0 ... 31536000
default: 0
否
foreign_key_checks boolean
on | off
預設:on

如要進一步瞭解此標記,請參閱提示一節。

否
ft_max_word_len integer
10 ... 252
是
ft_min_word_len integer
1 ... 16
是
ft_query_expansion_limit integer
0 ... 1000
是
ft_stopword_file string
是
general_log boolean
on | off

如要進一步瞭解一般記錄,請參閱提示一節。

否
generated_random_password_length integer 5-255
預設值:20
否
global_connection_memory_limit integer
16777216 ... 9223372036854775807
否
global_connection_memory_status_limit integer
16777216 ... 9223372036854775807
預設值:9223372036854775807
否
global_connection_memory_tracking boolean
on | off
預設值:off
否
group_concat_max_len integer
4 ... 17179869184
否
gtid_executed_compression_period integer
0 ... 4294967295
預設 (8.0.22 以下版本):1000
預設 (8.0.23 以上版本):0
否
histogram_generation_max_mem_size integer
1000000 ... 4294967295
default: 20000000
否
init_connect string 否
innodb_adaptive_hash_index boolean
on | off
否
innodb_adaptive_hash_index_parts integer
1 ... 512
是
innodb_adaptive_max_sleep_delay integer
0 ... 1000000
否
innodb_autoextend_increment integer
1 ... 1000
否
innodb_autoinc_lock_mode integer
0 ... 2
是
innodb_buffer_pool_chunk_size integer
1048576 ... (innodb_buffer_pool_size/innodb_buffer_pool_instances)

這個旗標值取決於 innodb_buffer_pool_size 和 innodb_buffer_pool_instances。MySQL 可以根據這兩個旗標,自動調整 innodb_buffer_pool_chunk_size 的值。

是
innodb_buffer_pool_dump_pct integer
1 ... 100
預設值:25
否
innodb_buffer_pool_dump_at_shutdown boolean
on | off
否
innodb_buffer_pool_dump_now boolean
on | off

如要進一步瞭解這個旗標,請參閱「提示」一節。

否
innodb_buffer_pool_instances integer
1 ... 64
是
innodb_buffer_pool_load_abort boolean
on | off

如要進一步瞭解這個旗標,請參閱「提示」一節。

否
innodb_buffer_pool_load_at_startup boolean
on | off
是
innodb_buffer_pool_load_now boolean
on | off

如要進一步瞭解這個旗標,請參閱「提示」一節。

否
innodb_buffer_pool_size integer

如要為 MySQL 5.6 設定這個旗標,必須重新啟動。如要進一步瞭解這個旗標,請參閱「提示」一節。

否
innodb_change_buffer_max_size integer
0 ... 50
預設值:
- MySQL 8.4 以下版本:25
- MySQL 9.7 以上版本:5
否
innodb_change_buffering string

選項:none、inserts、deletes、changes、purges、all。

預設值:
- MySQL 8.0 以下版本:none
- MySQL 8.4 以上版本:all
否
innodb_checksum_algorithm string

選項:crc32、strict_crc32、innodb、strict_innod、none、strict_none。

否
innodb_cloudsql_managed_buffer_pool boolean
on | off
預設值:off
否
innodb_cloudsql_managed_buffer_pool_threshold_pct integer
50 ... 99
執行個體 RAM 範圍預設
< 3 GB RAM不適用 (不支援共用核心)
3-8 GB RAM90
8-15 GB RAM92
15 至 100 GB RAM95
> 100 GB RAM97
否
innodb_cloudsql_managed_buffer_pool_tuneup_pct integer
48 ... 97
預設:70

這個旗標的值必須比 innodb_cloudsql_managed_buffer_pool_threshold_pct 的值至少小 2。

否
innodb_cloudsql_optimized_write boolean

這個旗標僅適用於 Cloud SQL Enterprise Plus 版本的執行個體。 如要進一步瞭解這個旗標,請參閱「提示」一節。

是
innodb_cmp_per_index_enabled boolean
on | off
否
innodb_commit_concurrency integer
0 ... 1000
是
innodb_compression_failure_threshold_pct integer
0 ... 100
否
innodb_compression_level integer
0 ... 9
否
innodb_compression_pad_pct_max integer
0 ... 75
否
innodb_concurrency_tickets integer
1 ... 4294967295
否
innodb_ddl_buffer_size integer
65536 ... 4294967295
預設值:1048576
否
innodb_ddl_threads integer
1 ... 64
default: 4
否
innodb_deadlock_detect boolean
on | off

支援 MySQL 5.7 以上版本。

預設:on

否
innodb_disable_sort_file_cache boolean
on | off
否
innodb_doublewrite_batch_size integer
0 ... 256
預設值:0
是
innodb_doublewrite_files integer
2 ... 128
是
innodb_doublewrite_pages integer
4 ... 512
預設值:64
是
innodb_file_per_table boolean
on | off

如要進一步瞭解此標記,請參閱提示一節。

否
innodb_fill_factor integer
10 ... 100
否
innodb_flush_log_at_timeout double
0.0001... 2700
預設值:1

支援 MySQL 5.7 以上版本。

如要進一步瞭解此標記,請參閱提示一節。

否
innodb_flush_log_at_trx_commit integer
0, 1, 2
預設值:1

如果您在啟用這個旗標的情況下提升副本,系統會自動移除旗標,使提升的副本預設具有完整耐用性。如要將這個旗標與升級後的副本搭配使用,可以在升級後更新副本的旗標。

詳情請參閱「提示」一節。

否
innodb_flush_method string

選項:fsync、O_DIRECT、O_DSYNC

預設:O_DIRECT
是
innodb_flush_neighbors enumeration
0 ... 2
預設值:
- MySQL 5.6:0
- MySQL 5.7 至 MySQL 8.0:2
- MySQL 8.4 以上版本:0
否
innodb_flush_sync boolean
on | off
否
innodb_flushing_avg_loops integer
1 ... 1000
預設值:30
否
innodb_fsync_threshold integer
0 ... 9223372036854775807
預設值:0
否
innodb_ft_aux_table string

如要進一步瞭解此標記,請參閱提示一節。

是
innodb_ft_cache_size integer
1600000 ... 80000000
是
innodb_ft_enable_diag_print boolean
on | off
否
innodb_ft_enable_stopword boolean
on | off
否
innodb_ft_max_token_size integer
10 ... 252
是
innodb_ft_min_token_size integer
0 ... 16
是
innodb_ft_num_word_optimize integer
1000 ... 10000
否
innodb_ft_result_cache_limit integer
1000000 ... 4294967295
否
innodb_ft_server_stopword_table string 否
innodb_ft_sort_pll_degree integer
1 ... 32
是
innodb_ft_total_cache_size integer
32000000 ... 1600000000
是
innodb_ft_user_stopword_table string 否
innodb_idle_flush_pct integer
0 ... 100
預設值:100
否
innodb_io_capacity integer
100 ... 100000
預設:5000

如要進一步瞭解如何設定磁碟效能,請參閱「設定磁碟以符合效能需求」中的 E2 VM 表格。

否
innodb_io_capacity_max integer
100 ... 100000
預設:10000

如要進一步瞭解如何設定磁碟效能,請參閱「設定磁碟以符合效能需求」中的 E2 VM 表格。

否
innodb_large_prefix boolean
on | off

僅適用於 MySQL 5.6。

否
innodb_lock_wait_timeout integer
1 ... 1073741824
否
innodb_log_buffer_size integer
262144 ... 4294967295
是
innodb_log_checksums boolean
on | off
預設:on
否
innodb_log_file_size integer
- MySQL 5.6:1048576 ... 274877906944
- MySQL 5.7 至 8.4:4194304 ... 274877906944
- MySQL 9.7:已從資料庫中移除

如要進一步瞭解這個標記,請參閱「提示」一節。

是
innodb_log_spin_cpu_abs_lwm integer
0 ... 4294967295
default: 80
否
innodb_log_spin_cpu_pct_hwm integer
0 ... 100
default: 50
否
innodb_log_wait_for_flush_spin_hwm integer
0 ... 4294967295
default: 400
否
innodb_log_write_ahead_size integer
512 ... 65536
default: 8192
否
innodb_lru_scan_depth integer
100 ... 9223372036854775807
否
innodb_max_dirty_pages_pct float
0 ... 99.99
default: 90
否
innodb_max_dirty_pages_pct_lwm float
0 ... 99.99
default: 10
否
innodb_max_purge_lag integer
0 ... 4294967295
default: 0
否
innodb_max_undo_log_size integer
10485760 ... 9223372036854775807
default: 1073741824
否
innodb_max_purge_lag_delay integer
0 ... 10000000
default: 0
否
innodb_monitor_disable string 否
innodb_monitor_enable string 否
innodb_monitor_reset string
counter、module、pattern、all
否
innodb_monitor_reset_all enumeration
有效值:counter、module、pattern、all
否
innodb_native_foreign_keys boolean
on | off
default: off
否
innodb_old_blocks_pct integer
5 ... 95
否
innodb_old_blocks_time integer
0 ... 4294967295
否
innodb_online_alter_log_max_size integer
65536 ... 9223372036854775807
否
innodb_open_files integer
100 ... 2147483647
預設值:
MySQL 5.7:2000
MySQL 8.0 以上版本:4000
≥ 8.0.28:否
≤ 8.0.27:是
innodb_optimize_fulltext_only boolean
on | off
否
innodb_page_cleaners integer
1 ... 64
支援 MySQL 5.7 以上版本。 MySQL 5.7 和 8.0 的預設值為 4。MySQL 8.4 的預設值等於 innodb_buffer_pool_instances 旗標設定的值。
是
innodb_parallel_read_threads integer
1 ... 256
default: 4
否
innodb_print_all_deadlocks boolean
on | off
預設:off
否
innodb_print_ddl_logs boolean
on | off
否
innodb_purge_batch_size integer
1 ... 5000
default: 300
否
innodb_purge_rseg_truncate_frequency integer
1 ... 128
default: 128
否
innodb_purge_threads integer
1 ... 32
預設值:
- MySQL 5.6: 1
- MySQL 5.7 以上版本: 4
是
innodb_random_read_ahead boolean
on | off
否
innodb_read_ahead_threshold integer
0 ... 64
否
innodb_read_io_threads integer
1 ... 64
是
innodb_redo_log_capacity integer
- MySQL 8.0.33 以下版本:8388608 (8 MB) 至 137438953472 (128 GB)
- MySQL 8.0.34 以上版本:8388608 (8 MB) 至 549755813888 (512 GB)

如要進一步瞭解這個標記,請參閱「提示」一節。

否
innodb_replication_delay integer
0 ... 4294967295
否
innodb_rollback_on_timeout boolean
on | off
是
innodb_rollback_segments integer
1 ... 128
否
innodb_segment_reserve_factor float
.03 ... 40
default: 12.5
否
innodb_sort_buffer_size integer
65536 ... 67108864
是
innodb_spin_wait_delay integer
- MySQL 5.7:0 ... 1000000
- MySQL 8.0.13+:0 ... 1000
預設值:6
否
innodb_stats_auto_recalc boolean
on | off
否
innodb_stats_include_delete_marked boolean
on | off
預設:off
否
innodb_stats_method enumeration
nulls_equal | nulls_unequal | nulls_ignored
否
innodb_stats_on_metadata boolean
on | off
否
innodb_stats_persistent boolean
on | off
否
innodb_stats_persistent_sample_pages integer
1 ... 9223372036854775807
否
innodb_stats_sample_pages integer
1 ... 9223372036854775807
否
innodb_stats_transient_sample_pages integer
1 ... 9223372036854775807
否
innodb_status_output boolean
on | off
否
innodb_status_output_locks boolean
on | off
否
innodb_strict_mode boolean
on | off
否
innodb_sync_array_size 1 ... 1024

預設值為 1。

是
innodb_sync_spin_loops integer
0 ... 4294967295
default: 30
否
innodb_table_locks boolean
on | off
預設:on
否
innodb_thread_concurrency integer
0 ... 1000
否
innodb_thread_sleep_delay integer
0 ... 1000000
否
innodb_undo_log_truncate boolean
on | off
預設:on
否
innodb_use_native_aio boolean
on | off
預設:on
是
innodb_write_io_threads integer
1 ... 64
是
interactive_timeout integer
1 ... 31536000
否
internal_tmp_disk_storage_engine enumeration
INNODB | MYISAM
預設值:INNODB
否
internal_tmp_mem_storage_engine enumeration
MEMORY、TempTable
。
否
join_buffer_size integer
128 ... 9223372036854775807
否
keep_files_on_create boolean
on | off
預設:off
否
key_buffer_size integer
4096 ... 4294967295
default: 8388608
否
key_cache_age_threshold integer
100 ... 9223372036854775807
default: 300
否
key_cache_block_size integer
512 ... 16384
default: 1024
否
key_cache_division_limit integer
1 ... 100
default: 100
否
lc_times_names string
en_US | cs_CZ | da_DK | nl_NL | et_EE | fr_FR | de_DE | el_GR | hu_HU | it_IT | ja_JP | ko_KR | no_NO | nb_NO | pl_PL | pt_PT | ro_RO | ru_RU | sr_RS | sk_SK | es_ES | sv_SE | uk_UA
預設:en_US
否
local_infile boolean
on | off
否
lock_wait_timeout integer
1 ... 31536000
否
log_bin_trust_function_creators boolean
on | off
否
log_output set
FILE | TABLE | NONE
否
log_error_verbosity integer
1 ... 3
預設值:
MySQL 5.7:3
MySQL 8.0 以上版本:2
否
log_queries_not_using_indexes boolean
on | off
否
log_slow_admin_statements boolean
on | off
預設:off
否
log_slow_extra boolean
on | off
預設:off
否
log_slow_replica_statements boolean
on | off 預設:off
否
log_slow_slave_statements boolean
on | off 預設值:off
否
log_throttle_queries_not_using_indexes integer
0 ... 9223372036854775807
否
log_timestamps string
"UTC | SYSTEM"
default: UTC
否
long_query_time float
0 ... 30000000

如有需要,Cloud SQL 可讓使用者將此標記設定為小於 1。

如果 log_queries_not_using_indexes 旗標也已啟用,您可能會看到執行時間少於此處指定時間的查詢。

否
lower_case_table_names 5.7 | 8.0 integer
0 或 1
預設值:0

如果這個旗標使用預設值 0,資料表和資料庫名稱會區分大小寫。設為 1 時,資料表和資料庫名稱不區分大小寫。

如果是 MySQL 5.7 執行個體,您隨時可以變更這個旗標的值。如果這麼做,請務必瞭解這項變更對現有資料表和資料庫的影響。

如為 MySQL 8.0 以上版本的執行個體,您只能在建立執行個體時,將這個旗標的值設為所需的值。設定後即無法變更。此外,您無法變更現有執行個體的這個旗標值。

為 MySQL 5.7、MySQL 8.0 或 MySQL 8.4 執行個體建立唯讀副本時,副本會沿用主要執行個體的這項旗標值。

是
mandatory_roles string role name
預設值:empty string
否
master_verify_checksum boolean
on | off 預設值:off
否
max_allowed_packet integer
16384 ... 1073741824

如果 sql_mode=TRADITIONAL 或 sql_mode=STRICT_ALL_TABLES,這個值必須是 1024 的倍數。

否
max_binlog_cache_size integer
4096 ... 4294967296
default: 4294967296
否
max_binlog_size integer
4096 ... 1073741824
否
max_binlog_stmt_cache_size integer
4096 ... 4294967296
default: 4294967296
否
max_connect_errors integer
1 ... 9223372036854775807
default: 100
否
max_connections integer
1 ... 100000
否
max_digest_length integer
0 ... 1048576
是
max_error_count integer
0 ... 65535
預設值:
- MySQL 5.7 以下版本:64
- MySQL 8.0 以上版本:1024
否
max_execution_time integer
0 ... 9223372036854775807
否
max_heap_table_size integer
16384 ... 67108864

如要進一步瞭解此標記,請參閱提示一節。

否
max_join_size integer
16 ... 9223372036854775807
否
max_length_for_sort_data integer
4 ... 8388608
否
max_points_in_geometry integer
3 ... 1048576
否
max_prepared_stmt_count integer
0 ... 1048576
否
max_seeks_for_key integer
1 ... 9223372036854775807
否
max_sort_length integer
4 ... 8388608
否
max_sp_recursion_depth integer
0 ... 255
否
max_user_connections integer
0 ... 4294967295
否
max_write_lock_count integer
1 ... 9223372036854775807
否
min_examined_row_limit integer
0 ... 4294967295
default: 0
否
myisam_data_pointer_size integer
2...7
預設:6
否
myisam_max_sort_file_size integer
0...9223372036853727232
預設:9223372036853727232
否
myisam_mmap_size integer
7...9223372036854775807
預設:9223372036854775807
是
myisam_sort_buffer_size integer
4096...4294967295
預設:8388608
否
myisam_stats_method string
"nulls_unequal, nulls_equal, nulls_ignored"
default: nulls_unequal
否
myisam_use_mmap boolean
on | off
預設:off
否
mysql_native_password_proxy_users boolean
on | off
預設:off
否
net_buffer_length integer
1024 ... 1048576
default: 16384
否
net_read_timeout integer
30 ... 4294967295
否
net_retry_count integer
10 ... 4294967295
否
net_write_timeout integer
60 ... 4294967295
否
ngram_token_size integer
1 ... 10
default: 2
是
optimizer_prune_level integer
0 ... 1
否
optimizer_search_depth integer
0 ... 62
否
optimizer_switch multi-value repeated string

如要進一步瞭解多值旗標,請參閱「提示」一節。

否
optimizer_trace multi-value repeated string
enabled=on、enabled=off、one_line=on、one_line=off

如要進一步瞭解多值旗標,請參閱「提示」一節。

否
optimizer_trace_features multi-value repeated string

如要進一步瞭解多值旗標,請參閱「提示」一節。

否
optimizer_trace_max_mem_size integer
0 ... 9223372036854775807
否
optimizer_trace_offset integer
-9223372036854775808 ... 9223372036854775807
否
parser_max_mem_size integer
10000000 ... 9223372036854775807
否
password_history integer 0-4294967295
預設值:0
否
password_require_current boolean on | off
預設值:off
否
password_reuse_interval integer 0-4294967295
預設值:0
否
performance_schema boolean
on | off
預設值:off (適用於 MySQL 5.6、5.7)
預設值:off (適用於 MySQL 8.0 以上版本,且 RAM 小於 12 GB 的執行個體)
預設值:on (適用於 MySQL 8.0 以上版本,且 RAM 大於或等於 12 GB 的執行個體)

如要進一步瞭解 performance_schema 標記,請參閱「提示」一節。

是
performance_schema_accounts_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 標記,請參閱「提示」一節。

是
performance_schema_digests_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 標記,請參閱「提示」一節。

是
performance_schema_error_size integer
0 ... 1048576
是
performance_schema_events_stages_history_long_size integer
-1 ... 1048576
是
performance_schema_events_stages_history_size integer
-1 ... 1024

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_events_statements_history_long_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_events_statements_history_size integer
-1 ... 1024

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_events_transactions_history_long_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_events_transactions_history_size integer
-1 ... 1024

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_events_waits_history_long_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_events_waits_history_size integer
-1 ... 1024

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_hosts_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_cond_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_cond_instances integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_digest_length integer
0 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_digest_sample_age integer
0 ... 1048576
default: 60
否
performance_schema_max_file_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_file_handles integer
0 ... 1048576

如要進一步瞭解 pperformance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_file_instances integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_index_stat integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_logger_classes integer
0 ... 200
default: 80

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_memory_classes integer
0 ... 1024

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_metadata_locks integer
-1 ... 104857600

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_mutex_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_mutex_instances integer
-1 ... 104857600

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_prepared_statements_instances integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_program_instances integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_rwlock_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_rwlock_instances integer
-1 ... 104857600

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_socket_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_socket_instances integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_sql_text_length integer
0 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_stage_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_statement_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_statement_stack integer
1 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_table_handles integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_table_instances integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_table_lock_stat integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_thread_classes integer
0 ... 256

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_max_thread_instances integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_session_connect_attrs_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_setup_actors_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_setup_objects_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
performance_schema_show_processlist boolean
on | off
預設值:off
否
performance_schema_users_size integer
-1 ... 1048576

如要進一步瞭解 performance_schema 旗標,請參閱「提示」一節。

是
preload_buffer_size integer
1024 ... 1073741824
default: 32768
否
query_alloc_block_size integer
1024 ... 4294967295
否
query_cache_limit integer
0 ... 223338299392

這項旗標不適用於 MySQL 8.0 以上版本,因為查詢快取已在 MySQL 5.7.20 中淘汰,並在 MySQL 8.0 中移除。

否
query_cache_min_res_unit integer
0 ... 9223372036854775807

這項旗標不適用於 MySQL 8.0 以上版本,因為查詢快取已在 MySQL 5.7.20 中淘汰,並在 MySQL 8.0 中移除。

否
query_cache_size integer
0 ... 223338299392

這項旗標不適用於 MySQL 8.0 以上版本,因為查詢快取已在 MySQL 5.7.20 中淘汰,並在 MySQL 8.0 中移除。

否
query_cache_type enumeration
0 ... 2

這項旗標不適用於 MySQL 8.0 以上版本,因為查詢快取已在 MySQL 5.7.20 中淘汰,並在 MySQL 8.0 中移除。

是
query_cache_wlock_invalidate boolean
on | off

這項旗標不適用於 MySQL 8.0 以上版本,因為查詢快取已在 MySQL 5.7.20 中淘汰,並在 MySQL 8.0 中移除。

否
query_prealloc_size integer
8192 ... 9223372036854775807
否
range_alloc_block_size integer
4096 ... 4294967295
否
range_optimizer_max_mem_size integer
0 ... 9223372036854775807
否
read_buffer_size integer
8192 ... 2147483647
否
read_only boolean
on | off

對備用資源沒有影響。

否
read_rnd_buffer_size integer
1 ... 2147483647
否
regexp_stack_limit integer
0 ... 2147483647
否
regexp_time_limit integer
0 ... 2147483647
default: 32
否
replica_checkpoint_group integer
32 ... 524280
預設值為 512。

這個旗標不會影響未啟用多執行緒的副本。

否
replica_checkpoint_period integer
1 ... 4294967295
預設值為 300。

單位為毫秒。

否
replica_compressed_protocol boolean
on | off
否
replica_net_timeout integer
1 ... 31536000

單位為秒。

否
replica_parallel_type enumeration
DATABASE、LOGICAL_CLOCK
預設值:
MySQL 8.0.26 以下版本:DATABASE
MySQL 8.0.27 以上版本:LOGICAL_CLOCK

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
replica_parallel_workers integer

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
replica_pending_jobs_size_max integer

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
replica_preserve_commit_order boolean

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
replica_skip_errors string
預設值:OFF

如要進一步瞭解這個旗標,請參閱「提示」一節。

是
replica_sql_verify_checksum boolean
on | off
否
replica_transaction_retries integer
0 ... 9223372036854775807
否
replica_type_conversions String
值:ALL_LOSSY、ALL_NON_LOSSY、ALL_SIGNED、ALL_UNSIGNED
否
replicate_do_db string

如要進一步瞭解如何使用這個旗標,請參閱「複製篩選器」一節。

否
replicate_do_table string

如要進一步瞭解如何使用這個旗標,請參閱「複製篩選器」一節。

否
replicate_ignore_db string

如要進一步瞭解如何使用這個旗標,請參閱「複製篩選器」一節。

否
replicate_ignore_table string

如要進一步瞭解如何使用這個旗標,請參閱「複製篩選器」一節。

否
replicate_wild_do_table string

如要進一步瞭解如何使用這個旗標,請參閱「複製篩選器」一節。

否
replicate_wild_ignore_table string

如要進一步瞭解如何使用這個旗標,請參閱「複製篩選器」一節。

否
rpl_read_size integer
8192 ... 4294959104
default: 8192
否
schema_definition_cache integer
256 ... 524288
default: 256
否
session_track_gtids string
OFF | OWN_GTID | ALL_GTIDS
預設:OFF
否
session_track_schema boolean
on | off
預設:on
否
session_track_state_change boolean
on | off
預設:off
否
session_track_transaction_info string
OFF | STATE | CHARACTERISTICS
預設:OFF
否
sha256_password_proxy_users boolean
on | off
預設:off
否
show_create_table_verbosity boolean
on | off
預設:off
否
show_compatibility_56 boolean
on | off

僅適用於 MySQL 5.7。

否
skip_character_set_client_handshake boolean
on | off
預設:off
是
skip_show_database flag
on | off
是
slave_checkpoint_group integer
32 ... 524280
預設值為 512。

這個旗標不會影響未啟用多執行緒的副本。

否
slave_checkpoint_period integer
1 ... 4294967295
預設值為 300。

單位為毫秒。

否
slave_compressed_protocol boolean
on | off
否
slave_net_timeout integer
1 ... 31536000

單位為秒。

否
slave_parallel_type enumeration
DATABASE、LOGICAL_CLOCK
預設值:
MySQL 8.0.26 以下版本:DATABASE
MySQL 8.0.27 以上版本:LOGICAL_CLOCK

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
slave_parallel_workers integer

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
slave_preserve_commit_order boolean

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
slave_pending_jobs_size_max integer

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。

否
slave_skip_errors string
預設值:OFF

如要進一步瞭解這個旗標,請參閱「提示」一節。

是
slave_sql_verify_checksum boolean
on | off
否
slave_transaction_retries integer
0 ... 9223372036854775807
否
slave_type_conversions string
值:ALL_LOSSY、ALL_NON_LOSSY、ALL_SIGNED、ALL_UNSIGNED
否
slow_launch_time Integer
0 ... 31536000
預設值:2
否
slow_query_log boolean
on | off

如要進一步瞭解慢速查詢記錄,請參閱提示一節。

否
sort_buffer_size integer
32768 ... 9223372036854775807
否
source_verify_checksum boolean
on | off
預設值:off
否
sql_generate_invisible_primary_key boolean
on | off
預設值:off
否
sql_mode string

如要瞭解允許的值 (包括 ANSI 等合併模式),請參閱 MySQL 說明文件中的伺服器 SQL 模式。不支援 NO_DIR_IN_CREATE。

MySQL 適用的 Cloud SQL 不支援 sql_mode 旗標的空值。請勿使用空白值,而是將這個旗標設為 NO_ENGINE_SUBSTITUTION 模式。

否
sql_require_primary_key boolean
on | off
預設:off
否
sql_select_limit integer 0...9223372036854775807
default: 18446744073709551615

如要進一步瞭解此標記,請參閱提示一節。

否
stored_program_cache integer
16 ... 524288
否
stored_program_definition_cache integer
256 ... 524288
預設值:256
否
sync_binlog integer
0 ... 4294967295

預設設定為 1,會在交易提交前,將二進位記錄同步至磁碟。

如果您在啟用這個旗標的情況下提升副本,系統會自動移除旗標,使提升的副本預設具有完整耐用性。如要將這個旗標與升級後的副本搭配使用,可以在升級後將旗標更新至副本。

如要進一步瞭解此標記,請參閱提示一節。

否
sync_master_info integer
0 ... 4294967295
預設值:10000
否
sync_relay_log integer
0 ... 4294967295
預設值:10000
否
sync_relay_log_info integer
0 ... 4294967295
預設值:10000
否
sync_source_info integer
0 ... 4294967295
預設值:10000
否
sysdate_is_now boolean
on | off
預設:off
是
table_definition_cache integer
400 ... 524288
否
tablespace_definition_cache integer
256 ... 524288
default: 256
否
table_open_cache integer
1 ... 524288
否
table_open_cache_instances integer
1 ... 64
是
table_open_cache_triggers integer
1 ... 524288
預設值:524288
否
temptable_max_mmap integer
0 ... 68719476736

預設值:

  • MySQL 8.0 以下版本:1073741824
  • MySQL 8.4 以上版本:0
否
temptable_max_ram integer
2097152 ... 68719476736
預設值:1073741824
否
thread_cache_size integer
0 ... 16384
否
thread_stack integer
131072 ... 9223372036854775807
是
tls_version String

5.7 至 8.0.27 版: TLSv1, TLSv1.1
8.0.28 以上版本:TLSv1.2
5.7 版:是

8.0 以上版本:否
tmp_table_size integer
1024 ... 67108864

如要進一步瞭解此標記,請參閱提示一節。

否
transaction_alloc_block_size integer
1024 ... 131072
否
transaction_isolation enumeration
READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE
是
transaction_prealloc_size integer
1024 ... 131072
否
transaction_write_set_extraction enumeration

如要瞭解如何使用這個旗標及其可接受的值,請參閱「設定平行複製功能」。MySQL 8.4 不支援這個旗標。

否
unique_checks boolean
on | off
預設:on

如要進一步瞭解此標記,請參閱提示一節。

否
updatable_views_with_limit integer
0 ... 1
否
wait_timeout integer
1 ... 31536000
否
windowing_use_high_precision boolean
on | off
預設:on
否

時區名稱

本節將說明 MySQL 適用的 Cloud SQL 支援的時區名稱。

本節表格會顯示下列資訊:

  • 時區名稱:MySQL 適用的 Cloud SQL 支援的名稱。
  • STD:標準時間 (STD) 的時區偏移。
  • DST:日光節約時間 (DST) 的時區偏移。
  • 同義詞名稱:您可能想使用的時區名稱,但 MySQL 適用的 Cloud SQL 不支援。如果發生這種情況,請使用對應的時區名稱。
時區名稱 STD 數位服務稅 同義詞名稱
Africa/Cairo +02:00 +02:00 埃及
Africa/Casablanca +01:00 +00:00
Africa/Harare +02:00 +02:00 Africa/Maputo
Africa/Monrovia +00:00 +00:00
Africa/Nairobi +03:00 +03:00 Africa/Addis_Ababa
Africa/Asmera
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Kampala
Africa/Mogadishu
Indian/Antananarivo
Indian/Comoro
Indian/Mayotte
Africa/Tripoli +02:00 +02:00 利比亞
Africa/Windhoek +02:00 +02:00
America/Araguaina −03:00 −03:00
America/Asuncion −04:00 −03:00
America/Bogota −05:00 −05:00
America/Buenos_Aires −03:00 −03:00 America/Argentina/Buenos_Aires
America/Caracas −04:00 −04:00
America/Chicago −06:00 −05:00
America/Chihuahua −07:00 −06:00 America/Ojinaga
America/Cuiaba −04:00 −04:00
America/Denver −07:00 −06:00 America/Shiprock
Navajo
MST7MDT
US/Mountain
America/Detroit −05:00 −04:00
America/Fortaleza −03:00 −03:00
America/Guatemala −06:00 −06:00
America/Halifax −04:00 −03:00 Canada/Atlantic
America/Los_Angeles −08:00 −07:00
America/Manaus −04:00 −04:00 Brazil/West
America/Matamoros −06:00 −05:00
America/Mexico_City −06:00 −05:00
America/Monterrey −06:00 −05:00
America/Montevideo −03:00 −03:00
America/New_York −05:00 −04:00
America/Phoenix −07:00 −07:00 US/Arizona
MST
America/Creston
America/Santiago −04:00 −03:00 Chile/Continental
America/Sao_Paolo −03:00 −03:00
America/Tijuana −08:00 −07:00 Mexico/BajaNorte
America/Ensenada
America/Santa_Isabel
Asia/Amman +02:00 +03:00
Asia/Ashgabat +05:00 +05:00 Asia/Ashkhabad
Asia/Baghdad +03:00 +03:00
Asia/Baku +04:00 +04:00
Asia/Bangkok +07:00 +07:00 Asia/Phnom_Penh
Asia/Vientiane
Asia/Beirut +02:00 +03:00
Asia/Calcutta +05:30 +05:30 Asia/Kolkata
Asia/Damascus +02:00 +03:00
Asia/Dhaka +06:00 +06:00 Asia/Dacca
Asia/Irkutsk +08:00 +08:00
Asia/Jerusalem +02:00 +03:00 Asia/Tel_Aviv
以色列
Asia/Kabul +04:30 +04:30
Asia/Karachi +05:00 +05:00
Asia/Kathmandu +05:45 +05:45 Asia/Katmandu
Asia/Kolkata +05:30 +05:30
Asia/Krasnoyarsk +07:00 +07:00
Asia/Magadan +11:00 +11:00
Asia/Muscat +04:00 +04:00 Asia/Dubai
Asia/Novosibirsk +07:00 +07:00
Asia/Riyadh +03:00 +03:00 Asia/Kuwait
Antarctica/Syowa
Asia/Aden
Asia/Seoul +09:00 +09:00 ROK
Asia/Shanghai +08:00 +08:00 Asia/Chongqing
Asia/Chungking
Asia/Harbin
PRC
Asia/Singapore +08:00 +08:00 新加坡
Asia/Taipei +08:00 +08:00 ROC
Asia/Tehran +03:30 +04:30 伊朗
Asia/Tokyo +09:00 +09:00 日本
Asia/Ulaanbaatar +08:00 +08:00 Asia/Ulan_Bator
Asia/Vladivostok +10:00 +10:00
Asia/Yakutsk +09:00 +09:00
Asia/Yerevan +04:00 +04:00
Atlantic/Azores −01:00 +00:00
Australia/Adelaide +09:30 +10:30 Australia/South
Australia/Brisbane +10:00 +10:00 Australia/Queensland
Australia/Darwin +09:30 +09:30 Australia/North
Australia/Hobart +10:00 +11:00 澳洲/柯里
澳洲/塔斯馬尼亞
Australia/Perth +08:00 +08:00 Australia/West
Australia/Sydney +10:00 +11:00 Australia/NSW
Australia/ACT
Australia/Canberra
Brazil/East −03:00 −03:00 America/Sao_Paulo
Canada/Newfoundland −03:30 −02:30 America/St_Johns
Canada/Saskatchewan −06:00 −06:00 America/Regina
Canada/Yukon −07:00 −07:00 America/Whitehorse
Europe/Amsterdam +01:00 +02:00
Europe/Athens +02:00 +03:00
Europe/Dublin +01:00 +00:00 Eire
Europe/Helsinki +02:00 +03:00 Europe/Mariehamn
Europe/Istanbul +03:00 +03:00 土耳其
Asia/Istanbul
Europe/Kaliningrad +02:00 +02:00
Europe/Madrid +01:00 +02:00
Europe/Moscow +03:00 +03:00 W-SU
Europe/Paris +01:00 +02:00 MET
CET
Europe/Prague +01:00 +02:00 Europe/Bratislava
Europe/Sarajevo +01:00 +02:00 歐洲/貝爾格勒
歐洲/盧比安納
歐洲/波德里查
歐洲/史高比耶
歐洲/札格瑞布
Pacific/Auckland +12:00 +13:00 NZ
Antarctica/McMurdo
Antarctica/South_Pole
Pacific/Fiji +12:00 +13:00
Pacific/Guam +10:00 +10:00 Pacific/Saipan
Pacific/Honolulu −10:00 −10:00 US/Hawaii
Pacific/Johnston
HST
Pacific/Samoa −11:00 −11:00 Pacific/Pago_Pago
US/Samoa
US/Alaska −09:00 −08:00 America/Anchorage
America/Juneau
America/Metlakatla
America/Nome
America/Sitka
America/Yakutat
US/Central −06:00 −05:00 America/Chicago
US/Eastern −05:00 −04:00 America/New_York
US/East-Indiana −05:00 −04:00 America/Indiana/Indianapolis
America/Indianapolis
America/Fort_Wayne
US/Mountain −07:00 −06:00 America/Denver
US/Pacific −08:00 −07:00 America/Los_Angeles
世界標準時間 +00:00 +00:00 Etc/UTC
Etc/UCT
Etc/Universal
Etc/Zulu

Cloud SQL 中的時區資料表可能需要以最新資料重新整理。例如,某個國家/地區可能會從日光節約時間時區偏移量轉換為標準時間偏移量,或可能推出新的時區。

Cloud SQL 每次發布重大服務代理程式 (CSA) 版本時,時區資料表都會更新為最新資料。發生這種情況時,副本執行個體會在非維護期間重新整理。主要執行個體則會在維護期間更新。

您可以等到 CSA 版本的定期維護期間,或執行自助維護,以最新資料重新整理時區資料表。如要進一步瞭解如何查看可用的維護版本,請參閱「判斷目標維護版本」。

使用標記的提示

general_log、slow_query_log

如要啟用 general 或 slow query 記錄,請啟用對應的旗標,並將 log_output 旗標設為 FILE。這樣一來,您就能使用 Google Cloud 控制台中的記錄檢視器查看記錄輸出內容。請注意,您必須支付 Google Cloud Observability 記錄費用。為盡可能降低執行個體儲存空間費用,如果記錄檔超過 24 小時 (且在這段期間內未進行任何變更) 或大小超過 100 MB,系統會輪替執行個體磁碟上的 general 和 slow query 記錄。輪替後,系統會自動刪除舊的記錄檔。

如果 log_output 設為 NONE,您就無法存取記錄。如果將 log_output 設為 TABLE,記錄輸出內容會放在 mysql 系統資料庫的資料表中。這可能會耗用大量磁碟空間。如果這個資料表過大,可能會影響執行個體重新啟動時間,或導致執行個體失去服務水準協議保障。因此,不建議使用 TABLE 選項。此外,記錄內容不會顯示在 Logs Explorer 中,也不會輪替。如有需要,您可以使用 API 截斷記錄資料表。詳情請參閱 instances.truncateLog 參考資料頁面。

expire_logs_days、binlog_expire_logs_seconds
如果啟用時間點復原功能,二進位記錄的到期時間長度取決於交易記錄保留期限和這些旗標的值,以較短者為準。您可以使用這些旗標,管理二進位記錄在副本上的儲存時間。MySQL 8.4 以上版本已移除 expire_logs_days 旗標。詳情請參閱「 交易記錄保留」。
innodb_buffer_pool_size

這個旗標的值是緩衝區集區的大小 (以位元組為單位)。緩衝集區大小一律須等於 innodb_buffer_pool_chunk_size 乘以 innodb_buffer_pool_instances 的值,或為該值的倍數。如果將緩衝區集區大小變更為不等於 innodb_buffer_pool_chunk_size 乘以 innodb_buffer_pool_instances 的值或倍數,Cloud SQL 會自動調整緩衝區集區大小。如果執行個體的 RAM 少於 3,840 MiB,就無法啟用這個旗標。

您無法為共用核心機型 (f1_micro 和 g1_small) 設定這個旗標。在 MySQL 5.6 變更這個旗標後,必須重新啟動。

在 Cloud SQL 中,innodb_buffer_pool_size 旗標的預設值、允許的下限值與允許的上限值皆取決於執行個體的記憶體。這些值可大致以執行個體 RAM 的百分比計算。根據預設,這個旗標的值通常會設為接近允許的最大值。可分配的百分比上限會隨著執行個體大小增加。允許的最小值通常約為執行個體 RAM 的 20%。

這個旗標的大概值:

執行個體 RAM 範圍百分比下限預設百分比百分比上限
0 至 4.0 GB RAM~34%
4.0GB - 7.5GB~20%~34%~34%
7.5GB - 12GB~20%~52%~52%
12GB - 24GB~20%~67%~67%
24 GB 以上~20%~72%~72%

實際值可能有所不同。啟用代管緩衝集區後,系統會調整innodb_buffer_pool_size,但不會反映在 Google Cloud 控制台中。如要計算執行個體的目前值,請執行下列查詢:

  show global variables like 'innodb_buffer_pool_size';
  

以下提供下列機器類型的允許最小值、預設值和允許最大值,供您參考。

機器類型 執行個體 RAM (GB) 最小值 (GB)
(占總量百分比)
預設 (GB)
(占總量的百分比)
最大值 (GB)
(占總量百分比)
db-f1-micro 0.6 - 0.053 -
db-g1-small 1.7 - 0.625 -
db-custom-1-3840 3.75 0.875
(23%)
1.375
(37%)
1.375
(37%)
db-custom-2-7680 7.5 1.5
(20%)
4
(53%)
4
(53%)
db-custom-4-15360 15 3
(20%)
10.5
(70%)
10.5
(70%)
db-custom-8-30720 30 6
(20%)
22
(73%)
22
(73%)
db-custom-16-61440 60 12
(20%)
44
(73%)
44
(73%)
db-custom-32-122880 120 24
(20%)
87
(73%)
87
(73%)
db-custom-64-245760 240 48
(20%)
173
(72%)
173
(72%)
db-custom-96-368640 360 72
(20%)
260
(72%)
260
(72%)
db-custom-2-13312 13 3
(23%)
9
(69%)
9
(69%)
db-custom-4-26624 26 6
(23%)
19
(73%)
19
(73%)
db-custom-8-53248 52 11
(21%)
38
(73%)
38
(73%)
db-custom-16-106496 104 21
(20%)
75
(72%)
75
(72%)
db-custom-32-212992 208 42
(20%)
150
(72%)
150
(72%)
db-custom-64-425984 416 84
(20%)
300
(72%)
300
(72%)
db-custom-96-638976 624 125
(20%)
450
(72%)
450
(72%)

如果執行個體的記憶體用量偏高,且發生記憶體不足 (OOM) 事件,可以啟用 innodb_cloudsql_managed_buffer_pool 旗標,暫時降低 innodb_buffer_pool_size 的值。詳情請參閱「啟用代管緩衝區集區」。

當代管緩衝集區調整 innodb_buffer_pool_size 的值時,變更不會反映在 Google Cloud 控制台顯示的旗標值中。如要在啟用代管緩衝集區時查看 innodb_buffer_pool_size 的目前值,可以使用 MySQL 用戶端查詢旗標值:
show global variables like 'innodb_buffer_pool_size';
innodb_cloudsql_optimized_write
這個旗標僅適用於 Cloud SQL Enterprise Plus 版本執行個體。預設值為「ON」。 這個旗標會最佳化清除演算法、控管清除限制,以及調整背景活動,優先處理資料庫寫入作業,進而提升寫入效能。此外,這個旗標會啟用改良版當機復原演算法,縮短當機復原時間,並彈性運用未使用的磁碟 I/O 處理量,加快緩衝集區暖機速度。在大多數用途中,啟用這個旗標可提升效能,例如提高處理量及縮短延遲時間。不過,如果資料庫寫入作業導致伺服器負載極高,則該標記可能會延遲部分背景活動。這項延遲可能會導致磁碟用量略微增加,但負載降低後,用量就會自動減少。 根據預設,所有全新和升級的 Cloud SQL Enterprise Plus 版本執行個體都會啟用 innodb_cloudsql_optimized_write 旗標。如果是現有的 Cloud SQL Enterprise Plus 版本執行個體,則會在套用相關維護更新後啟用這項旗標。 如要停用旗標,請執行下列指令。
gcloud sql instances patch INSTANCE_NAME \
 --database-flags="innodb_cloudsql_optimized_write=OFF"
如要變更旗標值,必須重新啟動執行個體。
innodb_file_per_table

對於所有 MySQL 5.6 以上版本,預設值為 ON。

innodb_flush_log_at_trx_commit、sync_binlog

如要完全符合 ACID 規範,並在複製設定中維持耐用性和一致性,innodb_flush_log_at_trx_commit 和 sync_binlog 旗標必須設為預設值 1。如果變更預設值,耐用性可能會降低,導致主要執行個體和副本之間不一致。因此,執行個體將不再適用服務水準協議。此外,也可能發生下列任一情況:

  • 在某些情況下 (例如 VM 當機或區域性高可用性執行個體容錯移轉),資料可能會遺失
  • 二進位記錄和 InnoDB 資料檔案中的資料不同步
  • PITR 資料遺失或失敗
  • 主要執行個體與副本之間的資料不一致
  • 複製作業中斷

如果將主要、獨立和高可用性執行個體的 innodb_flush_log_at_trx_commit 或 sync_binlog 旗標值設為非預設值,會降低耐用性。

如需提高唯讀副本的效能,建議將 innodb_flush_log_at_trx_commit 值設為 2。如果這麼做,您必須停用副本上的二進位記錄,或將 sync_binlog 設為 1 以外的值,以提高效能。

如要追求最高效能和最低耐用性,您也可以將唯讀副本的 innodb_flush_log_at_trx_commit 旗標設為 0,但請謹慎變更這項設定。使用 gcloud CLI 或 Cloud SQL Admin API,將 innodb_flush_log_at_trx_commit 旗標設為 0。這項設定只能套用至唯讀副本,不適用於主要或獨立執行個體。 Google Cloud 控制台不提供這個旗標的 0 值。用於這項操作的 gcloud CLI 指令採用下列格式,其中必須包含所有目前的旗標值:

gcloud sql instances patch INSTANCE_NAME \
  --database-flags= FLAG1=VALUE1, FLAG2=VALUE2, innodb_flush_log_at_trx_commit=0
  

Cloud SQL 備份時,可能會暫時將 innodb_flush_log_at_trx_commit 和 sync_binlog 旗標值變更為預設值。這可能會導致備份時效能降低。為避免這種情況影響執行個體,您可以在執行個體用量偏低時變更備份時間範圍。詳情請參閱「建立及管理隨選和自動備份」。

innodb_flush_log_at_timeout

innodb_flush_log_at_timeout 可讓您修改頁面清除頻率,避免影響二進位記錄群組修訂版本的效能。預設設定為每秒一次。

Cloud SQL 已擴充這個旗標,支援以微秒為單位指定時間範圍。

範例:

  • 0.001 指定 1 毫秒
  • 0.0001 指定 100 微秒
  • 12.5:指定 12.5 秒
  • 12.005:指定 12 秒 5 毫秒
  • 0.005100 指定 5 毫秒和 100 微秒

對於某些工作負載,以整秒為單位清除頁面,可能會造成交易遺失,因此可能不適用。您可以改用微秒精細度清除頁面,在維持效能的同時,不會大幅降低耐用性。

只有在 innodb_flush_log_at_trx_commit 耐用性旗標設為 2 時,innodb_flush_log_at_timeout 旗標的微秒時間範圍才適用。

清除頁面的頻率可能會高於或低於為 innodb_flush_log_at_timeout 指定的值,且該值並非上限。

innodb_redo_log_capacity、innodb_log_file_size

如果是 MySQL 適用的 Cloud SQL 8.4 以下版本,當您為 innodb_redo_log_capacity 旗標設定值時,Cloud SQL 會忽略您為 innodb_log_file_size 旗標定義的任何值。

如未設定 innodb_redo_log_capacity 或 innodb_log_file_size 旗標的值,Cloud SQL 會使用 innodb_redo_log_capacity 旗標的預設值,即 104857600 (100 MB)。

如果未設定 innodb_redo_log_capacity 旗標,但設定了 innodb_log_file_size 旗標,則 innodb 重做日誌檔大小的值會以 innodb_log_file_size * innodb_log_file_in_group 計算。舉例來說,如果您將 innodb_log_file_size 設為 10 GB,而 innodb_log_file_in_group 的預設值為 2,則 innodb 重做日誌檔大小的有效值為 20 GB。

在 MySQL 適用的 Cloud SQL 9.7 以上版本中,innodb_log_file_size 和 innodb_log_file_in_group 旗標已從 Cloud SQL 移除。innodb_redo_log_capacity 旗標的預設值取決於執行個體的版本和 RAM 容量,如下表所示。

Cloud SQL 版本RAM預設值
Cloud SQL Enterprise 版本不限大小1 GB
Cloud SQL Enterprise Plus 版<100 GB1 GB
Cloud SQL Enterprise Plus 版>100 GB1.5 GB
max_heap_table_size、tmp_table_size

如果 tmp_table_size 和 max_heap_table_size 設得過高,導致執行個體處理的並行查詢數量過多,就可能耗盡可用的執行個體記憶體。記憶體用盡會導致執行個體停止運作並重新啟動。

如要進一步瞭解如何使用這些旗標,請參閱「MySQL 如何使用內部暫存資料表」和「MEMORY 儲存引擎」。

performance_schema

如果執行個體使用共用核心 (RAM 低於 3 GB),則無法啟用這個旗標。啟用這個旗標後,您就無法將機器類型變更為不支援該旗標的大小,必須先停用這個旗標。

如果是 MySQL 8.0 以上版本且 RAM 為 12 GB 至 15 GB 的執行個體,performance_schema 的預設值為 on,但預設效能結構定義檢測功能會停用。如要進一步瞭解預設效能結構定義檢測,請參閱「 setup_instruments 資料表 (MySQL 8.0)」或「 setup_instruments 資料表 (MySQL 8.4)」。如要在 12 GB 至 15 GB RAM 執行個體中啟用及使用效能結構定義檢測,則必須「明確」將 performance_schema 旗標設為 on,而非延遲至預設值。如果是 MySQL 8.0 以上版本且 RAM ≥ 15 GB 的執行個體,performance_schema 的預設值為 on,且預設會啟用效能結構定義檢測功能。

event_scheduler
MySQL 事件 (也稱為排定的事件) 是可以排定的工作。排定事件是指一或多個 SQL 陳述式組成的群組,設定為在一或多個指定時間間隔執行。MySQL 5.7 的預設值為 OFF,MySQL 8.0 的預設值為 ON。如要進一步瞭解 event_scheduler 旗標,請參閱 event_scheduler。如果唯讀副本的 event_scheduler 旗標設為 ON,可能會根據事件中定義的陳述式類型,導致錯誤:
  • 如果排定的事件是唯讀副本上的 write 事件,則會導致錯誤,因為唯讀副本是唯讀的。詳情請參閱「唯讀副本」。
  • 如果排定的事件包含停止作業 (例如 kill),event_scheduler 會將其套用至副本。這麼做會停止複製作業並刪除副本。
為避免這類錯誤,請在建立副本時將 event_scheduler 旗標設為 OFF。 如要進一步瞭解如何啟用或停用 event_scheduler,請參閱「設定資料庫旗標」。
replica_skip_errors,slave_skip_errors
設定 replica_skip_errors 或 slave_skip_errors 旗標可能會導致複製問題。一般來說,如果執行陳述式時發生錯誤,複製作業就會停止。使用這個旗標會略過錯誤並繼續複製,導致主要執行個體和副本不一致。這也可能增加排解複製問題的難度。 Cloud SQL 建議僅在必要時使用這個旗標。如果遇到複製錯誤,請參閱「排解 Cloud SQL 問題:複製」頁面,進一步瞭解如何解決這個問題。
character_set_client
character_set_connection
character_set_results
collation_connection
innodb_buffer_pool_dump_now
innodb_buffer_pool_load_abort
innodb_buffer_pool_load_now
innodb_ft_aux_table
foreign_key_checks
sql_select_limit
unique_checks
這些旗標無法直接在 Google Cloud 控制台或使用 gcloud CLI 選取。 如要使用這些旗標,請使用下列指令:
SET GLOBAL FLAG_NAME=FLAG_VALUE
使用 SET GLOBAL 指令需要 CLOUDSQL_SPECIAL_SYSEM_VARIABLES_ADMIN 權限,該權限會授予 cloudsqlsuperuser 角色。 注意:CLOUDSQL_SPECIAL_SYSEM_VARIABLES_ADMIN 權限僅適用於 MySQL 8.0 for Cloud SQL。如要進一步瞭解如何將特殊權限存取權授予特定使用者,請參閱「關於 MySQL 使用者」。這些標記不會保留。重新建立或重新啟動 Cloud SQL 執行個體時,旗標設定會重設為預設值。
caching_sha2_password_proxy_users

在 MySQL 9.7 中,使用 caching_sha2_password_proxy_users 旗標設定代理使用者連線。MySQL 9.7 已不支援 mysql_native_password 驗證方式,因此無法使用 mysql_native_password_proxy_users 旗標。

caching_sha2_password_proxy_users 旗標可控管 caching_sha2_password 內建驗證外掛程式是否支援 Proxy 使用者。除非啟用 check_proxy_users 系統變數,否則這個旗標不會生效。

binlog_order_commits

binlog_order_commits 旗標的預設值為 ON。Cloud SQL 建議不要變更這個旗標的預設值。如果將預設值變更為 OFF,相同二進位記錄群組中的交易會以不同於寫入二進位記錄時的順序提交。這會影響下列以二進位記錄順序執行交易的作業:

  • 複製:可能導致來源和副本之間的資料不一致
  • Point-in-time-recovery:可能導致 PITR 復原狀態與歷來狀態之間的資料不一致
optimizer_switch,optimizer_trace,optimizer_trace_features

最佳化工具旗標的值以逗號分隔值。您可以使用 Google Cloud 控制台或 gcloud CLI 設定這些旗標。如要進一步瞭解如何使用控制台設定這個旗標,請參閱「設定資料庫旗標」。如果使用 gcloud CLI,則可透過兩種方式指定這些旗標的值:

如要在一個指令中設定多個最佳化工具子旗標,請使用半形逗號分隔每個旗標名稱。如果使用 gcloud CLI 指令設定單一子旗標值,則會覆寫所有先前設定的子旗標。

舉例來說,如果執行下列指令,batched_key_access 子旗標的預期值會設為 on,而 optimizer_flags 的所有其他子旗標則會設為預設值。

gcloud sql instances patch my-instance --database-flags=^~^optimizer_switch=batched_key_access=on

如果執行下列指令,block_nested_loop 子旗標的值會設為 on,而 optimizer_switch 的所有其他子旗標都會遭到覆寫,並設為預設值。

gcloud sql instances patch my-instance --database-flags=^~^optimizer_switch=block_nested_loop=on

包括先前指令設為 on 的 batched_key_access。如要保留所有先前設定的子旗標並新增子旗標,您必須在新增子旗標時,加入要設定的所有子旗標值。

在 MySQL 9.7 適用的 Cloud SQL 中,您可以指定 hypergraph_optimizer=on 旗標,啟用超圖最佳化工具。如要進一步瞭解可切換的最佳化功能和超圖最佳化工具,請參閱「可切換的最佳化功能」和「超圖最佳化工具現已在 MySQL 9.7 Community Edition 中推出」。

Cloud SQL 中變更的系統旗標

未列在支援旗標一節的所有其他資料庫系統旗標,都稱為代管旗標。對於某些代管旗標,Cloud SQL 會將旗標設為預設設定以外的值,確保 Cloud SQL 執行個體穩定運作。您無法變更這些系統旗標的值。以下列出採用非預設設定的受管理標記:
變數名稱 Cloud SQL 中的設定。 附註
binlog_format ROW 僅在 MySQL 5.6 中有所不同
binlog_error_action ABORT_SERVER 僅在 MySQL 5.6 中有所不同
innodb_doublewrite_pages 64 適用於 MySQL 8.0.26 以上版本
innodb_file_format Barracuda 僅在 MySQL 5.6 中有所不同
memlock true
skip_name_resolve 開啟
relay_log_info_repository 資料表 已在 MySQL 8.4 中移除
relay_log_recovery 開啟
master_info_repository 資料表 已在 MySQL 8.4 中移除
rpl_semi_sync_master_enabled 1
rpl_semi_sync_master_timeout 3000
admin_address 127.0.0.1 MySQL 8.0 以上版本則不同。
create_admin_listener_thread 開啟
port-open-timeout 120 MySQL 8.0 以上版本則不同。
partial_revokes 開啟 MySQL 8.0 以上版本。如要進一步瞭解這個旗標,請參閱「MySQL 8.0 中的部分撤銷系統旗標」。

MySQL 8.0 以上版本的 partial_revokes 系統旗標

partial_revokes 旗標可限制使用者對資料庫結構定義的存取權。在 MySQL 適用的 Cloud SQL 8.0 以上版本中,partial_revokes 旗標會設為 ON。這會限制在 MySQL 8.0 中,授予或撤銷資料庫結構定義的使用者權限時,使用萬用字元。請更新 GRANT 陳述式,使用資料庫結構定義的全名,而非萬用字元。

舉例來說,如果您在 MySQL 5.7 中使用下列指令和 %\ 萬用字元,將權限授予使用者,則該使用者將獲得所有以 _foobar 結尾的資料庫權限。

GRANT ALL PRIVILEGES ON `%\_foobar`.*  TO  'testuser'@'%';

不過,在 MySQL 8.0 中,使用者只會獲得與 %\_foobar 完全相符的資料庫存取權。

在 MySQL 8.0 以上版本中,您可以透過兩種方式授予多個資料庫的存取權。

  1. 您可以使用完整的資料庫名稱,授予特定資料庫的權限,如以下指令所示:

      grant select on test1_foobar.* to 'testuser'@'%';
      grant select on test2_foobar.* to 'testuser'@'%';
      grant select on test3_foobar.* to 'testuser'@'%';
    
  2. 有了 partial_revokes,您可以使用 grant 和 revoke 指令,授予使用者所有資料庫結構定義的權限,同時限制對少數資料庫結構定義的存取權。

      grant select on *.* to 'testuser'@'%';
      revoke select on test3_foobar.* from 'testuser'@'%';
    

    這會授予所有資料庫結構定義的存取權,同時限制 test3_foobar.* 的存取權。

複製篩選器

複製篩選器只能在 Cloud SQL 副本上設定。每個複製篩選器都會設為多個資料庫的單一旗標,每個資料庫名稱以半形逗號分隔。您可以使用控制台或下列指令,在 Cloud SQL 副本上設定複製篩選器:

gcloud sql instances patch REPLICA_NAME --database-flags=^~^REPLICATION_FILTER_NAME=DATABASE_NAME1,DATABASE_NAME, etc

複製篩選器不支援含有逗號值的資料庫名稱。如果資料庫旗標是以逗號分隔的值,則必須在上述指令中加入 ^~^ 值。

設定複製篩選器旗標時,請注意下列事項:

  • 如果副本發生問題,Cloud SQL 會使用主要執行個體的來源資料重建執行個體副本,因此副本可能會顯示篩選器篩除的資料。
  • 您無法在 mysql 結構定義上設定複製篩選器。
  • 複製篩選器規則不適用於無伺服器匯出作業。

索引建議工具旗標

下列資料庫旗標清單,是 MySQL 適用的 Cloud SQL 用來啟用及管理索引建議工具專屬功能。

旗標名稱 類型
可接受的值和附註
是否需要
重新啟動?
cloudsql_index_advisor_auto_advisor_schedule string
預設:00:00
否
cloudsql_index_advisor_run_at_timestamp Datetime
預設:00:00:00
否

別名旗標

下列清單包含 MySQL 適用的 Cloud SQL 8.0.26 以上版本變更的旗標名稱。

已淘汰的旗標名稱 新旗標名稱
log_slow_slave_statements log_slow_replica_statements
master_verify_checksum source_verify_checksum
slave_checkpoint_group replica_checkpoint_group
slave_checkpoint_period replica_checkpoint_period
slave_compressed_protocol replica_compressed_protocol
slave_net_timeout replica_net_timeout
slave_parallel_type replica_parallel_type
slave_parallel_workers replica_parallel_workers
slave_pending_jobs_size_max replica_pending_jobs_size_max
slave_preserve_commit_order replica_preserve_commit_order
slave_skip_errors replica_skip_errors
slave_sql_verify_checksum replica_sql_verify_checksum
slave_transaction_retries replica_transaction_retries
slave_type_conversions replica_type_conversions
sync_master_info sync_source_info

如果 Cloud SQL 執行個體使用已淘汰的旗標名稱,請編輯 Cloud SQL 執行個體、刪除已淘汰的旗標名稱,然後在執行個體中新增旗標。詳情請參閱「設定資料庫旗標」。

疑難排解

問題 疑難排解
啟用旗標後,執行個體會在恐慌和當機之間循環。 請與 客戶服務團隊聯絡,要求移除標記,然後hard drain。這會強制執行個體在其他主機上重新啟動,並採用不含不必要旗標或設定的新設定。
嘗試設定旗標時,系統顯示錯誤訊息 Bad syntax for dict arg。 複雜的參數值 (例如以半形逗號分隔的清單) 與 gcloud 指令搭配使用時,需要特殊處理。

後續步驟