# All files in this package is subject to the GPL v2 license # More information is in the COPYING file in the top directory of this package. # Copyright (C) 2011 severalnines.com {%- if pillar.galera.master is defined %} {%- from "galera/map.jinja" import master with context %} {%- set service = master %} {%- endif %} {%- if pillar.galera.slave is defined %} {%- from "galera/map.jinja" import slave with context %} {%- set service = slave %} {%- endif %} [MYSQLD] user=mysql basedir=/usr/ datadir=/var/lib/mysql socket={{ service.socket }} pid_file=mysqld.pid port=3306 log_error={{ service.log_file }} log_warnings=2 #log_output=FILE ### INNODB OPTIONS innodb_buffer_pool_size=9211M innodb_flush_log_at_trx_commit=2 innodb_file_per_table=1 innodb_data_file_path = ibdata1:100M:autoextend ## You may want to tune the below depending on number of cores and disk sub innodb_read_io_threads=4 innodb_write_io_threads=4 innodb_io_capacity=200 innodb_doublewrite=1 innodb_log_file_size=1024M innodb_log_buffer_size=96M innodb_buffer_pool_instances=8 innodb_log_files_in_group=2 innodb_thread_concurrency=64 #innodb_file_format=barracuda innodb_flush_method = O_DIRECT innodb_autoinc_lock_mode=2 ## avoid statistics update when doing e.g show tables innodb_stats_on_metadata=0 default_storage_engine=innodb bind-address={{ service.bind.address }} # CHARACTER SET #collation_server = utf8_unicode_ci #init_connect='SET NAMES utf8' character_set_server = utf8 # REPLICATION SPECIFIC #server_id must be unique across all mysql servers participating in replication. #server_id=SERVERID binlog_format=ROW #log_slave_updates=1 #log_bin=binlog #relay_log=relay-bin #expire_logs_days=7 #gtid_mode=ON #enforce_gtid_consistency=1 # OTHER THINGS, BUFFERS ETC key_buffer_size = 24M tmp_table_size = 64M max_heap_table_size = 64M max_allowed_packet = 512M #sort_buffer_size = 256K #read_buffer_size = 256K #read_rnd_buffer_size = 512K #myisam_sort_buffer_size = 8M skip_name_resolve memlock=0 sysdate_is_now=1 max_connections={{ service.get('max_connections', 20000) }} thread_cache_size=512 query_cache_type = 0 query_cache_size = 0 table_open_cache=1024 lower_case_table_names=0 # 5.6 backwards compatibility #explicit_defaults_for_timestamp=1 ## ## WSREP options ## # Full path to wsrep provider library or 'none' wsrep_provider={{ service.wsrep_provider }} wsrep_node_address={{ service.bind.address }} # Provider specific configuration options wsrep_provider_options="gcache.size=8192M" # Logical cluster name. Should be the same for all nodes. wsrep_cluster_name="my_wsrep_cluster" # Group communication system handle #wsrep_cluster_address=gcomm://10.0.0.3:4567,10.0.0.4:4567,10.0.0.2:4567 wsrep_cluster_address=gcomm://{% for member in service.members %}{{ member.host}}{% if not loop.last %},{% endif %}{% endfor %} # Human_readable node name (non-unique). Hostname by default. wsrep_node_name={{ service.bind.address }} # Address for incoming client connections. Autodetect by default. #wsrep_node_incoming_address= # How many threads will process writesets from other nodes wsrep_slave_threads=8 # DBUG options for wsrep provider #wsrep_dbug_option # Generate fake primary keys for non-PK tables (required for multi-master # and parallel applying operation) wsrep_certify_nonPK=1 # Location of the directory with data files. Needed for non-mysqldump # state snapshot transfers. Defaults to mysql_real_data_home. #wsrep_data_home_dir= # Maximum number of rows in write set wsrep_max_ws_rows=131072 # Maximum size of write set wsrep_max_ws_size=1073741824 # to enable debug level logging, set this to 1 wsrep_debug=0 # convert locking sessions into transactions wsrep_convert_LOCK_to_trx=0 # how many times to retry deadlocked autocommits wsrep_retry_autocommit=1 # change auto_increment_increment and auto_increment_offset automatically wsrep_auto_increment_control=1 # replicate myisam wsrep_replicate_myisam=1 # retry autoinc insert, which failed for duplicate key error wsrep_drupal_282555_workaround=0 # enable "strictly synchronous" semantics for read operations wsrep_causal_reads=0 # Command to call when node status or cluster membership changes. # Will be passed all or some of the following options: # --status - new status of this node # --uuid - UUID of the cluster # --primary - whether the component is primary or not ("yes"/"no") # --members - comma-separated list of members # --index - index of this node in the list #wsrep_notify_cmd= ## ## WSREP State Transfer options ## # State Snapshot Transfer method # ClusterControl currently DOES NOT support wsrep_sst_method=mysqldump wsrep_sst_method=xtrabackup # Address on THIS node to receive SST at. DON'T SET IT TO DONOR ADDRESS!!! # (SST method dependent. Defaults to the first IP of the first interface) #wsrep_sst_receive_address= # SST authentication string. This will be used to send SST to joining nodes. # Depends on SST method. For mysqldump method it is root: wsrep_sst_auth={{ service.admin.user }}:{{ service.admin.password }} # Desired SST donor name. #wsrep_sst_donor= # Protocol version to use # wsrep_protocol_version= [MYSQL] socket={{ service.socket }} #default_character_set=utf8 [client] socket={{ service.socket }} default_character_set=utf8 [mysqldump] max_allowed_packet = 512M socket={{ service.socket }} default_character_set=utf8 [MYSQLD_SAFE] pid_file=mysqld.pid log_error={{ service.log_file }} basedir=/usr/ datadir=/var/lib/mysql