 # ============================================================
 #
 # This file is a part of digiKam project
 # https://www.digikam.org
 #
 # Date        : 2009-07-28
 # Description : Global digiKam MySQL Internal server default settings.
 #               These settings can be adjusted if necessary in mysql.conf
 #               file installed at database install path.
 #               Based on advice by Kris Köhntopp <kris at mysql dot com>
 #               for Akonadi project.
 #
 # SPDX-FileCopyrightText: 2009      by Holger Foerster <hamsi2k at freenet dot de>
 # SPDX-FileCopyrightText: 2007-2013 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
 # SPDX-FileCopyrightText: 2010-2026 by Gilles Caulier <caulier dot gilles at gmail dot com>
 #
 # SPDX-License-Identifier: GPL-2.0-or-later
 #
 # ============================================================

[mysqld]


### SKIP FEATURES SETTINGS ####################################

# Be able to be connected to database without a password
skip_grant_tables

# No remote access to database
skip_networking

# strict query parsing/interpretation
# TODO: make digiKam work with those settings enabled
#sql_mode=strict_trans_tables,strict_all_tables,strict_error_for_division_by_zero,no_auto_create_user,no_auto_value_on_zero,no_engine_substitution,no_zero_date,no_zero_in_date,only_full_group_by,pipes_as_concat
#sql_mode=strict_trans_tables


### CHAR ENCODING SETTINGS ####################################

# case-insensitive table names, avoids trouble on windows
#lower_case_table_names=1

character_set_server=utf8
collation_server=utf8_general_ci


### LOG FILES SETTINGS ########################################

# Log rules
log_bin=mysql-bin
log-bin-trust-function-creators=1
expire_logs_days=3
#sync_bin_log=0

# log file name to store errors, relative to datadir
log_error=mysql.err
log_warnings=2

# log all queries, useful for debugging but generates an enormous amount of data
#general_log=0
#general_log_file=mysql.full

# log queries slower than n seconds, log file name relative to datadir
slow_query_log_file=mysql.slow
long_query_time=1

# log queries not using indices, debug only, disable for production use
log_queries_not_using_indexes=1


### CACHE SETTINGS ###########################################

# makes sense when having the same query multiple times
# makes no sense with prepared statements and/or transactions
query_cache_type=0
query_cache_size=0

table_open_cache=200
thread_cache_size=3


### INNO DATABASE ENGINE SETTINGS #############################

innodb_file_per_table=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=80M

# size of average write burst, keep Innob_log_waits small, keep Innodb_buffer_pool_wait_free small (see show global status like "inno%", show global variables)
innodb_log_file_size=64M
innodb_flush_log_at_trx_commit=2


### MISC SETTINGS #############################################

# maximum blob size
max_allowed_packet=128M
max_connections=256


### PASSWORD SETTINGS #########################################

# disable SHA2 password
default_authentication_plugin=mysql_native_password

# measure database size and adjust
# SELECT sum(data_length) as bla, sum(index_length) as blub FROM information_schema.tables WHERE table_schema not in ("mysql", "information_schema");
