이 페이지에서는 Cloud SQL에 데이터베이스 플래그를 구성하는 방법을 설명하고 인스턴스에 설정할 수 있는 플래그를 알아봅니다. 데이터베이스 플래그는 MySQL 매개변수 조정, 옵션 조정, 인스턴스 구성 및 조정을 포함한 여러 작업에 사용합니다.
경우에 따라 한 플래그를 설정할 때 원하는 기능을 완전히 활성화하기 위해 다른 플래그를 설정해야 할 수도 있습니다. 예를 들어 느린 쿼리 로깅을 사용 설정하여 Google Cloud Console 로그 탐색기를 통해 로그를 보려면 slow_query_log
플래그를 on
으로, log_output
플래그를 FILE
로 설정해야 합니다.
데이터베이스 인스턴스의 플래그를 설정, 삭제, 수정하면 데이터베이스가 다시 시작될 수 있습니다. 플래그 값은 인스턴스를 삭제하기 전까지 유지됩니다. 인스턴스가 복제본의 소스이며 인스턴스를 다시 시작하는 경우 복제본은 인스턴스의 현재 구성에 맞게 다시 시작됩니다.
데이터베이스 플래그 구성
데이터베이스 플래그 설정
콘솔
- Google Cloud Console에서 새 콘솔 프로젝트를 만들거나 프로젝트 이름을 선택하여 기존 프로젝트를 엽니다.
- 인스턴스를 열고 수정을 클릭합니다.
- 플래그 섹션까지 아래로 스크롤합니다.
- 이전에 인스턴스에 설정되지 않은 플래그를 설정하려면 항목 추가를 클릭하고 드롭다운 메뉴에서 플래그를 선택한 다음 값을 설정합니다.
- 저장을 클릭하여 변경사항을 저장합니다.
- 개요 페이지의 플래그에서 변경사항을 확인합니다.
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 리소스를 사용합니다.
변경사항 적용
Google Cloud 프로젝트에 Terraform 구성을 적용하려면 다음 단계를 완료하세요.
- Cloud Shell을 실행합니다.
-
Terraform 구성을 적용할 Google Cloud 프로젝트를 설정합니다.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
-
디렉터리를 만들고 해당 디렉터리에 새 파일을 엽니다. 파일 이름에는
.tf
확장자가 있어야 합니다(예:main.tf
).mkdir DIRECTORY && cd DIRECTORY && nano main.tf
- 샘플을
main.tf
에 복사합니다. - 환경에 적용할 샘플 매개변수를 검토하고 수정합니다.
Ctrl-x
를 누른 후y
를 눌러 변경사항을 저장합니다.-
Terraform을 초기화합니다.
terraform init
-
구성을 검토하고 Terraform에서 만들거나 업데이트할 리소스가 예상과 일치하는지 확인합니다.
terraform plan
필요에 따라 구성을 수정합니다.
-
다음 명령어를 실행하고 프롬프트에
yes
를 입력하여 Terraform 구성을 적용합니다.terraform apply
Terraform에 '적용 완료' 메시지가 표시될 때까지 기다립니다.
- 결과를 보려면 Google Cloud 프로젝트를 엽니다. Google Cloud 콘솔에서 UI의 리소스로 이동하여 Terraform이 리소스를 만들었거나 업데이트했는지 확인합니다.
변경사항 삭제
변경사항을 삭제하려면 다음 단계를 따르세요.
- Terraform 구성 파일에서 삭제 보호를 사용 중지하려면
deletion_protection
인수를false
로 설정합니다.deletion_protection = "false"
- 다음 명령어를 실행하고 프롬프트에
yes
를 입력하여 업데이트된 Terraform 구성을 적용합니다.terraform apply
-
다음 명령어를 실행하고 프롬프트에
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
명령어는 기존 플래그를 요청에 지정된 플래그로 덮어씁니다.
모든 플래그를 기본값으로 지정
콘솔
- Google Cloud Console에서 새 콘솔 프로젝트를 만들거나 프로젝트 이름을 선택하여 기존 프로젝트를 엽니다.
- 인스턴스를 열고 수정을 클릭합니다.
- 데이터베이스 플래그 섹션을 엽니다.
- 표시된 모든 플래그 옆에 있는 X를 클릭합니다.
- 저장을 클릭하여 변경사항을 저장합니다.
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 인스턴스에 설정된 플래그를 확인하려면 다음 안내를 따르세요.
콘솔
- Google Cloud Console에서 새 콘솔 프로젝트를 만들거나 프로젝트 이름을 선택하여 기존 프로젝트를 엽니다.
- 인스턴스를 선택하여 인스턴스 개요 페이지를 엽니다.
데이터베이스 플래그 섹션에 설정된 데이터베이스 플래그가 나열됩니다.
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 | I | L | M | N | O | P | Q | R | S | T | U | W
Cloud SQL 플래그 | 유형 허용 값 및 참고사항 |
다시 시작 필요 |
---|---|---|
activate_all_roles_on_login |
boolean on | off
기본값: off
|
아니요 |
auto_increment_increment | integer 1 ... 65535 |
아니요 |
auto_increment_offset | integer 1 ... 65535 |
아니요 |
binlog_cache_size | integer 4096 ... 9223372036854775807 |
아니요 |
binlog_expire_log_seconds | integer 0 또는 86400 (1 day) ... 4294967295 (max value) 기본값은 2592000이며 30일에 해당합니다. 이 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
아니요 |
binlog_group_commit_sync_delay | 0 ... 1000000
기본값은 0입니다. |
아니요 |
binlog_group_commit_sync_no_delay_count | 0 ... 1000000
기본값은 0입니다. |
아니요 |
binlog_row_image | enumeration full (기본값), minimal 또는 noblob |
아니요 |
binlog_stmt_cache_size | 4096 ... 9223372036854775807 |
아니요 |
binlog_transaction_dependency_history_size | integer
이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요. |
아니요 |
binlog_transaction_dependency_tracking | enumeration
이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요. |
아니요 |
character_set_server | string utf8 또는 utf8mb4 (권장) |
예 |
cloudsql_allow_analyze_table | 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
|
아니요 |
default_password_lifetime | integer 0...65535
기본값: 0
|
아니요 |
default_time_zone | string 시간대는 시간대 오프셋 및 시간대 이름의 두 가지 방법으로 지정할 수 있습니다. 예를 들어 +00:00 은 UTC 시간대인 런던의 시간대 오프셋이고 Europe/London 는 시간대 이름입니다.
시간대 이름을 사용하는 경우 일광 절약 시간에 대한 자동 조정이 지원됩니다. 시간대 오프셋을 사용하는 경우 지원되지 않습니다. MySQL용 Cloud SQL이 지원하는 시간대 이름 목록을 참조하세요. 이를 반영하려면 기본 인스턴스와 모든 읽기 복제본에서 이 플래그를 수동으로 업데이트해야 합니다. Cloud SQL 인스턴스를 다시 시작하지 않고 시간대를 설정하려면 |
예 |
disconnect_on_expired_password | boolean on | off
기본값: on
|
예 |
eq_range_index_dive_limit | integer 0 ... 2147483647 |
아니요 |
event_scheduler | boolean on | off 이벤트 스케줄러를 사용하는 경우 활성화 정책이 ALWAYS인 인스턴스를 구성하여 예약된 이벤트가 실행되도록 합니다. |
아니요 |
expire_log_days | integer 0 ... 99 기본값은 0이며 자동으로 삭제되지 않습니다. 이 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
아니요 |
explicit_defaults_for_timestamp | boolean on | off |
예 |
ft_max_word_len | integer 10 ... 252 |
예 |
ft_min_word_len | integer 1 ... 16 |
예 |
ft_query_expansion_limit | integer 0 ... 1000 |
예 |
general_log | boolean on | off 일반 로그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
아니요 |
generated_random_password_length | integer 5-255
기본값: 20
|
아니요 |
group_concat_max_len | integer 4 ... 17179869184 |
아니요 |
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_autoinc_lock_mode | integer 0 ... 2 |
예 |
innodb_buffer_pool_size | integer
MySQL 5.6에 이 플래그를 설정하면 다시 시작해야 합니다. 이 플래그에 대한 자세한 내용은 도움말 섹션을 참조하세요. | 아니요 |
innodb_change_buffer_max_size | integer 0 ... 50 |
아니요 |
innodb_concurrency_tickets | integer 1 ... 4294967295 |
아니요 |
innodb_file_per_table | boolean on | off 이 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
아니요 |
innodb_fill_factor | integer 10 ... 100 |
아니요 |
innodb_flush_log_at_trx_commit | integer 1, 2 기본값: 1 .
이 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
아니요 |
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 MySQL 5.6 이상 버전에서만 지원됩니다. |
예 |
innodb_ft_min_token_size | integer 0 ... 16
MySQL 5.6 이상 버전에서만 지원됩니다. |
예 |
innodb_ft_num_word_optimize | integer 1000 ... 10000 |
아니요 |
innodb_ft_result_cache_limit | integer 1000000 ... 4294967295 |
아니요 |
innodb_ft_server_stopword_table | string
MySQL 5.6 이상 버전에서만 지원됩니다. |
아니요 |
innodb_ft_sort_pll_degree | integer 1 ... 32 |
예 |
innodb_ft_total_cache_size | integer 32000000 ... 1600000000 |
예 |
innodb_ft_user_stopword_table | string |
아니요 |
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_file_size | integer MySQL 5.6: 1048576 ... 274877906944 MySQL 5.7: 4194304 ... 274877906944 |
예 |
innodb_lru_scan_depth | integer 100 ... 9223372036854775807 |
아니요 |
innodb_old_blocks_pct | integer 5 ... 95 |
아니요 |
innodb_old_blocks_time | integer 0 ... 4294967295 |
아니요 |
innodb_online_alter_log_max_size | integer 65536 ... 9223372036854775807 |
아니요 |
innodb_optimize_fulltext_only | boolean on | off |
아니요 |
innodb_print_all_deadlocks | boolean on | off |
아니요 |
innodb_purge_threads | 1 ... 32
기본값은 1입니다. |
예 |
innodb_random_read_ahead | boolean on | off |
아니요 |
innodb_read_ahead_threshold | integer 0 ... 64 |
아니요 |
innodb_read_io_threads | integer 1 ... 64
|
예 |
innodb_replication_delay | integer 0 ... 4294967295 |
아니요 |
innodb_rollback_on_timeout | boolean on | off |
예 |
innodb_rollback_segments | integer 1 ... 128 |
아니요 |
innodb_sort_buffer_size | integer 65536 ... 67108864 |
예 |
innodb_stats_auto_recalc | boolean on | 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_thread_concurrency | integer 0 ... 1000 |
아니요 |
innodb_thread_sleep_delay | integer 0 ... 1000000 |
아니요 |
innodb_write_io_threads | integer 1 ... 64 |
예 |
interactive_timeout | integer 1 ... 31536000 |
아니요 |
internal_tmp_mem_storage_engine | enumeration MEMORY , TempTable 이 플래그는 MySQL 8.0에서만 사용됩니다. |
아니요 |
join_buffer_size | integer 128 ... 9223372036854775807 |
아니요 |
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_queries_not_using_indexes | boolean on | off |
아니요 |
log_throttle_queries_not_using_indexes | integer 0 ... 9223372036854775807 |
아니요 |
long_query_time | float 0 ... 30000000 Cloud SQL에서는 필요한 경우 이 플래그를 1 미만으로 설정할 수 있습니다.
|
아니요 |
lower_case_table_names | integer 0 또는 1 대부분의 경우 테이블 및 데이터베이스 이름의 대소문자를 구분하기 위해 기본값인 0을 사용합니다. 이 플래그 값을 변경해야 하는 경우 변경사항이 기존 테이블 및 데이터베이스에 미치는 영향을 이해하고 있어야 합니다. |
예 |
mandatory_roles | string role name
기본값: empty string
|
아니요 |
max_allowed_packet | integer 16384 ... 1073741824 sql_mode=TRADITIONAL 또는 sql_mode=STRICT_ALL_TABLES인 경우 이 값은 1024의 배수여야 합니다. |
아니요 |
max_binlog_size | integer 4096 ... 1073741824 |
아니요 |
max_connections | integer 14 ... 262143
|
아니요 |
max_digest_length | integer 0 ... 1048576 |
예 |
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 |
아니요 |
net_read_timeout | integer 30 ... 4294967295 |
아니요 |
net_retry_count | integer 10 ... 4294967295 |
아니요 |
net_write_timeout | integer 60 ... 4294967295 |
아니요 |
optimizer_prune_level | integer 0 ... 1 |
아니요 |
optimizer_search_depth | integer 0 ... 62 |
아니요 |
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 기본값: 기본값: performance_schema 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
예 |
performance_schema_accounts_size | integer -1 ... 1048576 performance_schema 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
예 |
performance_schema_digests_size | integer -1 ... 1048576 performance_schema 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
예 |
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_file_classes | integer 0 ... 256 performance_schema 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
예 |
performance_schema_max_file_handles | integer 0 ... 1048576 performance_schema 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
예 |
performance_schema_max_file_instances | integer -1 ... 1048576 performance_schema 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
예 |
performance_schema_max_index_stat | integer -1 ... 1048576 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_users_size | integer -1 ... 1048576 performance_schema 플래그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
예 |
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 |
아니요 |
show_compatibility_56 | boolean on | off MySQL 5.7에서만 지원됩니다. |
아니요 |
skip_show_database | flag on | off |
예 |
slave_parallel_type | enumeration
이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요. |
아니요 |
slave_parallel_workers | integer
이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요. |
아니요 |
slave_preserve_commit_order | boolean
이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요. |
아니요 |
slave_pending_jobs_size_max | integer
이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요. |
아니요 |
slow_query_log | boolean on | off 느린 쿼리 로그에 대한 자세한 내용은 팁 섹션을 참조하세요. |
아니요 |
sort_buffer_size | integer 32768 ... 9223372036854775807 |
아니요 |
sql_mode | string
MySQL용 Cloud SQL은 |
아니요 |
stored_program_cache | integer 16 ... 524288 |
아니요 |
sync_binlog | integer 0 ... 4294967295 MySQL 5.7 및 8.0의 읽기 복제본과 외부 서버 복제본에서만 지원됩니다. 기본 설정인 1은 트랜잭션이 커밋되기 전에 디스크에 바이너리 로그 동기화를 사용 설정합니다. 기본 인스턴스 또는 기존 HA 장애 조치 복제본에서는 이 플래그가 지원되지 않습니다. 이 플래그를 사용하는 복제본이 승격되면 플래그가 삭제됩니다. |
아니요 |
table_definition_cache | integer 400 ... 524288 |
아니요 |
table_open_cache | integer 1 ... 524288 |
아니요 |
table_open_cache_instances | integer 1 ... 64 |
예 |
thread_cache_size | integer 0 ... 16384 |
아니요 |
thread_stack | integer 131072 ... 9223372036854775807 |
예 |
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
이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요. |
아니요 |
updatable_views_with_limit | integer 0 ... 1 |
아니요 |
wait_timeout | integer 1 ... 31536000 |
아니요 |
시간대 이름
다음은 MySQL용 Cloud SQL이 지원하는 시간대 이름 목록입니다. 시간대 이름은 대소문자를 구분하지 않습니다. 어떠한 경우든 시간대 이름을 제공할 수 있습니다.
"Africa/Cairo"
"Africa/Casablanca"
"Africa/Harare"
"Africa/Monrovia"
"Africa/Nairobi"
"Africa/Tripoli"
"Africa/Windhoek"
"America/Araguaina"
"America/Asuncion"
"America/Bogota"
"America/Buenos_Aires"
"America/Caracas"
"America/Chihuahua"
"America/Cuiaba"
"America/Denver"
"America/Fortaleza"
"America/Guatemala"
"America/Halifax"
"America/Manaus"
"America/Matamoros"
"America/Monterrey"
"America/Montevideo"
"America/Phoenix"
"America/Santiago"
"America/Tijuana"
"Asia/Amman"
"Asia/Ashgabat"
"Asia/Baghdad"
"Asia/Baku"
"Asia/Bangkok"
"Asia/Beirut"
"Asia/Calcutta"
"Asia/Damascus"
"Asia/Dhaka"
"Asia/Irkutsk"
"Asia/Jerusalem"
"Asia/Kabul"
"Asia/Karachi"
"Asia/Kathmandu"
"Asia/Krasnoyarsk"
"Asia/Magadan"
"Asia/Muscat"
"Asia/Novosibirsk"
"Asia/Riyadh"
"Asia/Seoul"
"Asia/Shanghai"
"Asia/Singapore"
"Asia/Taipei"
"Asia/Tehran"
"Asia/Tokyo"
"Asia/Ulaanbaatar"
"Asia/Vladivostok"
"Asia/Yakutsk"
"Asia/Yerevan"
"Atlantic/Azores"
"Australia/Adelaide"
"Australia/Brisbane"
"Australia/Darwin"
"Australia/Hobart"
"Australia/Perth"
"Australia/Sydney"
"Brazil/East"
"Canada/Newfoundland"
"Canada/Saskatchewan"
"Canada/Yukon"
"Europe/Amsterdam"
"Europe/Athens"
"Europe/Dublin"
"Europe/Helsinki"
"Europe/Istanbul"
"Europe/Kaliningrad"
"Europe/Moscow"
"Europe/Paris"
"Europe/Prague"
"Europe/Sarajevo"
"Pacific/Auckland"
"Pacific/Fiji"
"Pacific/Guam"
"Pacific/Honolulu"
"Pacific/Samoa"
"US/Alaska"
"US/Central"
"US/Eastern"
"US/East-Indiana"
"US/Pacific"
"UTC"
플래그 작업 도움말
- general_log, slow_query_log
-
general
또는slow query
로그를 사용하려면 해당 플래그를 사용 설정하고log_output
플래그를FILE
로 설정합니다. 이렇게 하면 Google Cloud Console의 로그 뷰어를 사용하여 로그를 출력할 수 있습니다. Google Cloud의 작업 제품군 로깅 요금이 적용됩니다. 인스턴스 스토리지 비용을 최소화하기 위해 로그 파일이 24시간(그리고 이 기간 동안 변경사항이 없는 경우) 또는 100MB를 초과하면 인스턴스 디스크의general
및slow query
로그가 순환됩니다. 이전 로그 파일은 순환 후에 자동으로 삭제됩니다.log_output
이NONE
으로 설정된 경우 로그에 액세스할 수 없습니다.log_output
을TABLE
로 설정하면 로그 출력이 mysql 시스템 데이터베이스의 테이블에 배치됩니다. 이는 상당량의 디스크 공간을 소비할 수 있습니다. 이 테이블이 커지면 인스턴스 재시작 시간에 영향을 주거나 인스턴스에 SLA가 적용되지 않을 수 있습니다. 이러한 이유로TABLE
옵션은 권장되지 않습니다. 또한 로그 콘텐츠는 로그 탐색기에서 제공되지 않으며 순환되지 않습니다. 필요한 경우 API를 사용하여 로그 테이블을 자를 수 있습니다. 자세한 내용은 instances.truncateLog 참조 페이지를 확인하세요.
- expire_logs_days, binlog_expire_logs_seconds
- PITR(point-in-time recovery)를 사용 설정하면 트랜잭션 로그 보관 기간과 이러한 플래그의 값 중 더 작은 값에 따라 바이너리 로그의 만료 기간이 결정됩니다. 이러한 플래그를 사용하여 바이너리 로그가 복제본에 저장되는 기간을 관리할 수 있습니다. 자세한 내용은 트랜잭션 로그 보관 페이지를 참조하세요.
- innodb_buffer_pool_size
innodb_buffer_pool_size 값은 버퍼 풀 크기(바이트)입니다. 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% 정확한 값은 다를 수 있습니다. 인스턴스의 현재 값을 계산하려면 쿼리를 실행하면 됩니다.
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%)
모든 MySQL 버전 5.6 이상에서 기본값은 ON
입니다.
sync_binlog
를 1이 아닌 다른 값으로 설정해야 합니다.
읽기 복제본과 외부 서버 복제본에만 이 플래그를 사용 설정할 수 있습니다. 외부 서버 복제본의 경우 전체 ACID 규정 준수를 위해 이 플래그를 기본값 1로 설정해야 합니다. 기본 인스턴스 또는 장애 조치 복제본에서는 이 플래그를 사용 설정할 수 없습니다.
tmp_table_size
및 max_heap_table_size
를 인스턴스가 처리하는 동시 실행 쿼리 수보다 너무 높게 설정하면 사용 가능한 인스턴스 메모리가 소진될 수 있습니다. 메모리가 소진되면 인스턴스가 비정상적으로 종료되며 다시 시작됩니다.
이러한 플래그의 사용 방법에 대한 자세한 내용은 MySQL의 내부 임시 테이블 사용법과 MEMORY 스토리지 엔진을 참조하세요.
RAM이 15,360MiB 미만인 인스턴스에서 이 플래그를 사용 설정할 수 없습니다. 이 플래그를 사용 설정하면 머신 유형을 플래그를 지원하지 않는 크기로 변경할 수 없습니다. 이 플래그를 먼저 중지해야 합니다.
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에서만 다름 | ||||||||||||||
innodb_flush_method | O_DIRECT | |||||||||||||||
innodb_flush_neighbors | 0(MySQL 5.6) 및 2(MySQL 5.7 및 8.0) | |||||||||||||||
innodb_io_capacity | 5000 | |||||||||||||||
innodb_buffer_pool_instances |
|
|||||||||||||||
memlock | 참 | |||||||||||||||
skip_name_resolve | 사용 | |||||||||||||||
relay_log_info_repository | 테이블 | |||||||||||||||
relay_log_recovery | 사용 | |||||||||||||||
slave_net_timeout | 30 | |||||||||||||||
master_info_repository | 테이블 | |||||||||||||||
rpl_semi_sync_master_enabled | 1 | |||||||||||||||
rpl_semi_sync_master_timeout | 3000 | |||||||||||||||
innodb_page_cleaners | 8 | MySQL 5.7, 8.0에서만 다름 | ||||||||||||||
admin_address | 127.0.0.1 | MySQL 8.0에서만 다름 | ||||||||||||||
create_admin_listener_thread | 사용 | |||||||||||||||
port-open-timeout | 120 | MySQL 8.0에서만 다름 | ||||||||||||||
innodb_io_capacity_max | 10000 |
문제 해결
문제 | 문제 해결 |
---|---|
플래그를 사용 설정한 후 인스턴스가 공황과 비정상 종료 간에 순환됩니다. | 고객지원에 연락하여 플래그 삭제 후 hard drain 을 요청합니다. 이렇게 하면 원하지 않는 플래그 또는 설정 없이 새 구성으로 인스턴스가 다른 호스트에서 강제로 다시 시작됩니다.
|
플래그를 설정하려고 하면 오류 메시지 Bad syntax for dict arg 가 표시됩니다.
| 쉼표로 구분된 목록과 같은 복잡한 매개변수 값은 gcloud 명령어에 사용할 때 특수 처리되어야 합니다. |
다음 단계
- MySQL 시스템 변수 자세히 알아보기
- 운영 가이드라인 자세히 알아보기