Detaillierte Analyse der Parameterdatei my.cnf von MySQL in Ubuntu

Detaillierte Analyse der Parameterdatei my.cnf von MySQL in Ubuntu

Vorwort

Aufgrund meines MySQL-Verständnisses denke ich, dass es bei vielen Arbeiten zur Leistungsoptimierung und Master-Slave-Replikation darum geht, Parameter anzupassen, um sich an Daten unterschiedlicher Größenordnungen in unterschiedlichen Zeiträumen anzupassen.

Daher ist ein gründliches Verständnis der Parameter in my.cnf ein ewiges Thema; nur durch ein gründliches Verständnis der Parametereinstellungen können wir die Datenbank in bestimmten Aspekten optimieren.

Ich habe vor ein paar Tagen eine MySQL-Datenbank übernommen. Das Betriebssystem ist Ubuntu 16.04.5 LTS und die Datenbankversion ist 5.7.23-0ubuntu0.16.04.1 (MySQL von APT installiert). Es gibt viele Dinge an der MySQL-Konfigurationsdatei my.cnf unter diesem Betriebssystem, die bei den Leuten ein wenig Unbehagen hervorrufen (sie unterscheidet sich etwas von der vorherigen MySQL-Umgebung, in der ich zuvor MySQL unter Betriebssystemumgebungen wie RHEL und CentOS verwaltet habe).

Also habe ich ein wenig recherchiert und alles zusammengefasst. Die Einzelheiten lauten wie folgt:

root@mylnx12:~# finden / -name "my.cnf"
/etc/alternatives/my.cnf
/etc/mysql/meine.cnf
/var/lib/dpkg/alternatives/my.cnf
root@mylnx12:~# suche my.cnf
/etc/alternatives/my.cnf
/etc/mysql/meine.cnf
/etc/mysql/my.cnf.fallback
/var/lib/dpkg/alternatives/my.cnf
root@mylnx12:~# mysql --help | grep my.cnf
      Reihenfolge der Präferenz, my.cnf, $MYSQL_TCP_PORT,
/etc/meine.cnf /etc/mysql/meine.cnf ~/.meine.cnf 
root@mylnx12:~# mysqld --verbose --help | grep -A 1 'Standardoptionen'
Standardoptionen werden aus den folgenden Dateien in der angegebenen Reihenfolge gelesen:
/etc/meine.cnf /etc/mysql/meine.cnf ~/.meine.cnf

Den obigen Informationen zufolge ist die MySQL-Parameterdatei /etc/mysql/my.cnf, aber was ist mit den anderen my.cnf-Dateien?

root@mylnx12:~# ls -lrt /etc/alternatives/my.cnf
lrwxrwxrwx 1 root root 20. September 28 16:28 /etc/alternatives/my.cnf -> /etc/mysql/mysql.cnf

Aus den obigen Informationen können wir ersehen, dass /etc/alternatives/my.cnf tatsächlich ein Softlink ist, der auf die Parameterdatei /etc/mysql/mysql.cnf verweist.

root@mylnx12:~# cat /var/lib/dpkg/alternatives/my.cnf
Auto
/etc/mysql/meine.cnf
 
/etc/mysql/my.cnf.fallback
100
/etc/mysql/mysql.cnf
200

Allein anhand der obigen Informationen können wir die Beziehung zwischen /var/lib/dpkg/alternatives/my.cnf und anderen Konfigurationsdateien my.cnf noch nicht erkennen. Schauen wir uns dann die Parameterdatei /etc/mysql/my.cnf an. Aus den folgenden Informationen können wir ersehen, dass "/etc/mysql/my.cnf" eine globale Konfiguration ist und die versteckte Datei "~/.my.cnf" eine persönliche Benutzereinstellung ist.

root@mylnx12:~# cat /etc/mysql/my.cnf
#
# Die Konfigurationsdatei des MySQL-Datenbankservers.
#
# Sie können dies an eines der folgenden Elemente kopieren:
# - "/etc/mysql/my.cnf" zum Festlegen globaler Optionen,
# - „~/.my.cnf“, um benutzerspezifische Optionen festzulegen.
# 
# Man kann alle langen Optionen verwenden, die das Programm unterstützt.
# Führen Sie das Programm mit --help aus, um eine Liste der verfügbaren Optionen zu erhalten, und mit
# --print-defaults, um zu sehen, was es tatsächlich verstehen und verwenden würde.
#
# Erläuterungen finden Sie unter
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
 
