데이터베이스 플래그 구성

이 페이지에서는 Cloud SQL에 데이터베이스 플래그를 구성하는 방법을 설명하고 인스턴스에 설정할 수 있는 플래그를 알아봅니다. 데이터베이스 플래그는 MySQL 매개변수 조정, 옵션 조정, 인스턴스 구성 및 조정을 포함한 여러 작업에 사용합니다.

경우에 따라 한 플래그를 설정할 때 사용하려는 기능을 완전히 활성화하기 위해 다른 플래그를 설정해야 할 수도 있습니다. 예를 들어 느린 쿼리 로깅을 사용 설정하여 Google Cloud 콘솔 로그 탐색기를 통해 로그를 보려면 slow_query_log 플래그를 on으로, log_output 플래그를 FILE로 설정해야 합니다.

데이터베이스 인스턴스의 플래그를 설정, 삭제, 수정하면 데이터베이스가 다시 시작될 수 있습니다. 플래그 값은 인스턴스를 삭제하기 전까지 유지됩니다. 인스턴스가 복제본의 소스이며 인스턴스를 다시 시작하는 경우 복제본은 인스턴스의 현재 구성에 맞게 다시 시작됩니다.

데이터베이스 플래그 구성

다음 섹션에서는 일반적인 플래그 관리 태스크를 다룹니다.

데이터베이스 플래그 설정

콘솔

  1. Google Cloud 콘솔에서 데이터베이스 플래그를 설정할 Cloud SQL 인스턴스가 포함된 프로젝트를 선택합니다.
  2. 인스턴스를 열고 수정을 클릭합니다.
  3. 플래그 섹션으로 이동합니다.
  4. 이전에 인스턴스에 설정되지 않은 플래그를 설정하려면 항목 추가를 클릭하고 드롭다운 메뉴에서 플래그를 선택한 다음 값을 설정합니다.
  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에 '적용 완료' 메시지가 표시될 때까지 기다립니다.

  3. 결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 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 메서드 및 URL:

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 메서드 및 URL:

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 메서드 및 URL:

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 메서드 및 URL:

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 메서드 및 URL:

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 메서드 및 URL:

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. 인스턴스를 선택하여 인스턴스 개요 페이지를 엽니다.

    데이터베이스 플래그 섹션에 설정된 데이터베이스 플래그가 나열됩니다.

gcloud

인스턴스 상태를 가져옵니다.

gcloud sql instances describe INSTANCE_NAME

출력에서 데이터베이스 플래그는 databaseFlags 컬렉션으로 settings 아래에 나열됩니다. 출력에서 플래그 표시에 대한 자세한 내용은 인스턴스 리소스 표시를 참조하세요.

REST v1

인스턴스에 구성된 플래그를 나열하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

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

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

출력에서 databaseFlags 필드를 확인합니다.

REST v1beta4

인스턴스에 구성된 플래그를 나열하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

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.5GB인 경우 1개
  • 7.5GB <= RAM < 13GB인 경우 2개
  • 13GB <= RAM < 26GB인 경우 4개
  • RAM >= 26GB인 경우 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_dependency_history_size integer
110000000 기본값:
- MySQL 8.4 이하: 25000
- MySQL 9.7 이상: 10000000

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참고하세요.

아니요
binlog_transaction_dependency_tracking enumeration

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참고하세요. 이 플래그는 MySQL 8.4 이상에서 지원되지 않습니다.

아니요
block_encryption_mode string
aes-keylen-mode
기본값: aes-128-ECB
아니요
bulk_insert_buffer_size integer
0 4294967295
기본값: 8388608
아니요
caching_sha2_password_storage_format string
CRYPT5 | PBKDF2_SHA512
기본값: 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
Cloud SQL용 MySQL 5.7 이상에서 지원됩니다.
아니요
cloudsql_ignore_innodb_encryption boolean on | off
기본값: off
아니요
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
231536000
기본값: 10
아니요
connection_memory_chunk_size integer
0536870912
기본값:
MySQL 8.0.28~8.0.33: 8912
MySQL 8.0.34 이상: 8192
아니요
connection_memory_limit integer
20971529223372036854775807
아니요
connection_memory_status_limit integer
167772169223372036854775807
기본값: 9223372036854775807
아니요
cte_max_recursion_depth integer
04294967295
기본값: 1000
아니요
default_authentication_plugin string
mysql_native_password|caching_sha2_password
default_password_lifetime integer 0...65535
기본값: 0
아니요
default_time_zone string
시간대는 시간대 오프셋 및 시간대 이름의 두 가지 방법으로 지정할 수 있습니다. 예를 들어 +00:00은 UTC 시간대인 런던의 시간대 오프셋이고 Europe/London는 시간대 이름입니다.

-12:59~+13:00의 값을 사용하여 시간대 오프셋을 지정합니다. 앞에 0이 와야 합니다.

시간대 이름을 사용하는 경우 일광 절약 시간에 대한 자동 조정이 지원됩니다. 시간대 오프셋을 사용하는 경우 지원되지 않습니다. MySQL용 Cloud SQL이 지원하는 시간대 이름 목록을 참조하세요. 이를 반영하려면 기본 인스턴스와 모든 읽기 복제본에서 이 플래그를 수동으로 업데이트해야 합니다.

Cloud SQL 인스턴스를 다시 시작하지 않고 시간대를 설정하려면 init_connect 플래그와 함께 set time_zone=timezone_offset 또는 timezone_name 명령어를 사용합니다.

default_tmp_storage_engine string
INNODB|MEMORY
기본값: INNODB
아니요
default_week_format integer
07
기본값: 0
아니요
delay_key_write enumeration
OFF, ON(기본값) 또는 ALL
아니요
disconnect_on_expired_password boolean on | off
기본값: on
div_precision_increment integer
030
기본값: 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
099
기본값은 0이며 자동으로 삭제되지 않습니다.

참고: 이 플래그는 MySQL 8.4에서 지원되지 않습니다. 대신 binlog_expire_logs_seconds를 사용하세요. 이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
explicit_defaults_for_timestamp boolean
on | off

아니요
flush_time integer
031536000
기본값: 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
167772169223372036854775807
기본값: 9223372036854775807
아니요
global_connection_memory_tracking boolean
on | off
기본값: off
아니요
group_concat_max_len integer
4 17179869184
아니요
gtid_executed_compression_period integer
04294967295
기본(버전 8.0.22 이하): 1000
기본(버전 8.0.23 이상): 0
아니요
histogram_generation_max_mem_size integer
10000004294967295
기본값: 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
11000
아니요
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_sizeinnodb_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
5099
인스턴스 RAM 범위기본값
RAM 3GB 미만해당 사항 없음 (공유 코어가 지원되지 않음)
3~8GB RAM90
8~15GB RAM92
15~100GB RAM95
RAM 100GB 초과97
아니요
innodb_cloudsql_optimized_write boolean

이 플래그는 Cloud SQL Enterprise Plus 버전을 사용하는 인스턴스에만 사용할 수 있습니다. 이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

innodb_cmp_per_index_enabled boolean
on | off
아니요
innodb_commit_concurrency integer
01000
innodb_compression_failure_threshold_pct integer
0100
아니요
innodb_compression_level integer
09
아니요
innodb_compression_pad_pct_max integer
075
아니요
innodb_concurrency_tickets integer
1 4294967295
아니요
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.00012700
기본값: 1

MySQL 5.7 이상에서 지원됩니다.

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
innodb_flush_log_at_trx_commit integer
1, 2
기본값: 1

이 플래그를 사용 설정한 복제본을 승격하면 플래그가 자동으로 삭제되어 승격된 복제본이 기본적으로 완전한 내구성을 갖게 됩니다. 승격된 복제본에 이 플래그를 사용하려면 승격 후 플래그를 복제본으로 업데이트하면 됩니다.

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
innodb_flush_method string

옵션: fsync, O_DIRECT, O_DSYNC

기본값: O_DIRECT
innodb_flush_neighbors enumeration
02
기본값:
- 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
132
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
11073741824
아니요
innodb_log_buffer_size integer
262144 4294967295
innodb_log_checksums boolean
on | off
기본값: on
아니요
innodb_log_file_size integer
- MySQL 5.6: 1048576274877906944
- MySQL 5.7~8.4: 4194304274877906944
- MySQL 9.7: 데이터베이스에서 삭제됨

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

