Sie könnten immer find in einem Terminal ausführen.
find / -name my.cnf
Es gibt keinen internen MySQL-Befehl, um dies zu verfolgen, es ist ein wenig zu abstrakt. Die Datei könnte sich an 5 (oder mehr?) Orten befinden, und sie wären alle gültig, weil sie kaskadierend geladen werden.
- /etc/my.cnf
- /etc/mysql/my.cnf
- $MYSQL_HOME/my.cnf
- [datadir]/my.cnf
- ~/.my.cnf
Dies sind die Standardspeicherorte, die MySQL betrachtet. Wenn es mehr als einen findet, lädt es jeden von ihnen und die Werte überschreiben sich gegenseitig (in der angegebenen Reihenfolge, denke ich). Auch der --defaults-file
-Parameter kann das Ganze außer Kraft setzen, also ... im Grunde ist es eine große Nervensäge.
Aber da es so verwirrend ist, besteht eine gute Chance, dass es sich nur in /etc/my.cnf befindet.
(Wenn Sie nur die Werte sehen möchten:SHOW VARIABLES
, aber dazu benötigen Sie die Berechtigungen.)
Führen Sie mysql --help
aus und Sie werden sehen:
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
mysql --help | grep /my.cnf | xargs ls
wird Ihnen sagen, wo my.cnf
befindet sich auf Mac/Linux
ls: cannot access '/etc/my.cnf': No such file or directory
ls: cannot access '~/.my.cnf': No such file or directory
/etc/mysql/my.cnf
In diesem Fall ist es /etc/mysql/my.cnf
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf
In diesem Fall ist es /usr/local/etc/my.cnf
Sie können MySQL tatsächlich um eine Liste aller Stellen "anfordern", an denen es nach my.cnf (oder my.ini unter Windows) sucht. Es ist jedoch keine SQL-Abfrage. Führen Sie stattdessen Folgendes aus:
$ mysqladmin --help
oder vor 5.7:
$ mysqld --help --verbose
Gleich in den ersten Zeilen finden Sie eine Nachricht mit einer Liste aller my.cnf-Speicherorte, nach denen gesucht wird. Auf meinem Rechner ist es:
Default options are read from the following files in the given order:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf
Oder unter Windows:
Default options are read from the following files in the given order:
C:\Windows\my.ini
C:\Windows\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf
Beachten Sie jedoch, dass es der Fall sein kann, dass es an keinem dieser Orte eine my.cnf-Datei gibt . Sie können die Datei also selbst erstellen – verwenden Sie eine der Beispielkonfigurationsdateien, die mit der MySQL-Distribution bereitgestellt werden (unter Linux – siehe /usr/share/mysql/*.cnf
Dateien und verwenden Sie, was für Sie geeignet ist - kopieren Sie es nach /etc/my.cnf
und dann nach Bedarf ändern).
Beachten Sie auch, dass es auch eine Befehlszeilenoption --defaults-file
gibt die einen benutzerdefinierten Pfad zu my.cnf- oder my.ini-Datei definieren kann. Dies ist beispielsweise bei MySQL 5.5 unter Windows der Fall – es zeigt auf eine my.ini-Datei im Datenverzeichnis, die normalerweise nicht mit mysqld --help --verbose
aufgeführt wird . Unter Windows – siehe Diensteigenschaften, um herauszufinden, ob dies bei Ihnen der Fall ist.
Überprüfen Sie abschließend die https://dev.mysql.com/doc/refman/8.0/en/option-files.html - dort wird sie ausführlicher beschrieben.