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

Der Iframe-Frame setzt den weißen Hintergrund im IE-Browser auf transparent

In letzter Zeit muss ich im Projektverlauf häufig ...

So installieren Sie MySQL auf CentOS und richten den Fernzugriff ein

1. Laden Sie die MySQL-Repo-Quelle herunter $ wge...

Super ausführliches Tutorial zur Installation von MySQL 8.0.23

Inhaltsverzeichnis Vorwort 1. Laden Sie MySQL von...

Zusammenfassung der Verwendung von clipboard.js

Inhaltsverzeichnis (1) Einleitung: (2) Zum Kopier...

Detaillierte Zusammenfassung häufig verwendeter MySQL-Funktionen

Inhaltsverzeichnis Allgemeine MySQL-Funktionen 1....

Natives JS zur Implementierung der E-Mail-Eingabeaufforderung im Anmeldefeld

Dieser Artikel beschreibt eine native JS-Implemen...

Erfahren Sie mehr über JavaScript-Iteratoren

Inhaltsverzeichnis Einführung Wie sieht ein Itera...

21 Best Practices zur MySQL-Standardisierung und -Optimierung!

Vorwort Jede gute Angewohnheit ist ein Schatz. Di...

MySQL-Integritätsbeschränkungen – Definition und Beispiel-Tutorial

Inhaltsverzeichnis Integritätsbeschränkungen Defi...

Beispiele für die Verwendung von MySQL-Abdeckungsindizes

Was ist ein Deckungsindex? Das Erstellen eines In...

CSS realisiert die Layoutmethode „Fest links“ und „Adaptiv rechts“

1. Schwebendes Layout 1. Lassen Sie zuerst das Di...

Bootstrap 3.0 - Schaltflächenstil für Lernnotizen

In diesem Artikel wird hauptsächlich der Stil der...

Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Drag & Drop ist eine gängige Funktion im Fron...