From 76284a558f835525ae88fc014204139f78d7fcf7 Mon Sep 17 00:00:00 2001 From: Klaus Purer Date: Tue, 11 Feb 2025 17:50:20 +0100 Subject: [PATCH] fix(mysql_server_mariadb): Set production values as default --- .../mysql_server_mariadb/tasks/main.yml | 33 ++----------------- .../{mysql_dev.cnf.j2 => zz_custom.cnf.j2} | 31 +++++++++-------- 2 files changed, 21 insertions(+), 43 deletions(-) rename roles/debian/mysql_server_mariadb/templates/{mysql_dev.cnf.j2 => zz_custom.cnf.j2} (52%) diff --git a/roles/debian/mysql_server_mariadb/tasks/main.yml b/roles/debian/mysql_server_mariadb/tasks/main.yml index f463d95e8..7ad499d7b 100644 --- a/roles/debian/mysql_server_mariadb/tasks/main.yml +++ b/roles/debian/mysql_server_mariadb/tasks/main.yml @@ -1,6 +1,4 @@ --- -# @todo Configuration is for dev. - - name: Ensure mysql is installed. ansible.builtin.apt: pkg: "mariadb-server" @@ -9,37 +7,12 @@ - name: Copy MySQL overriding configuration in place. ansible.builtin.template: - src: mysql_dev.cnf.j2 - dest: "/etc/mysql/conf.d/zz_dev.cnf" + src: zz_custom.cnf.j2 + dest: "/etc/mysql/conf.d/zz_custom.cnf" owner: root group: root mode: "0644" -# - name: Trigger overrides -# include_role: -# name: _overrides -# vars: -# _overrides: "{{ blackfire.overrides }}" -# when: -# - blackfire.overrides is defined -# - blackfire.overrides | length > 0 - -- name: Restart mysql. - ansible.builtin.service: - name: mysql - state: restarted - enabled: true - -- name: Update MySQL root password. - ansible.builtin.shell: > - mysql -NBe 'GRANT ALL ON *.* TO "root"@"%" IDENTIFIED BY "root" WITH GRANT OPTION;' - when: is_local - -- name: Update MySQL ce-dev password. - ansible.builtin.shell: > - mysql -NBe 'GRANT ALL ON *.* TO "ce-dev"@"%" IDENTIFIED BY "ce-dev" WITH GRANT OPTION;' - when: is_local - - name: Ensure mysql can write data. ansible.builtin.file: path: /var/lib/mysql @@ -62,5 +35,5 @@ - name: Restart mysql. ansible.builtin.service: name: mysql - state: started + state: restarted enabled: true diff --git a/roles/debian/mysql_server_mariadb/templates/mysql_dev.cnf.j2 b/roles/debian/mysql_server_mariadb/templates/zz_custom.cnf.j2 similarity index 52% rename from roles/debian/mysql_server_mariadb/templates/mysql_dev.cnf.j2 rename to roles/debian/mysql_server_mariadb/templates/zz_custom.cnf.j2 index 79b633f9c..0edb610fb 100644 --- a/roles/debian/mysql_server_mariadb/templates/mysql_dev.cnf.j2 +++ b/roles/debian/mysql_server_mariadb/templates/zz_custom.cnf.j2 @@ -1,12 +1,9 @@ [mysqld] -bind-address = 0.0.0.0 -character_set_server = utf8 -collation_server = utf8_general_ci +bind-address = 127.0.0.1 slow_query_log = 1 -slow_query_log_file = /var/log/mysql/slow-query.log +slow_query_log_file = /var/log/mysql/mariadb-slow.log log_slow_admin_statements = 1 general_log = 0 -log_queries_not_using_indexes = 1 long_query_time = {{ mysql_server.long_query_time }} skip-host-cache skip-name-resolve @@ -16,23 +13,31 @@ read_buffer_size = 8M read_rnd_buffer_size= 4M sort_buffer_size= 4M bulk_insert_buffer_size = 16M -max_allowed_packet= 128M +# We need a large size for big tables during backups. +max_allowed_packet = 1G thread_cache_size = 200 max_connections = 300 open_files_limit= 2000 -tmp_table_size= 128M -max_heap_table_size = 128M -query_cache_size= 1G -query_cache_limit = 128M -query_cache_type= 1 +tmp_table_size= 1G +max_heap_table_size = 1G +# Query cache is disabled for performance reasons for now. +query_cache_size= 0 +query_cache_type= 0 join_buffer_size = 512M sql_mode = NO_ENGINE_SUBSTITUTION -innodb_buffer_pool_size= 512M +# Use a quarter of the total RAM for the buffer pool. +innodb_buffer_pool_size = {{ ansible_facts.memtotal_mb // 4 }}M innodb_read_io_threads = 8 innodb_write_io_threads= 8 innodb_flush_method= O_DIRECT innodb_io_capacity = 400 innodb_file_per_table= 1 -innodb_flush_log_at_trx_commit = 1 +innodb_flush_log_at_trx_commit = 2 sync_binlog= 100 innodb_stats_on_metadata = 0 + +[mysqldump] +quick +quote-names +# We need a large size for big tables during backups. +max_allowed_packet = 1G