github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/test/testdata/resources/mysql-consensus-config-template.yaml (about) 1 apiVersion: v1 2 kind: ConfigMap 3 metadata: 4 name: mysql-consensus-template-8.0 5 labels: 6 helm.sh/chart: apecloud-mysql-0.1.8 7 app.kubernetes.io/name: apecloud-mysql 8 app.kubernetes.io/instance: release-name 9 app.kubernetes.io/version: "8.0.30" 10 app.kubernetes.io/managed-by: Helm 11 data: 12 my.cnf: |- 13 [mysqld] 14 # aliyun buffer pool: https://help.aliyun.com/document_detail/162326.html?utm_content=g_1000230851&spm=5176.20966629.toubu.3.f2991ddcpxxvD1#title-rey-j7j-4dt 15 16 {{- $log_root := getVolumePathByName ( index $.podSpec.containers 0 ) "log" }} 17 {{- $data_root := getVolumePathByName ( index $.podSpec.containers 0 ) "data" }} 18 {{- $mysql_port_info := getPortByName ( index $.podSpec.containers 0 ) "mysql" }} 19 {{- $pool_buffer_size := ( callBufferSizeByResource ( index $.podSpec.containers 0 ) ) }} 20 {{- $phy_memory := getContainerMemory ( index $.podSpec.containers 0 ) }} 21 22 {{- if $pool_buffer_size }} 23 innodb_buffer_pool_size={{ $pool_buffer_size }} 24 {{- end }} 25 26 # require port 27 {{- $mysql_port := 3306 }} 28 {{- if $mysql_port_info }} 29 {{- $mysql_port = $mysql_port_info.containerPort }} 30 {{- end }} 31 32 {{- $thread_stack := 262144 }} 33 {{- $binlog_cache_size := 32768 }} 34 {{- $join_buffer_size := 262144 }} 35 {{- $sort_buffer_size := 262144 }} 36 {{- $read_buffer_size := 262144 }} 37 {{- $read_rnd_buffer_size := 524288 }} 38 {{- $single_thread_memory := add $thread_stack $binlog_cache_size $join_buffer_size $sort_buffer_size $read_buffer_size $read_rnd_buffer_size }} 39 40 {{- if gt $phy_memory 0 }} 41 # Global_Buffer = innodb_buffer_pool_size = PhysicalMemory *3/4 42 # max_connections = (PhysicalMemory - Global_Buffer) / single_thread_memory 43 max_connections={{ div ( div $phy_memory 4 ) $single_thread_memory }} 44 {{- end}} 45 46 # alias replica_exec_mode. Aliyn slave_exec_mode=STRICT 47 slave_exec_mode=IDEMPOTENT 48 49 # gtid 50 gtid_mode=ON 51 enforce_gtid_consistency=ON 52 53 # consensus 54 loose_consensus_enabled=ON 55 loose_consensus_io_thread_cnt=8 56 loose_consensus_worker_thread_cnt=8 57 loose_consensus_election_timeout=1000 58 loose_consensus_auto_leader_transfer=OFF 59 loose_consensus_prefetch_window_size=100 60 loose_consensus_auto_reset_match_index=ON 61 loose_cluster_mts_recover_use_index=ON 62 # loose_replicate_same_server_id=ON 63 loose_consensus_large_trx=ON 64 loose_consensuslog_revise=ON 65 # loose_cluster_log_type_node=OFF 66 67 #server & instances 68 thread_stack={{ $thread_stack }} 69 thread_cache_size=60 70 # ulimit -n 71 open_files_limit=1048576 72 local_infile=ON 73 persisted_globals_load=OFF 74 sql_mode=NO_ENGINE_SUBSTITUTION 75 #Default 4000 76 table_open_cache=4000 77 78 # under high number thread (such as 128 threads), this value will cause sysbench fails 79 # if so, change it to 100000 or higher. 80 max_prepared_stmt_count=16382 81 82 performance_schema_digests_size=10000 83 performance_schema_events_stages_history_long_size=10000 84 performance_schema_events_transactions_history_long_size=10000 85 read_buffer_size={{ $read_buffer_size }} 86 read_rnd_buffer_size={{ $read_rnd_buffer_size }} 87 join_buffer_size={{ $join_buffer_size }} 88 sort_buffer_size={{ $sort_buffer_size }} 89 90 #default_authentication_plugin=mysql_native_password #From mysql8.0.23 is deprecated. 91 authentication_policy=mysql_native_password, 92 back_log=5285 93 host_cache_size=867 94 connect_timeout=10 95 96 # character-sets-dir=/usr/share/mysql-8.0/charsets 97 98 port={{ $mysql_port }} 99 mysqlx-port=33060 100 mysqlx=0 101 102 datadir={{ $data_root }}/data 103 104 log_statements_unsafe_for_binlog=OFF 105 log_error_verbosity=2 106 log_output=FILE 107 {{- if hasKey $.component "enabledLogs" }} 108 {{- if mustHas "error" $.component.enabledLogs }} 109 # Mysql error log 110 log_error={{ $data_root }}/log/mysqld-error.log 111 {{- end }} 112 113 {{- if mustHas "slow" $.component.enabledLogs }} 114 # MySQL Slow log 115 slow_query_log=ON 116 long_query_time=5 117 slow_query_log_file={{ $data_root }}/log/mysqld-slowquery.log 118 {{- end }} 119 120 {{- if mustHas "general" $.component.enabledLogs }} 121 # SQL access log, default off 122 general_log=ON 123 general_log_file={{ $data_root }}/log/mysqld.log 124 {{- end }} 125 {{- end }} 126 127 #innodb 128 innodb_doublewrite_batch_size=16 129 innodb_doublewrite_pages=32 130 innodb_flush_method=O_DIRECT 131 innodb_io_capacity=200 132 innodb_io_capacity_max=2000 133 innodb_log_buffer_size=8388608 134 #innodb_log_file_size and innodb_log_files_in_group are deprecated in MySQL 8.0.30. These variables are superseded by innodb_redo_log_capacity. 135 #innodb_log_file_size=134217728 136 #innodb_log_files_in_group=2 137 innodb_redo_log_capacity=268435456 138 innodb_open_files=4000 139 innodb_purge_threads=1 140 innodb_read_io_threads=4 141 # innodb_print_all_deadlocks=ON # AWS not set 142 key_buffer_size=16777216 143 144 # binlog 145 # master_info_repository=TABLE 146 # From mysql8.0.23 is deprecated. 147 binlog_cache_size={{ $binlog_cache_size }} 148 # AWS binlog_format=MIXED, Aliyun is ROW 149 binlog_format=MIXED 150 binlog_row_image=FULL 151 # Aliyun AWS binlog_order_commits=ON 152 binlog_order_commits=ON 153 log-bin=mysql-bin 154 log_bin_index=mysql-bin.index 155 max_binlog_size=134217728 156 log_replica_updates=1 157 # binlog_rows_query_log_events=ON #AWS not set 158 # binlog_transaction_dependency_tracking=WRITESET #Default Commit Order, Aws not set 159 160 # replay log 161 # relay_log_info_repository=TABLE 162 # From mysql8.0.23 is deprecated. 163 relay_log_recovery=ON 164 relay_log=relay-bin 165 relay_log_index=relay-bin.index 166 167 pid-file=/var/run/mysqld/mysqld.pid 168 socket=/var/run/mysqld/mysqld.sock 169 170 {{- if $.component.tls }} 171 {{- $ca_file := getCAFile }} 172 {{- $cert_file := getCertFile }} 173 {{- $key_file := getKeyFile }} 174 # tls 175 # require_secure_transport=ON 176 ssl_ca={{ $ca_file }} 177 ssl_cert={{ $cert_file }} 178 ssl_key={{ $key_file }} 179 {{- end }} 180 181 [client] 182 port={{ $mysql_port }} 183 socket=/var/run/mysqld/mysqld.sock 184 --- 185 apiVersion: v1 186 kind: ConfigMap 187 metadata: 188 name: mysql-reload-script 189 labels: 190 helm.sh/chart: apecloud-mysql-0.1.8 191 app.kubernetes.io/name: apecloud-mysql 192 app.kubernetes.io/instance: release-name 193 app.kubernetes.io/version: "8.0.30" 194 app.kubernetes.io/managed-by: Helm 195 data: 196 reload.tpl: |- 197 {{- /* mysql global variable update */}} 198 {{- /* mysql using system variables reference docs: https://dev.mysql.com/doc/refman/8.0/en/using-system-variables.html */}} 199 {{- /* 1. system variable names must be written using underscores, not dashes. */}} 200 {{- /* 2. string variable 'xxx' */}} 201 {{- /* 3. type convert to number */}} 202 {{- range $pk, $pv := $.arg0 }} 203 {{- $pk = replace "-" "_" $pk }} 204 {{- $var_int := -1 }} 205 {{- if $pv | regexMatch "^\\d+$" }} 206 {{- $var_int = atoi $pv }} 207 {{- end}} 208 {{- if lt $var_int 0 }} 209 {{- $tmp := $pv | regexStringSubmatch "^(\\d+)K$" }} 210 {{- if $tmp }} 211 {{- $var_int = last $tmp | atoi | mul 1024 }} 212 {{- end }} 213 {{- end }} 214 {{- if lt $var_int 0 }} 215 {{- $tmp := $pv | regexStringSubmatch "^(\\d+)M$" }} 216 {{- if $tmp }} 217 {{- $var_int = $tmp | atoi | mul 1024 1024 }} 218 {{- end }} 219 {{- end }} 220 {{- if lt $var_int 0 }} 221 {{- $tmp := $pv | regexStringSubmatch "^(\\d+)G$" }} 222 {{- if $tmp }} 223 {{- $var_int = last $tmp | atoi | mul 1024 1024 1024 }} 224 {{- end }} 225 {{- end }} 226 {{- if ge $var_int 0 }} 227 {{- exec_sql ( printf "SET GLOBAL %s = %d" $pk $var_int ) }} 228 {{- else }} 229 {{- exec_sql ( printf "SET GLOBAL %s = '%s'" $pk $pv ) }} 230 {{- end }} 231 {{- end }} 232 reload.yaml: |- 233 scripts: reload.tpl 234 fileRegex: my.cnf 235 formatterConfig: 236 format: ini 237 iniConfig: 238 sectionName: mysqld