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

Authentic ๐Ÿ“‹ Debian 12 (Bookworm) 120 lines

File Info

Size
120 lines
MD5
504798f56c32ef59cc519b2bfec59274
SHA256
c05b27c6fa13550e78d9d7795442041d7b83aef60b6063b55d510b23e3989add

Quick Commands

curl:
curl https://exampleconfig.com/api/v1/config/original/504798f56c32ef59cc519b2bfec59274?hint=50-server.cnf
wget:
wget -O 50-server.cnf https://exampleconfig.com/api/v1/config/original/504798f56c32ef59cc519b2bfec59274?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

# 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                = /run/mysqld/mysqld.pid
basedir                 = /usr
#datadir                 = /var/lib/mysql
#tmpdir                  = /tmp

# Broken reverse DNS slows down connections considerably and name resolve is
# safe to skip if there are no "host by domain name" access grants
#skip-name-resolve

# 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        = 128M
#max_allowed_packet     = 1G
#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

#
# * Logging and Replication
#

# Note: The configured log file or its directory need to be created
# and be writable by the mysql user, e.g.:
# $ sudo mkdir -m 2750 /var/log/mysql
# $ sudo chown mysql /var/log/mysql

# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# Recommend only changing this at runtime for short testing periods if needed!
#general_log_file       = /var/log/mysql/mysql.log
#general_log            = 1

# When running under systemd, error logging goes via stdout/stderr to journald
# and when running legacy init error logging goes to syslog due to
# /etc/mysql/conf.d/mariadb.conf.d/50-mysqld_safe.cnf
# Enable this if you want to have error logging into a separate file
#log_error = /var/log/mysql/error.log
# Enable the slow query log to see queries with especially long duration
#log_slow_query_file    = /var/log/mysql/mariadb-slow.log
#log_slow_query_time    = 10
#log_slow_verbosity     = query_plan,explain
#log-queries-not-using-indexes
#log_slow_min_examined_row_limit = 1000

# 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

#
# * SSL/TLS
#

# For documentation, please read
# https://mariadb.com/kb/en/securing-connections-for-client-and-server/
#ssl-ca = /etc/mysql/cacert.pem
#ssl-cert = /etc/mysql/server-cert.pem
#ssl-key = /etc/mysql/server-key.pem
#require-secure-transport = 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

#
# * 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!
# Most important is to give InnoDB 80 % of the system RAM for buffer use:
# https://mariadb.com/kb/en/innodb-system-variables/#innodb_buffer_pool_size
#innodb_buffer_pool_size = 8G

# 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.11 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.11]

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 12 (Bookworm) 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 120-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 12?
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 12 (Bookworm). 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 12 (Bookworm). 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.