Wir haben unsere Datei my.cnf verloren und uns gefragt, ob es eine Möglichkeit gibt, eine Kopie aus der aktuell ausgeführten MySQL-Instanz zu exportieren.
Vielen Dank!
Drei (3) Optionen
OPTION 1: Innerhalb des MySQL-Clients
mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt
Dadurch werden alle Optionen in der Textdatei erfasst.
OPTION 2: Über die Linux-Befehlszeile
ps -ef | grep mysqld | grep -v grep
Dies zeigt Optionen an, mit denen mysqld gestartet wurde, wie von mysqld_safe festgelegt
OPTION 3: Fragen Sie den Server direkt
mysqld --help --verbose
Am unteren Rand der Anzeige 'mysqld --help --verbose' sehen Sie die aktuellen Einstellungen, die mysqld aus my.cnf geladen oder standardmäßig auf geladen hat.
Diese Anleitung gilt für die Aktie Mariadb auf Centos 7.1.
Im Folgenden wird beschrieben, wie Sie die aktuellen Einstellungen eines Computers in einer aktuellen oder zukünftigen Neuinstallation sichern oder replizieren.
Auf dem Computer, von dem wir die Einstellungen kopieren möchten, können wir Folgendes ausführen:
Auf einem anderen Computer können wir den Mariadb-Server installieren und ausführen:
Dann legen wir beide Dateien in einem Verzeichnis ab, das in diesem Beispiel "/ a /" ist.
Dann rennen wir:
Wenn keine Ausgabe erfolgt, sind die beiden Dateien identisch. Dies bedeutet, dass alle Einstellungen auf beiden Computern auf ihrer Standardeinstellung sind.
Wenn eine Ausgabe erfolgt, werden einige Zeilen nicht eingerückt, während einige Zeilen eingerückt werden.
Die nicht eingerückten Zeilen sind nur in der ersten Datei vorhanden, die hier /a/mysql_current_settings.txt lautet.
Die Einrückungszeilen sind nur in der zweiten Datei vorhanden, die hier /a/mysql_default_settings.txt lautet.
Jetzt kennen wir alle Einstellungen, mit Ausnahme einiger Einstellungen, die in der Befehlszeile festgelegt wurden, mit der mysqld gestartet wurde. Diese Einstellungen können aus Dateien /etc/my.cnf oder /etc/my.cnf.d/* oder einem benutzerdefinierten Skript oder einem Alias usw. stammen. In jedem Fall können wir sie mit dem folgenden Befehl anzeigen:
Jetzt kennen wir die wenigen Einstellungen, die wir bei einer neuen Installation ändern müssen, um sie als die alte zu konfigurieren.
Hier folgen einige weitere Details.
Unter centos 7.1 zeigt der folgende Befehl alle aktuellen Einstellungen an, mit Ausnahme einiger Einstellungen, die in der Befehlszeile festgelegt wurden, mit der mysqld gestartet wurde:
Insgesamt zeigt es:
im ersten Teil die Einstellungen, die wir als ersten Parameter nach "mysqld" verwenden können, wenn wir es starten;
im zweiten Teil die zur Kompilierungszeit festgelegten Einstellungen;
im dritten teil die aktuellen einstellungen.
Auch wenn in der letzten Zeile der Ausgabe Folgendes angegeben ist: Geben Sie Folgendes ein, um zu sehen, welche Werte ein laufender MySQL-Server verwendet:
Dieser Befehl zeigt nicht an, zB Bindungsadresse, selbst wenn wir ihn in /etc/my.cnf ändern und mysql neu starten.
Auch der folgende Befehl zeigt viele Einstellungen, aber nicht "Bindungsadresse":
Beachten Sie, dass mysqld unter centos 7.1 nicht in $ PATH enthalten ist.
quelle
Hier ist meine Lieblingsmethode, um eine aktuelle my.cnf zu generieren:
Dies funktioniert jedoch unter Mac OS X nicht zuverlässig.
Dadurch wird ein sauberes Variablenprotokoll ausgegeben, das auskommentiert und zum Import in Ihre my.cnf bereit ist.
Ursprüngliche Quelle: http://www.askapache.com/mysql/view-mysql-variables-my-cnf.html
quelle
mysqld -V|sed 's,^.*\(V.*\)\ for.*,\1,'
. Ich bin mir nicht sicher, ob es wichtig ist, da ich denke, dass sowohl Client als auch Server zusammen installiert sind. Was ist der Zweck von{{{1
und1}}}
?