GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich den my.cnf-Speicherort von MySQL?

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.


Linux
  1. So finden Sie das Paket, das eine bestimmte Datei in Linux bereitstellt

  2. So finden Sie die älteste Datei in einem Verzeichnisbaum in Linux

  3. Wie finde ich den Prozess mit maximalen Dateideskriptoren?

  4. Wie verschiebt man das MySQL-Datenverzeichnis?

  5. Wie finde ich den Besitzer einer Datei oder eines Verzeichnisses in Python?

So finden Sie den Standort Ihrer Server mit Traceroute und WHOIS

Wie ändere ich das MySQL-Timeout-Limit in Linux?

So finden Sie Dateien mit Dutzenden von Kriterien mit dem Bash-Suchbefehl

So finden Sie den Speicherort der aktuell verwendeten MySQL-Konfigurationsdatei unter Linux heraus

Was ist der richtige Speicherort der mysql.sock-Datei unter Linux?

Wie finde ich die älteste Datei in einem Verzeichnisbaum?