====== Information ====== * MariaDB ((https://mariadb.org/about)) * [[Information:Realm of Espionage]] ===== Prerequisites ===== * [[linux;distros;server;fedora_server|Fedora Server]] * [[linux;distros;fedora_workstation_gnome|Fedora Workstation]] ((for ''localhost'' game servers)) ===== Resources ===== * https://mariadb.com/kb/en/configuring-mariadb-with-option-files/ * https://mariadb.com/kb/en/legacy-clients-and-utilities/ ====== Settings ====== * Settings being done before installation is intentional sudo mkdir -p '/etc/my.cnf.d' && sudo -e '/etc/my.cnf.d/custom.cnf' [client] default-character-set = 'utf8mb4' [mariadb-client] default-character-set = 'utf8mb4' [mariadbd] character-set-client-handshake = 'FALSE' character-set-server = 'utf8mb4' collation-server = 'utf8mb4_unicode_ci' init-connect='SET NAMES utf8mb4' expire_logs_days = '7' max_binlog_size = '100M' skip-networking = 'On' table_definition_cache = '1400' ==== Verify ===== **** sudo mariadb-admin variables | egrep 'utf8|networking|socket' ====== Dependencies ====== **** sudo dnf install 'mariadb-server' ====== Initial Setup ====== **** sudo systemctl enable 'mariadb' --now && sudo mariadb-secure-installation ====== Database Repair and Optimization ====== ===== One-shot ===== **** sudo mariadb-check --optimize --all-databases --force --extended --auto-repair ===== Create MySQL User ===== sudo mariadb CREATE USER 'maintenance'@'localhost' IDENTIFIED BY 'x'; GRANT SELECT, INSERT ON *.* to 'maintenance'@'localhost'; FLUSH PRIVILEGES; EXIT ===== Authentication File ===== sudo mkdir -p '/var/lib/mysql/auth' && sudo -e '/var/lib/mysql/auth/maintenance' && sudo chown -v -R 'mysql':'mysql' '/var/lib/mysql/auth' && sudo chmod -v '600' '/var/lib/mysql/auth/maintenance' && sync [mariadb-check] user=maintenance password=x ===== Service ===== sudo -e '/etc/systemd/system/db-m.service' [Service] User=mysql Group=mysql Type=oneshot ExecStart='/usr/bin/mariadb-check' --defaults-extra-file='/var/lib/mysql/auth/maintenance' --optimize --all-databases --force --extended --auto-repair ExecStartPost='/usr/bin/sync' ===== Timer ===== sudo -e '/etc/systemd/system/db-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'db-m.timer' --now && sudo systemctl start 'db-m' && sudo systemctl status 'db-m' -l [Unit] Description=MariaDB Database Check, Repair, and Optimization After=mariadb.service [Timer] OnCalendar=weekly Persistent=true [Install] WantedBy=timers.target ====== Notable Commands ====== ===== Show Users on Server ===== **** select User,Host from mysql.user; ===== Socket File ===== **** /var/lib/mysql/mysql.sock