| # 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:<root password> |
| 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 |