innodb_log_spin_cpu_abs_lwm integer
04294967295
기본값: 80
아니요
innodb_log_spin_cpu_pct_hwm integer
0100
기본값: 50
아니요
innodb_log_wait_for_flush_spin_hwm integer
04294967295
기본값: 400
아니요
innodb_log_write_ahead_size integer
51265536
기본값: 8192
아니요
innodb_lru_scan_depth integer
100 9223372036854775807
아니요
innodb_max_dirty_pages_pct float
099.99
기본값: 90
아니요
innodb_max_dirty_pages_pct_lwm float
099.99
기본값: 10
아니요
innodb_max_purge_lag integer
04294967295
기본값: 0
아니요
innodb_max_undo_log_size integer
104857609223372036854775807
기본값: 1073741824
아니요
innodb_max_purge_lag_delay integer
010000000
기본값: 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
기본값: 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
1002147483647
기본값:
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
1256
기본값: 4
아니요
innodb_print_all_deadlocks boolean
on | off
기본값: off
아니요
innodb_print_ddl_logs boolean
on | off
아니요
innodb_purge_batch_size integer
15000
기본값: 300
아니요
innodb_purge_rseg_truncate_frequency integer
1128
기본값: 128
아니요
innodb_purge_threads integer
132
기본값:
- 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
164
innodb_redo_log_capacity integer
- MySQL 8.0.33 이하: 8388608 (8MB)~137438953472 (128GB)
- MySQL 8.0.34 이상: 8388608 (8MB)~549755813888 (512GB)

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
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
기본값: 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
기본값: 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
기본값: 8388608
아니요
key_cache_age_threshold integer
100 9223372036854775807
기본값: 300
아니요
key_cache_block_size integer
512 16384
기본값: 1024
아니요
key_cache_division_limit integer
1 100
기본값: 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"
기본값: UTC
아니요
long_query_time float
030000000

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
기본값: 4294967296
아니요
max_binlog_size integer
4096 1073741824
아니요
max_binlog_stmt_cache_size integer
4096 4294967296
기본값: 4294967296
아니요
max_connect_errors integer
1 9223372036854775807
기본값: 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
기본값: 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"
기본값: nulls_unequal
아니요
myisam_use_mmap boolean
on | off
기본값: off
아니요
mysql_native_password_proxy_users boolean
on | off
기본값: off
아니요
net_buffer_length integer
1024 1048576
기본값: 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
기본값: 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
기본값: MySQL 5.6, 5.7의 경우 off
기본값: RAM이 12GB 미만인 MySQL 8.0 이상의 경우 off
기본값: RAM이 12GB 이상인 MySQL 8.0 이상의 경우 on

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
01048576
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
-11048576

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
기본값: 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
0200
기본값: 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
-11048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참고하세요.

performance_schema_max_sql_text_length integer
01048576

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
기본값: 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
기본값: 32
아니요
replica_checkpoint_group integer
32524280
기본값은 512입니다.

이 플래그는 멀티스레딩이 사용 설정되지 않은 복제본에 영향을 주지 않습니다.

아니요
replica_checkpoint_period integer
14294967295
기본값은 300입니다.

단위는 밀리초입니다.

아니요
replica_compressed_protocol boolean
on | off
아니요
replica_net_timeout integer
131536000

단위는 초입니다.

아니요
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
09223372036854775807
아니요
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
기본값: 8192
아니요
schema_definition_cache integer
256 524288
기본값: 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
32524280
기본값은 512입니다.

이 플래그는 멀티스레딩이 사용 설정되지 않은 복제본에 영향을 주지 않습니다.

아니요
slave_checkpoint_period integer
14294967295
기본값은 300입니다.

단위는 밀리초입니다.

아니요
slave_compressed_protocol boolean
on | off
아니요
slave_net_timeout integer
131536000

단위는 초입니다.

아니요
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
09223372036854775807
아니요
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
기본값: 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
기본값: 256
아니요
table_open_cache integer
1 524288
아니요
table_open_cache_instances integer
1 64
table_open_cache_triggers integer
1524288
기본값: 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 DST 동의어 이름
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
Israel
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/Currie
Australia/Tasmania
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 Turkey
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 Europe/Belgrade
Europe/Ljubljana
Europe/Podgorica
Europe/Skopje
Europe/Zagreb
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
UTC +00:00 +00:00 Etc/UTC
Etc/UCT
Etc/Universal
Etc/Zulu

