# kompakte MySQL my.cnf Vorlage für neue Server (MySQL-/MariaDB-/Percona-Server 5.5
Diese Anleitung wird nicht weiter aktualisiert. Bitte wechselt auf die Versionen [5.7](https://test.ovtec.it/datenbanken/mysql/kompakte_mysql_my.cnf_vorlage_fuer_neue_server_5.7 "datenbanken:mysql:kompakte_mysql_my.cnf_vorlage_fuer_neue_server_5.7") oder [8.0](https://test.ovtec.it/datenbanken/mysql/kompakte_mysql_my.cnf_vorlage_fuer_neue_server_8.0 "datenbanken:mysql:kompakte_mysql_my.cnf_vorlage_fuer_neue_server_8.0")
Dieses Beispiel ist für kleine bis mittelgroße Setups geeignet. Die Vorlage kann einfach nach /etc/mysql/my.cnf kopiert werden. Sofern die Datenbankengine MyISAM nicht benötigt wird, kann diese über „skip-myisam“ im \[mysqld\]-Bereich entfernt werden.
Um die neuen Einstellungen zu aktiveren, müssen sehr wahrscheinlich einmal die InnoDB-Logfiles gelöscht werden (MySQL läßt sich sonst nicht starten). Diese werden dann beim nächsten Start der Datenbank neu angelegt. Je nach Größe kann das auch länger dauern, das Init-Script beendet sich dann gerne mit einem Fehler. Den aktuellen Status sieht man im MySQL-Logfile (bzw. /var/log/syslog). Die Logfiles werden wie folgt gelöscht:
```code
service mysql stop
rm -f /var/lib/mysql/ib_logfile*
service mysql start
```
**Sämtliche Einstellungen sind von Dir dann natürlich nochmals zu überprüfen**, insbesondere Caches und Speicherverbrauch. Dabei kann dann auch das Tool [mysqltuner.pl](http://mysqltuner.pl/ "http://mysqltuner.pl") helfen. Mein Beispiel ist auf ein Hot-Dataset von 2GB InnoDB Daten ausgelegt.
Bei **Debian Wheezy**: Anpassung der Systemlimits, diese Zeilen am Ende vor der letzten Zeile ergänzen:
- [/etc/security/limits.conf](https://test.ovtec.it/_export/code/datenbanken/mysql/kompakte_mysql_my.cnf_vorlage_fuer_neue_server_5.5?codeblock=1 "Schnipsel herunterladen")
-
```
* soft nofile 65535
* hard nofile 65535
```
Ab **Debian Jessie**, bzw. Distributionen mit Systemd, muss das Systemd unit file angepasst werden (danach „systemctl daemon-reload“ ausführen):
- [/lib/systemd/system/mysql.service](https://test.ovtec.it/_export/code/datenbanken/mysql/kompakte_mysql_my.cnf_vorlage_fuer_neue_server_5.5?codeblock=2 "Schnipsel herunterladen")
-
```
LimitNOFILE=infinity
LimitMEMLOCK=infinity
```
- [/etc/mysql/my.cnf](https://test.ovtec.it/_export/code/datenbanken/mysql/kompakte_mysql_my.cnf_vorlage_fuer_neue_server_5.5?codeblock=3 "Schnipsel herunterladen")
-
```
#
# The MySQL database server configuration file
# compact version from https://wiki.magenbrot.net/datenbanken/mysql/kompakte_mysql_my.cnf_vorlage_fuer_neue_server_5.5
#
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default_character_set = utf8
[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
bind_address = 127.0.0.1
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
event_scheduler = 0
skip_external_locking
skip_name_resolve
#skip_myisam
# charset and collation
character_set_server = utf8
collation_server = utf8_general_ci
# os related
open_files_limit = 8192 # should be around 3x table_open_cache, also set limits.conf
# networking
max_connections = 250
max_allowed_packet = 128M
connect_timeout = 10
wait_timeout = 180 # could cause problems if too strict (default: 28800)
net_read_timeout = 30
net_write_timeout = 60
back_log = 50
# fine tuning
key_buffer_size = 16M
thread_stack = 256K
thread_cache_size = 8
sort_buffer_size = 2M
read_buffer_size = 128K
read_rnd_buffer_size = 256K
join_buffer_size = 128K
query_cache_limit = 1M
query_cache_size = 16M
table_open_cache = 256
tmp_table_size = 32M
max_heap_table_size = 32M
bulk_insert_buffer_size = 16M
auto_increment_increment = 1
auto_increment_offset = 1
concurrent_insert = 2
# MyISAM options
myisam_recover_options = FORCE,BACKUP
myisam_sort_buffer_size = 8M
# logging
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
# replication settings
server_id = 1 # set to 2 or higher in replication slaves
log_bin = mysql-bin
#binlog_format = statement
binlog_format = mixed
log_slave_updates = false
expire_logs_days = 3
max_binlog_size = 100M
binlog_cache_size = 32K
sync_binlog = 1
#relay_log = mysqld-relay-bin # enable on replication slaves
#read_only = true # only on replication slaves
# InnoDB options
innodb_data_home_dir = /var/lib/mysql
innodb_log_group_home_dir = /var/lib/mysql
innodb_table_locks = true
innodb_lock_wait_timeout = 60
innodb_thread_concurrency = 9
innodb_commit_concurrency = 0
innodb_support_xa = true
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 2
innodb_log_file_size = 30M
innodb_additional_mem_pool_size = 128M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 8M
innodb_open_files = 8192
innodb_file_per_table
[mysqldump]
quick
quote_names
max_allowed_packet = 128M
[mysql]
[isamchk]
key_buffer_size = 16M
myisam_sort_buffer_size = 16M
myisam_max_sort_file_size = 2147483648
myisam_repair_threads = 1
myisam_recover_options = FORCE,BACKUP
# include *.cnf files, overwriting settings from here
!includedir /etc/mysql/conf.d/
```