Gibt es einen MySQL-Befehl zum Auffinden der my.cnf
Konfigurationsdatei, ähnlich wie bei PHPs phpinfo()
ortet seine php.ini
?
Super, unter Windows musste ich die grep
con findstr
: mysql --help | findstr cnf
und es hat gezaubert
Gibt es einen MySQL-Befehl zum Auffinden der my.cnf
Konfigurationsdatei, ähnlich wie bei PHPs phpinfo()
ortet seine php.ini
?
Wenn Sie einen Mac mit Homebrew benutzen, verwenden Sie
brew info mysql
Sie sehen dann etwas wie
$ brew info mysql
mysql: stable 5.6.13 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with: mariadb, mysql-cluster, percona-server
/usr/local/Cellar/mysql/5.6.13 (9381 files, 354M) *
Diese letzte Zeile ist die INSTALLERDIR
gemäß der MySQL-Dokumentation
Wenn Sie auf einem Debian/Ubuntu-System arbeiten und bereits mit modernen Versionen der Datenbank ausgestattet sind (alles ab 5.7 aufwärts, gilt auch für mysql 8), ist der beste Weg, die aktuelle .cnf
Datei, die ich gefunden habe, ist:
sudo update-alternatives --config my.cnf
Sie sollten eine Ausgabe wie diese sehen:
There are 3 choices for the alternative my.cnf (providing /etc/mysql/my.cnf).
Selection Path Priority Status
------------------------------------------------------------
0 /etc/mysql/mariadb.cnf 500 auto mode
1 /etc/mysql/mariadb.cnf 500 manual mode
2 /etc/mysql/my.cnf.fallback 100 manual mode
* 3 /etc/mysql/mysql.cnf 300 manual mode
Es gibt zwei Zeilen in /etc/mysql/mysql.cnf
die es sinnvollerweise zu beachten gilt:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
MySQL wird für alle beobachten gehen .cnf
Dateien in /etc/mysql/conf.d/
dann werden alle Dateien in /etc/mysql/mysql.conf.d/
Viel Spaß beim Tunen!
Um auf die ursprüngliche Frage zurückzukommen: Ich habe den Eindruck, dass es besser ist, wenn eine .cnf-Datei hinzufügen in mysql.conf.d zu ändern, als eine vorhandene .cnf-Datei zu bearbeiten. Ich habe die Konvention gesehen, sie <Benutzername>.cnf zu nennen, aber ich ziehe es vor, sie <Zweck>.cnf zu nennen, z.B. system_timestamp.cnf. Nicht nur (1) weil eine Neuinstallation Änderungen an einer bestehenden Datei überschreiben könnte, sondern auch (2) weil ein Blick in das Verzeichnis die Änderungen offenbart und (3) weil sie bei einem Wechsel des Hosts portabel sind. Ich habe auch den Eindruck mysql.conf.d
ist neuer als conf.d
.
Beachten Sie, dass mariadDB zwar Konfigurationsdetails aus den verschiedenen my.cnf-Dateien lädt, wie sie in den anderen Antworten hier aufgeführt sind, aber auch aus anderen Dateien mit anderen Namen laden kann.
Das heißt, wenn Sie eine Änderung in einer der my.cnf-Dateien vornehmen, kann diese durch eine andere Datei mit einem anderen Namen überschrieben werden. Damit die Änderung bestehen bleibt, müssen Sie sie in der richtigen (zuletzt geladenen) Konfigurationsdatei ändern - oder vielleicht sogar in allen Dateien.
Wie finden Sie also alle Konfigurationsdateien, die möglicherweise geladen sind? Anstatt nach my.cnf-Dateien zu suchen, versuchen Sie es mit:
grep -r datadir /etc/mysql/
Damit werden alle Stellen gefunden, an denen datadir erwähnt wird. In meinem Fall ergibt sich diese Antwort:
/etc/mysql/mariadb.conf.d/50-server.cnf:datadir = /var/lib/mysql
Wenn ich diese Datei (/etc/mysql/mariadb.conf.d/50-server.cnf) bearbeite, um den Wert für datadir zu ändern, funktioniert es, während eine Änderung in my.cnf nicht funktioniert. Versuchen Sie also, die Option, die Sie ändern möchten, auf diese Weise zu finden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
Unter Ubuntu können Sie den Befehl
locate my.cnf
um herauszufinden, wo sich all diese Dateinamen befinden0 Stimmen
Sie müssen möglicherweise Folgendes installieren
locate
verwenden:sudo apt install locate