#
# * WICHTIG: Zusätzliche Einstellungen, die die Einstellungen aus dieser Datei überschreiben können!
# Die Dateien müssen mit „.cnf“ enden, sonst werden sie ignoriert.
#
 
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

In der Parameterdatei /etc/mysql/my.cnf sind jedoch keine Parametereinstellungen vorhanden. Es sind nur die folgenden zwei Einstellungszeilen zu sehen, die darauf hinweisen, dass die Konfigurationsdateien in diesen beiden Verzeichnissen importiert werden.

!includedir /etc/mysql/conf.d/

# gibt an, dass die Konfigurationsdateien unter dem Pfad /etc/mysql/conf.d/ eingebunden werden, sofern die Endung .cnf lautet

!includedir /etc/mysql/mysql.conf.d/

# gibt an, dass die Konfigurationsdateien unter dem Pfad /etc/mysql/mysql.conf.d/ eingebunden werden, sofern die Endung .cnf lautet.

Tatsächlich befinden sich alle MySQL-bezogenen Konfigurationen unter mysqld.cnf (/etc/mysql/mysql.conf.d/mysqld.cnf). Ich habe es mit den entsprechenden Parametern getestet und es hat funktioniert. Diese Art der Einstellung ist für Neulinge tatsächlich etwas unangenehm. Das ist vorerst die Zusammenfassung!

root@mylnx12:~# cd /etc/mysql/mysql.conf.d/
root@mylnx12:/etc/mysql/mysql.conf.d# ls -lrt
insgesamt 8
-rw-r--r-- 1 root root 21 4. Februar 2017 mysqld_safe_syslog.cnf
-rw-r--r-- 1 root root 3148 6. Okt. 23:34 mysqld.cnf
root@mylnx12:/etc/mysql/mysql.conf.d# cat mysqld.cnf
#
# Die Konfigurationsdatei des MySQL-Datenbankservers.
#
# Sie können dies an eines der folgenden Elemente kopieren:
# - "/etc/mysql/my.cnf" zum Festlegen globaler Optionen,
# - „~/.my.cnf“, um benutzerspezifische Optionen festzulegen.
# 
# Man kann alle langen Optionen verwenden, die das Programm unterstützt.
# Führen Sie das Programm mit --help aus, um eine Liste der verfügbaren Optionen zu erhalten, und mit
# --print-defaults, um zu sehen, was es tatsächlich verstehen und verwenden würde.
#
# Erläuterungen finden Sie unter
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
 
# Dies wird an alle MySQL-Clients weitergegeben
# Es wurde berichtet, dass Passwörter in Anführungszeichen eingeschlossen werden sollten
# insbesondere wenn sie die Zeichen "#" enthalten …
# Denken Sie daran, /etc/mysql/debian.cnf zu bearbeiten, wenn Sie den Socket-Speicherort ändern.
 
# Hier sind Einträge für einige spezifische Programme
# Die folgenden Werte setzen voraus, dass Sie mindestens 32 MB RAM haben
 
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nett = 0
 
[mysqld]
#
# * Grundeinstellungen
#
Benutzer = MySQL
pid-Datei = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
Port = 3306
Basisverzeichnis = /usr
Datenverzeichnis = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
externe Verriegelung überspringen
log_bin = mylnx12_bin
server_id = 0
Zeichensatzserver = utf8mb4
Sortierserver = utf8mb4_general_ci
 
