|  | {%- from "mysql/map.jinja" import server with context %} | 
|  | {%- set mysql = server %} | 
|  | # | 
|  | # The MySQL database server configuration file. | 
|  | # | 
|  | # You can copy this to one of: | 
|  | # - "/etc/mysql/my.cnf" to set global options, | 
|  | # - "~/.my.cnf" to set user-specific options. | 
|  | # | 
|  | # One can use all long options that the program supports. | 
|  | # Run program with --help to get a list of available options and with | 
|  | # --print-defaults to see which it would actually understand and use. | 
|  | # | 
|  | # For explanations see | 
|  | # http://dev.mysql.com/doc/mysql/en/server-system-variables.html | 
|  |  | 
|  | # This will be passed to all mysql clients | 
|  | # It has been reported that passwords should be enclosed with ticks/quotes | 
|  | # escpecially if they contain "#" chars... | 
|  | # Remember to edit /etc/mysql/debian.cnf when changing the socket location. | 
|  |  | 
|  | [client] | 
|  | port           = {{ server.bind.get('port', '3306') }} | 
|  | socket         = /var/run/mysqld/mysqld.sock | 
|  |  | 
|  | {%- if server.force_encoding is defined %} | 
|  | default-character-set=utf8 | 
|  | {%- endif %} | 
|  |  | 
|  | {%- if server.ssl.enabled and server.replication.role in ['slave'] %} | 
|  | ssl-ca=/etc/mysql/cacert.pem | 
|  | ssl-cert=/etc/mysql/client-cert.pem | 
|  | ssl-key=/etc/mysql/client-key.pem | 
|  | {%- endif %} | 
|  |  | 
|  | # Here is entries for some specific programs | 
|  | # The following values assume you have at least 32M ram | 
|  |  | 
|  | # This was formally known as [safe_mysqld]. Both versions are currently parsed. | 
|  | [mysqld_safe] | 
|  | socket         = /var/run/mysqld/mysqld.sock | 
|  | nice           = 0 | 
|  |  | 
|  | [mysqld] | 
|  | # | 
|  | # * Basic Settings | 
|  | # | 
|  | user           = mysql | 
|  | pid-file       = /var/run/mysqld/mysqld.pid | 
|  | socket         = /var/run/mysqld/mysqld.sock | 
|  | port           = 3306 | 
|  | basedir        = /usr | 
|  | datadir        = /var/lib/mysql | 
|  | tmpdir         = /tmp | 
|  | lc-messages-dir = /usr/share/mysql | 
|  | skip-external-locking | 
|  |  | 
|  | {%- if server.sql_mode is defined %} | 
|  | sql-mode={{ server.sql_mode }} | 
|  | {%- endif %} | 
|  |  | 
|  | # | 
|  | # Instead of skip-networking the default is now to listen only on | 
|  | # localhost which is more compatible and is not less secure. | 
|  | bind-address            = {{ server.bind.address }} | 
|  |  | 
|  | {%- if server.force_encoding is defined %} | 
|  | character-set-server=utf8 | 
|  | {%- endif %} | 
|  |  | 
|  | # | 
|  | # * Fine Tuning | 
|  | # | 
|  | key_buffer_size        = {{ mysql.get('key_buffer', '16') }}M | 
|  | max_allowed_packet     = {{ mysql.get('max_allowed_packet', '16') }}M | 
|  | thread_stack           = {{ mysql.get('thread_stack', '192') }}K | 
|  | thread_cache_size      = {{ mysql.get('thread_cache_size', '8') }} | 
|  | # This replaces the startup script and checks MyISAM tables if needed | 
|  | # the first time they are touched | 
|  | myisam-recover-options = BACKUP | 
|  | max_connections        = {{ mysql.get('max_connections', '100') }} | 
|  | #table_cache           = 64 | 
|  | #thread_concurrency    = 10 | 
|  | # | 
|  | # * Query Cache Configuration | 
|  | # | 
|  | query_cache_limit      = {{ mysql.get('query_cache_limit', '1') }}M | 
|  | query_cache_size       = {{ mysql.get('query_cache_size', '16') }}M | 
|  | # | 
|  | # * Logging and Replication | 
|  | # | 
|  | # Both location gets rotated by the cronjob. | 
|  | # Be aware that this log type is a performance killer. | 
|  | # As of 5.1 you can enable the log at runtime! | 
|  | #general_log_file       = /var/log/mysql/mysql.log | 
|  | #general_log            = 1 | 
|  | # | 
|  | # Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. | 
|  | # | 
|  | # Here you can see queries with especially long duration | 
|  | slow_query_log = 1 | 
|  | slow_query_log_file = /var/log/mysql/mysql-slow.log | 
|  | long_query_time = 2 | 
|  | #log-queries-not-using-indexes | 
|  | # | 
|  | # The following can be used as easy to replay backup logs or for replication. | 
|  | # note: if you are setting up a replication slave, see README.Debian about | 
|  | #       other settings you may need to change. | 
|  | {%- if server.replication.role in ['slave', 'master', 'both'] %} | 
|  |  | 
|  | server-id               = {{ server.server_id }} | 
|  | log_bin                 = /var/log/mysql/mysql-bin.log | 
|  | expire_logs_days        = 10 | 
|  |  | 
|  | {%- if server.replication.role in ['both'] %} | 
|  | {%- if server.replication.auto_increment is defined %} | 
|  | auto_increment_increment = {{ server.replication.auto_increment.increment }} | 
|  | auto_increment_offset    = {{ server.replication.auto_increment.offset }} | 
|  | {%- endif %} | 
|  | {%- endif %} | 
|  |  | 
|  | {%- if server.replication.role in ['slave'] %} | 
|  | relay-log               = /var/log/mysql/mysql-relay-bin.log | 
|  | {%- for database_name, database in server.get('database', {}).iteritems() %} | 
|  | binlog_do_db           = {{ database_name }} | 
|  | {%- endfor %} | 
|  | {%- endif %} | 
|  |  | 
|  | {%- endif %} | 
|  | max_binlog_size         = 100M | 
|  | #binlog_ignore_db       = include_database_name | 
|  | # | 
|  | # * InnoDB | 
|  | # | 
|  | # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. | 
|  | # Read the manual for more InnoDB related options. There are many! | 
|  | # | 
|  | # * Security Features | 
|  | # | 
|  | # Read the manual, too, if you want chroot! | 
|  | # chroot = /var/lib/mysql/ | 
|  | # | 
|  | # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". | 
|  | # | 
|  |  | 
|  | {%- if server.ssl.enabled and server.replication.role in ['master', 'slave', 'both', 'none'] %} | 
|  | #old_passwords = 1 | 
|  | #old_passwords param is deprecated in MySQL 5.7 and currently only accepts values 0 or 2 | 
|  | ssl-ca=/etc/mysql/cacert.pem | 
|  | ssl-cert=/etc/mysql/server-cert.pem | 
|  | ssl-key=/etc/mysql/server-key.pem | 
|  | {%- endif %} | 
|  |  | 
|  | [mysqldump] | 
|  | quick | 
|  | quote-names | 
|  | max_allowed_packet      = 16M | 
|  |  | 
|  | [mysql] | 
|  | #no-auto-rehash # faster start of mysql but no tab completition | 
|  |  | 
|  | [isamchk] | 
|  | key_buffer_size         = 16M | 
|  |  | 
|  | # | 
|  | # * IMPORTANT: Additional settings that can override those from this file! | 
|  | #   The files must end with '.cnf', otherwise they'll be ignored. | 
|  | # | 
|  | !includedir /etc/mysql/conf.d/ |