Cloud SQL의 시간대 테이블은 최신 데이터로 새로고침해야 할 수 있습니다. 예를 들어 국가가 DST 시간대 오프셋에서 STD 오프셋으로 전환하거나 국가에서 다른 시간대를 도입할 수 있습니다.

Cloud SQL의 모든 중요 서비스 에이전트(CSA) 출시마다 시간대 테이블이 최신 데이터로 새로고침됩니다. 이 경우 비유지보수 기간 동안 복제본 인스턴스가 새로고침됩니다. 그러면 기본 인스턴스가 유지보수 기간 중에 새로고침됩니다.

CSA 출시의 정기 유지보수 기간까지 기다리거나 셀프서비스 유지보수를 수행하여 시간대 테이블을 최신 데이터로 새로고침할 수 있습니다. 사용 가능한 유지보수 버전 보기에 대한 자세한 내용은 대상 유지보수 버전 확인을 참조하세요.

플래그 작업 도움말

general_log, slow_query_log

general 또는 slow query 로그를 사용하려면 해당 플래그를 사용 설정하고 log_output 플래그를 FILE로 설정합니다. 이렇게 하면 Google Cloud 콘솔의 로그 뷰어를 사용하여 로그를 출력할 수 있습니다. Google Cloud Observability 로깅 요금이 적용됩니다. 인스턴스 스토리지 비용을 최소화하기 위해 로그 파일이 24시간 (그리고 이 기간 동안 변경사항이 없는 경우) 또는 100MB를 초과하면 인스턴스 디스크의 generalslow query 로그가 순환됩니다. 이전 로그 파일은 순환 후에 자동으로 삭제됩니다.

log_outputNONE으로 설정된 경우 로그에 액세스할 수 없습니다. log_outputTABLE로 설정하면 로그 출력이 mysql 시스템 데이터베이스의 테이블에 배치됩니다. 이는 상당량의 디스크 공간을 소비할 수 있습니다. 이 테이블이 커지면 인스턴스 재시작 시간에 영향을 주거나 인스턴스에 SLA가 적용되지 않을 수 있습니다. 이러한 이유로 TABLE 옵션은 권장되지 않습니다. 또한 로그 콘텐츠는 로그 탐색기에서 제공되지 않으며 순환되지 않습니다. 필요한 경우 API를 사용하여 로그 테이블을 자를 수 있습니다. 자세한 내용은 instances.truncateLog 참조 페이지를 확인하세요.

expire_logs_days, binlog_expire_logs_seconds
PITR(point-in-time recovery)를 사용 설정하면 트랜잭션 로그 보관 기간과 이러한 플래그의 값 중 더 작은 값에 따라 바이너리 로그의 만료 기간이 결정됩니다. 이러한 플래그를 사용하여 바이너리 로그가 복제본에 저장되는 기간을 관리할 수 있습니다. expire_logs_days 플래그는 MySQL 8.4 이상에서 삭제되었습니다. 자세한 내용은 트랜잭션 로그 보관을 참고하세요.
innodb_buffer_pool_size

이 플래그의 값은 버퍼 풀의 크기(바이트)입니다. 버퍼 풀 크기는 항상 innodb_buffer_pool_chunk_sizeinnodb_buffer_pool_instances을 곱한 값과 같거나 그 배수여야 합니다. 버퍼 풀 크기를 innodb_buffer_pool_chunk_sizeinnodb_buffer_pool_instances의 곱과 같지 않거나 그 배수가 아닌 값으로 변경하면 Cloud SQL에서 버퍼 풀 크기를 자동으로 조정합니다. RAM이 3,840MiB 미만인 인스턴스에는 이 플래그를 사용 설정할 수 없습니다.

공유 코어 머신 유형(f1_micro 및 g1_small)에는 이 플래그를 구성할 수 없습니다. MySQL 5.6에서 이 플래그를 변경하려면 다시 시작해야 합니다.

Cloud SQL에서 innodb_buffer_pool_size 플래그의 기본값, 최소 허용 값, 최대 허용 값은 인스턴스의 메모리에 따라 다릅니다. 이러한 값은 인스턴스 RAM의 백분율로 대략 계산될 수 있습니다. 기본적으로 이 플래그 값은 일반적으로 최대 허용 값에 가깝게 설정됩니다. 인스턴스 크기에 따라 허용되는 최대 할당 비율이 증가합니다. 최소 허용 값은 일반적으로 인스턴스 RAM의 약 20%입니다.