#
# Anstatt das Netzwerk zu überspringen, wird jetzt standardmäßig nur noch auf
# localhost, das kompatibler und nicht weniger sicher ist.
Bindeadresse = 10.21.6.7
#
# * Feinabstimmung
#
Schlüsselpuffergröße = 16 M
max_allowed_packet = 100M
Thread-Stapel = 192 KB
Thread-Cache-Größe = 8
# Dies ersetzt das Startskript und überprüft bei Bedarf MyISAM-Tabellen
# beim ersten Berühren
myisam-recover-options = BACKUP
#max_verbindungen = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Konfiguration des Abfrage-Cache
#
query_cache_limit = 1M
Abfrage-Cachegröße = 16 M
#
# * Protokollierung und Replikation
#
# Beide Standorte werden durch den Cronjob rotiert.
# Beachten Sie, dass dieser Protokolltyp die Leistung beeinträchtigt.
# Ab 5.1 können Sie das Protokoll zur Laufzeit aktivieren!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Fehlerprotokoll – sollte nur sehr wenige Einträge enthalten.
#
log_error = /var/log/mysql/error.log
#
# Hier werden Ihnen die Abfragen mit besonders langer Dauer angezeigt
#log_slow_queries = /var/log/mysql/mysql-slow.log
#lange_Abfragezeit = 2
#Log-Abfragen, die keine Indizes verwenden
#
# Folgendes kann zum einfachen Wiedergeben von Sicherungsprotokollen oder zur Replikation verwendet werden.
# Hinweis: Wenn Sie einen Replikations-Slave einrichten, lesen Sie README.Debian über
# andere Einstellungen, die Sie möglicherweise ändern müssen.
#Server-ID = 1
#log_bin = /var/log/mysql/mysql-bin.log
Ablauf_Protokolltage = 10
max_binlog_size = 100 M
#binlog_do_db = Include-Datenbankname
#binlog_ignore_db = Include-Datenbankname
#
# * InnoDB
#
# InnoDB ist standardmäßig mit einer 10 MB großen Datendatei in /var/lib/mysql/ aktiviert.
# Weitere InnoDB-bezogene Optionen finden Sie im Handbuch. Es gibt viele!
#
# * Sicherheitsfunktionen
#
# Lesen Sie auch das Handbuch, wenn Sie chroot möchten!
# chroot = /var/lib/mysql/
#
# Zum Generieren von SSL-Zertifikaten empfehle ich die OpenSSL-GUI „tinyca“.
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
#: ssl-key=/etc/mysql/server-key.pem

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Lösung für das Problem, dass die Konfigurationsdatei my.cnf in MySQL aufgrund von Berechtigungsproblemen nicht gestartet werden kann
  • MySQL-Methode zum Anzeigen der aktuell verwendeten Konfigurationsdatei my.cnf (empfohlen)
  • So ändern Sie den Standardzeichensatz von MySQL über my.cnf auf UTF-8 und Vorsichtsmaßnahmen
  • Leistungsoptimierung des MySQL-Dienstes – Konfigurationsanweisungen für my.cnf_my.ini (16 GB Speicher)
  • Einführung in /etc/my.cnf-Parameter in MySQL 5.7

<<:  Detaillierte Erklärung des Middleman-Modus von Angular-Komponenten

>>:  Führen Sie die Schritte zum Erstellen einer Laravel-Entwicklungsumgebung mit Docker aus

Artikel empfehlen

So installieren und implementieren Sie MySQL 8.0 unter CentOS8

Die offizielle Version 8.0.11 von MySQL 8 wurde v...

Teilen Sie einige ungewöhnliche, aber nützliche JS-Techniken

Vorwort Programmiersprachen enthalten normalerwei...

Softwaretests – MySQL (VI: Datenbankfunktionen)

1.MySQL-Funktionen 1. Mathematische Funktionen PI...

Lösung zum Vergessen des MySQL-Datenbankkennworts

Möglicherweise haben Sie gerade ein MySQL-Passwor...

So kompilieren Sie den Linux-Kernel

1. Laden Sie die erforderliche Kernel-Version her...

Die Kombination und der Unterschied zwischen ENTRYPOINT und CMD im Dockerfile

Im vorherigen Artikel [Detaillierte Erläuterung v...

Win10 Installation Linux System Tutorial Diagramm

Um eine virtuelle Maschine auf einem Windows-Syst...

Zusammenfassung der Merkmale des SQL-Modus in MySQL

Vorwort Der SQL-Modus wirkt sich auf die von MySQ...

So stellen Sie Spring Boot mit Docker bereit

Die Entwicklung der Docker-Technologie bietet ein...

Beispielcode zum Vergleich verschiedener Syntaxformate von vue3

Die Standardvorlagenmethode ähnelt vue2 und verwe...