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. # gibt an, dass die Konfigurationsdateien unter dem Pfad /etc/mysql/conf.d/ eingebunden werden, sofern die Endung .cnf lautet # 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:
|
<<: Detaillierte Erklärung des Middleman-Modus von Angular-Komponenten
>>: Führen Sie die Schritte zum Erstellen einer Laravel-Entwicklungsumgebung mit Docker aus
In letzter Zeit muss ich im Projektverlauf häufig ...
1. Laden Sie die MySQL-Repo-Quelle herunter $ wge...
In diesem Artikel wird die Installations- und Kon...
Inhaltsverzeichnis Vorwort 1. Laden Sie MySQL von...
Inhaltsverzeichnis (1) Einleitung: (2) Zum Kopier...
Inhaltsverzeichnis Allgemeine MySQL-Funktionen 1....
Dieser Artikel beschreibt eine native JS-Implemen...
Inhaltsverzeichnis Einführung Wie sieht ein Itera...
Vorwort Jede gute Angewohnheit ist ein Schatz. Di...
Inhaltsverzeichnis Integritätsbeschränkungen Defi...
Was ist ein Deckungsindex? Das Erstellen eines In...
1. Schwebendes Layout 1. Lassen Sie zuerst das Di...
In diesem Artikel wird hauptsächlich der Stil der...
Drag & Drop ist eine gängige Funktion im Fron...
Vorschauadresse: https://ovsexia.gitee.io/leftfix...