이 플래그의 대략적인 값:

인스턴스 RAM 범위최소 %기본 %최대 %
RAM 0 - 4.0GB~34%
4.0GB - 7.5GB~20%~34%~34%
7.5GB - 12GB~20%~52%~52%
12GB - 24GB~20%~67%~67%
24GB 이상~20%~72%~72%

정확한 값은 다를 수 있습니다. 관리형 버퍼 풀이 사용 설정되면 Google Cloud 콘솔에 반영되지 않는 innodb_buffer_pool_size이 조정됩니다. 인스턴스의 현재 값을 계산하려면 쿼리를 실행하면 됩니다.

  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 처리량을 적응적으로 활용하여 버퍼 풀 준비를 가속화합니다. 대부분의 사용 사례에서 이 플래그를 사용 설정하면 처리량 향상, 지연 시간 감소와 같은 성능 개선을 경험할 수 있습니다. 하지만 데이터베이스 쓰기 작업으로 인해 서버에 매우 심한 부하가 발생하는 경우 이 플래그로 인해 일부 백그라운드 활동이 지연될 수 있습니다. 이 지연으로 인해 디스크 사용량이 약간 증가할 수 있으나, 부하가 줄어들면 디스크 사용량이 자동으로 감소합니다. 기본적으로 innodb_cloudsql_optimized_write 플래그는 신규 및 업그레이드된 모든 Cloud SQL Enterprise Plus 버전 인스턴스에 사용 설정됩니다. 기존 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_commitsync_binlog 플래그를 기본값 1로 설정해야 합니다. 기본값을 변경하면 내구성이 저하되어 기본 인스턴스와 복제본이 일치하지 않을 수 있습니다. 따라서 인스턴스에는 SLA가 적용되지 않습니다 또한 다음 중 하나가 발생할 수 있습니다.
  • 리전별 HA 인스턴스의 VM 비정상 종료 또는 장애 조치와 같은 특정 상황에서 데이터 손실
  • 바이너리 로그 및 InnoDB 데이터 파일에서 동기화되지 않은 데이터
  • PITR 데이터 손실 또는 장애
  • 기본 인스턴스와 복제본 간의 데이터 불일치
  • 복제 중단
innodb_flush_log_at_trx_commit 또는 sync_binlog 플래그 값을 기본, 독립형, HA 인스턴스의 기본값이 아닌 값으로 설정하면 내구성이 저하됩니다. 읽기 복제본에 더 높은 성능이 필요하면 innodb_flush_log_at_trx_commit 값을 2로 설정하는 것이 좋습니다. Cloud SQL은 이 플래그의 값을 0으로 설정할 수 없습니다. 플래그 값을 2로 설정하면 복제본에서 바이너리 로그를 사용 중지하거나 sync_binlog를 성능 향상을 위해 1이 아닌 다른 값으로 설정해야 합니다. 백업을 수행할 때 Cloud SQL에서 innodb_flush_log_at_trx_commitsync_binlog 플래그 값을 일시적으로 기본값으로 변경할 수 있습니다. 이러면 백업을 수행할 때 성능이 저하될 수 있습니다. 인스턴스에 영향을 주지 않도록 하려면 인스턴스 사용량이 적을 때 백업 기간을 변경하면 됩니다. 자세한 내용은 주문형 및 자동 백업 만들기 및 관리를 참고하세요.
innodb_flush_log_at_timeout

innodb_flush_log_at_timeout을 사용하면 페이지 플러시 실행 빈도를 수정할 수 있으므로 바이너리 로그 그룹 커밋의 성능에 영향을 주지 않습니다. 기본 설정은 초당 1회입니다.

Cloud SQL은 기간을 마이크로초 단위로 지정할 수 있도록 이 플래그를 확장했습니다.

예:

  • 0.001: 1밀리초 지정
  • 0.0001: 100마이크로초 지정
  • 12.5: 12.5초 지정
  • 12.005: 12초 5밀리초 지정
  • 0.005100: 5밀리초 100마이크로초 지정

특정 워크로드의 경우 트랜잭션 손실 가능성으로 인해 플러싱 페이지에 초 단위를 사용할 수 없습니다. 대신 마이크로초 단위로 페이지를 플러시하면 내구성을 크게 떨어뜨리지 않고도 성능을 유지할 수 있습니다.

