Mit kleinen Sachen DBAs eine Freude machen: Validation der MySQL-Konfiguration
Konfigurationsdateien sind ein steter Quell von Fehlern. Gerade bei älteren Systemen (vor Version 8.0), welche noch nicht die Möglichkeit hatten, online persistent Änderungen vorzunehmen (z. B. über „set global persist …“), kam es oft zu kleineren Problemen. Der Parameter wurde aufgrund einer mangelnden Downtime online (aber flüchtig und somit nicht reboot persistent) gesetzt und wurde parallel (!) in die Konfiguration geschrieben, um auch über einen Neustart den Parameter zu erhalten. Hat man sich hierbei in der Konfiguration vertippt, so konnte man beim nächsten geplanten oder ungeplanten (!) Start der DB dann auf Fehlersuche gehen.
Konfigurations-Kauderwelsch
Die Schreibweise und Namenstreue von Parametern in der/den Konfigurationsdateien (z. B. /etc/my.cnf o.ä.) ist bei MySQL nicht sehr hoch. Wird der Parameter als „log_bin“, „log-bin“ oder „logbin“ deklariert? Vor solchen und/oder ähnlichen Frage stehen sicher einige MySQL DBAs in der Praxis recht oft. Sofern man den Server durchstarten kann, ist man in der Lage sich „iterativ“ (;-)) der richtigen Schreibweise zu nähern. Im oben beschrieben Szenario (Downtime unerwünscht) ist dies jedoch nicht möglich.
Nur eine Kleinigkeit?
Ab der Version 8.0.16 gibt es nun die Möglichkeit die Konfiguration zu prüfen. Dafür wurde die Option „—validate-config“ eingeführt. Hier ein kleines Beispiel:
# korrekte Konfiguration bash> /etc/mysql/mysql.conf.d# mysqld --defaults-file=mysqld.cnf --validate-config bash> /etc/mysql/mysql.conf.d# echo $? 0 # ein kleiner Tippfehler bash> echo "slowquerylog = ON" >> mysqld.cnf bash> mysqld --defaults-file=mysqld.cnf --validate-config 2022-10-24T07:31:41.928416Z 0 [ERROR] [MY-000067] [Server] unknown variable 'slowquerylog=ON'. 2022-10-24T07:31:41.928495Z 0 [ERROR] [MY-010119] [Server] Aborting
Erfahrene MySQLer werden es wissen. Der Parameter heißt natürlich „slow_query_log“. Der Fehler wird zuverlässig erkannt und sollte schnellstmöglich korrigiert werden.
Nur eine Kleinigkeit!
Ja, der neue Parameter „—validate-config“ des MySQL-Dienstes ist kein „großes Ding“. Andere Applikationen (z. B. der Apache Webserver) kennen solche Optionen und/oder Kommandos zur Überprüfung des Konfigurationsstatus schon lange. Trotzdem ist es schön zu sehen, dass es auch so kleine, unauffällige Verbesserungen in die neuen MySQL-Releases schaffen.
Sie haben Fragen rund um den Betrieb von MySQL? Sprechen Sie uns an oder besuchen Sie eines unserer Seminare zu diesem Thema!
Seminarempfehlung
MYSQL ADMINISTRATION DB-MY-01
Zum SeminarPrincipal Consultant bei ORDIX
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare