MariaDB /etc/mysql/mariadb.conf.d/50-server.cnf

Authentic ๐Ÿ“‹ Debian 9 (Stretch) 135 lines

Compatibility

Currently viewing:
Debian 9 (Stretch)
Also compatible:
Ubuntu 18.04 LTS (Bionic Beaver)
Different versions:

File Info

Size
135 lines
MD5
073e32328fb38e45ea4d3a497bbda982
SHA256
e2fafc7b8abafc7bc473ae9ab9befd13042532b6894900a283d2c794fe50c8de

Quick Commands

curl:
curl https://exampleconfig.com/api/v1/config/original/073e32328fb38e45ea4d3a497bbda982?hint=50-server.cnf
wget:
wget -O 50-server.cnf https://exampleconfig.com/api/v1/config/original/073e32328fb38e45ea4d3a497bbda982?hint=50-server.cnf
/etc/mysql/mariadb.conf.d/50-server.cnf
#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#

# this is read by the standalone daemon and embedded servers
[server]

# this is only for the mysqld standalone daemon
[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

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address		= 127.0.0.1

#
# * Fine Tuning
#
key_buffer_size		= 16M
max_allowed_packet	= 16M
thread_stack		= 192K
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        = 100
#table_cache            = 64
#thread_concurrency     = 10

#
# * Query Cache Configuration
#
query_cache_limit	= 1M
query_cache_size        = 16M

#
# * 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 log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Enable the slow query log to see queries with especially long duration
#slow_query_log_file	= /var/log/mysql/mariadb-slow.log
#long_query_time = 10
#log_slow_rate_limit	= 1000
#log_slow_verbosity	= query_plan
#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.
#server-id		= 1
#log_bin			= /var/log/mysql/mysql-bin.log
expire_logs_days	= 10
max_binlog_size   = 100M
#binlog_do_db		= include_database_name
#binlog_ignore_db	= exclude_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 you can use for example the GUI tool "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
#
# Accept only connections using the latest and most secure TLS protocol version.
# ..when MariaDB is compiled with OpenSSL:
# ssl-cipher=TLSv1.2
# ..when MariaDB is compiled with YaSSL (default in Debian):
# ssl=on

#
# * Character sets
#
# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
# utf8 4-byte character set. See also client.cnf
#
character-set-server  = utf8mb4
collation-server      = utf8mb4_general_ci

#
# * Unix socket authentication plugin is built-in since 10.0.22-6
#
# Needed so the root database user can authenticate without a password but
# only when running as the unix root user.
#
# Also available for other users if required.
# See https://mariadb.com/kb/en/unix_socket-authentication-plugin/

# this is only for embedded server
[embedded]

# This group is only read by MariaDB servers, not by MySQL.
# If you use the same .cnf file for MySQL and MariaDB,
# you can put MariaDB-only options here
[mariadb]

# This group is only read by MariaDB-10.1 servers.
# If you use the same .cnf file for MariaDB of different versions,
# use this group for options that older servers don't understand
[mariadb-10.1]

How to Install MariaDB

Alpine Linux

sudo apk add mariadb

Debian

sudo apt update && sudo apt install mariadb-server

Red Hat Enterprise Linux

sudo yum install mariadb-server

Ubuntu

sudo apt update && sudo apt install mariadb-server

Configuration File Location

File Path
/etc/mysql/mariadb.conf.d/50-server.cnf
Directory
/etc/mysql/mariadb.conf.d/
Significance
System-wide configuration directory
Description
Files in /etc/ contain system-wide configuration settings that affect all users.

Complete MariaDB Configuration Guide

What is 50-server.cnf?
Get the original '50-server.cnf' configuration file for MariaDB from a clean Debian 9 (Stretch) installation. This is the factory-default configuration for the popular MySQL-compatible database, perfect for migration planning, performance tuning, and understanding MariaDB-specific optimizations.
Technical Details
Found at '/etc/mysql/mariadb.conf.d/50-server.cnf', this 135-line file includes Aria storage engine settings, enhanced MyISAM performance, improved replication features, and advanced security options. Used by Wikipedia, Google, and millions of applications requiring high-performance database operations.
Common Configuration Question
How do you configure MariaDB for optimal performance and what are the key differences from MySQL on Debian 9?
Why Use This Configuration?
This default configuration showcases MariaDB's enhanced features including better thread handling, improved optimizer, and additional storage engines. Essential for database administrators and developers migrating from MySQL or building new applications.

Frequently Asked Questions

When should I use this 50-server.cnf file?

Use this original configuration file when you need to restore MariaDB to its default state after misconfiguration, during fresh installations, or as a baseline for customization. It's particularly useful for troubleshooting when your current config isn't working properly.

How do I restore MariaDB to default settings?

Download this file and replace your current configuration at /etc/mysql/mariadb.conf.d/50-server.cnf. Make sure to backup your existing configuration first, then restart the MariaDB service to apply the changes.

Is this 50-server.cnf file secure for production use?

This is the factory-default configuration that ships with MariaDB on Debian 9 (Stretch). While it provides a secure baseline, you should review and customize security settings based on your specific production requirements and compliance needs.

What's the difference between this and other OS versions?

This configuration is specifically from Debian 9 (Stretch). Different operating systems and versions may have slightly different default settings, security patches, or feature availability. Check the compatibility section above for other OS versions.

Can I use this configuration file for MariaDB troubleshooting?

Yes, this original configuration is excellent for troubleshooting. Compare it with your current settings to identify modifications that might be causing issues, or temporarily replace your config with this one to isolate problems.