innodb_flush_log_at_timeout 플래그의 마이크로초 기간은 innodb_flush_log_at_trx_commit 내구성 플래그가 2로 설정된 경우에만 적용됩니다.

페이지의 플러시 실행 빈도가 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 (100MB)를 사용합니다. innodb_redo_log_capacity 플래그는 구성하지 않고 innodb_log_file_size 플래그만 구성하면 innodb 재실행 로그 크기의 값이 innodb_log_file_size * innodb_log_file_in_group으로 계산됩니다. 예를 들어 innodb_log_file_size를 10GB로 구성하고 innodb_log_file_in_group의 기본값이 2인 경우 innodb 재실행 로그 크기의 유효 값은 20GB입니다.

MySQL용 Cloud SQL 버전 9.7 이상에서는 innodb_log_file_sizeinnodb_log_file_in_group 플래그가 Cloud SQL에서 삭제됩니다. innodb_redo_log_capacity 플래그의 기본값은 인스턴스의 버전과 RAM 용량에 따라 다음 표에 나열된 대로 설정됩니다.

Cloud SQL 버전RAM기본값
Cloud SQL Enterprise 버전모든 크기1GB
Cloud SQL Enterprise Plus 버전100GB 미만1GB
Cloud SQL Enterprise Plus 버전100GB 초과1.5GB
max_heap_table_size, tmp_table_size

tmp_table_sizemax_heap_table_size를 인스턴스가 처리하는 동시 실행 쿼리 수보다 너무 높게 설정하면 사용 가능한 인스턴스 메모리가 소진될 수 있습니다. 메모리가 소진되면 인스턴스가 비정상적으로 종료되며 다시 시작됩니다.

이러한 플래그의 사용 방법에 대한 자세한 내용은 MySQL의 내부 임시 테이블 사용법MEMORY 스토리지 엔진을 참조하세요.

performance_schema

공유 코어(RAM 3GB 미만)가 있는 인스턴스에서는 이 플래그를 사용 설정할 수 없습니다. 이 플래그를 사용 설정하면 머신 유형을 플래그를 지원하지 않는 크기로 변경할 수 없습니다. 먼저 이 플래그를 중지해야 합니다.

RAM이 12GB~15GB인 MySQL 8.0 이상 인스턴스의 경우 performance_schema의 기본값은 on이지만 기본 성능 스키마 계측기는 사용 중지됩니다. 기본 성능 스키마 계측기에 관한 자세한 내용은 setup_instruments 테이블 (MySQL 8.0) 또는 setup_instruments 테이블 (MySQL 8.4)을 참고하세요. 12GB~15GB RAM 인스턴스에서 성능 스키마 계측기를 사용 설정하려면 기본값으로 연기하는 대신 performance_schema 플래그를 on명시적으로 설정해야 합니다. RAM이 15GB 이상인 MySQL 8.0 이상 인스턴스의 경우 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 명령어를 사용하려면 cloudsqlsuperuser 역할에 부여되는 CLOUDSQL_SPECIAL_SYSEM_VARIABLES_ADMIN 권한이 필요합니다. 참고: CLOUDSQL_SPECIAL_SYSEM_VARIABLES_ADMIN 권한은 Cloud SQL용 MySQL 8.0에서만 사용할 수 있습니다. 특정 사용자에게 특별한 권한 액세스를 부여하는 방법은 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 기본 제공 인증 플러그인이 프록시 사용자를 지원하는지 여부를 제어합니다. check_proxy_users 시스템 변수가 사용 설정되어 있지 않으면 플래그는 아무런 영향을 미치지 않습니다.

binlog_order_commits

binlog_order_commits 플래그의 기본값은 ON입니다. 이 플래그의 기본값을 변경하지 않는 것이 좋습니다. 기본값을 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
skip_name_resolve 사용
relay_log_info_repository TABLE MySQL 8.4에서 삭제됨
relay_log_recovery 사용
master_info_repository TABLE 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 이상의 part_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를 사용하면 grantrevoke 명령어를 사용하여 모든 데이터베이스 스키마에 대한 권한을 부여하고 일부 데이터베이스 스키마에 대한 액세스를 제한할 수 있습니다.

      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 명령어에 사용할 때 특수 처리되어야 합니다.

다음 단계