it-swarm.com.de

Bestimmen Sie, welche Konfigurationsdatei verwendet wird

Gibt es einen Befehl, um festzustellen, welche Konfigurationsdatei MySQL 5.0 derzeit verwendet?

124
yalestar

Wenn Sie mit Linux arbeiten, starten Sie 'mysqld' mit strace, zum Beispiel strace ./mysqld.

Bei allen anderen Systemaufrufen finden Sie Folgendes:

stat64("/etc/my.cnf", 0xbfa3d7fc)       = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4227, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3

Wie Sie sehen, listet er die .cnf-Dateien auf, die er zu verwenden versucht und schließlich verwendet.

55
user59634

Aus dem fantastischen O'Reilly-Buch "High Performance MySQL":

$ which mysqld
/usr/sbin/mysqld

$ /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf
213
Mark B

Wenn Sie mysql --verbose --help | less ausführen, werden Sie über Zeile 11 informiert, nach welchen .cnf-Dateien gesucht werden soll.

Sie können auch mysql --print-defaults ausführen, um anzuzeigen, wie die Konfigurationswerte verwendet werden. Dies kann auch hilfreich sein, um zu ermitteln, welche Konfigurationsdatei gerade geladen wird.

56
staticsan

Ich bin unter Windows und habe die neueste Version der MySQL-Community 5.6 installiert 

Um zu sehen, welche Konfigurationsdatei verwendet wurde, konnte ich unter Verwaltung> Dienste> MySQL56> Rechtsklick> Eigenschaften gehen und den Pfad zur ausführbaren Datei überprüfen: 

"C:/Programme/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file = "C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56

Eine Alternative ist zu verwenden 

mysqladmin variables
17
Steve

mysqld --help --verbose ist gefährlich. Sie können die PID-Datei für die Ausführung der Instanz leicht überschreiben! Verwenden Sie es mit --pid-file = XYZ

Oh, und Sie können es nicht wirklich verwenden, wenn mehr als eine Instanz ausgeführt wird. Es wird nur der Standardwert angezeigt.

Wirklich guter Artikel dazu:

Wie finde ich die MySQL-Konfigurationsdatei?

13
Sasha

Hab gerade einen kurzen Test auf Ubuntu gemacht:

  • installierte den mysql-server, der /etc/mysql/my.cnf erstellt hat

  • mysqld --verbose --help | grep -A 1 "Standardoptionen"

110112 13:35:26 [Hinweis] Das Plugin 'FEDERATED' ist deaktiviert.
Standardoptionen werden aus den folgenden Dateien in der angegebenen Reihenfolge gelesen: /etc/mysql/my.cnf/usr/etc/my.cnf ~/.my.cnf 

  • /etc/my.cnf und /usr/etc/my.cnf erstellt, jeweils mit einer anderen Portnummer

  • mysql wurde neu gestartet - es wurde die in /usr/etc/my.cnf festgelegte Portnummer verwendet

Inzwischen fand auch die Option --defaults-file zur mysqld. Wenn Sie dort eine Konfigurationsdatei angeben, wird nur diese verwendet, unabhängig davon, was von __./usr/sbin/mysqld --verbose --help | zurückgegeben wird grep -A 1 "Standardoptionen"

8
Herta

Ich fand das wirklich nützlich:

  1. Finden Sie den MySQL-Prozess in Services unter Control Panel -> Administration Tools.
  2. Klicken Sie mit der rechten Maustaste und wählen Sie Properties.
  3. Klicken Sie auf und wählen Sie den Path to executable aus und prüfen Sie, ob er den Pfad zum my.ini/my.cfg enthält.
3
Luke

Auf einigen Servern sind mehrere MySQL-Versionen installiert und konfiguriert. Stellen Sie sicher, dass Sie mit der korrekten Version des Unix-Befehls __.

ps -ax | grep mysql
2
Heather McVay

In MySQL Workbench wird es unter "Server Status" angezeigt:  enter image description here

2
fanThomas

Nur für den Fall, dass Sie mac ausführen, kann dies auch durch Folgendes erreicht werden:

Sudo dtruss mysqld 2>&1 | grep cnf
1
talsibony

Wenn Sie Windows-Server mit mysql als Dienst ausführen, können Sie auf einfache Weise herausfinden, welche Konfigurationsdatei Sie ausführen, indem Sie das Dienststeuerungsfeld öffnen, Ihren mysql-Dienst (in meinem Fall 'MYSQL56') suchen, mit der rechten Maustaste klicken und Eigenschaften auswählen . Von hier aus können Sie den "Pfad zur ausführbaren Datei" überprüfen, der über einen defaults-file-Schalter verfügen sollte, der auf die Position Ihrer Konfigurationsdatei verweist.

1
Kershrew

Wenn Sie unter Windows arbeiten, können Sie Sysinternals procmon verwenden. Öffnen Sie es und konfigurieren Sie die Filtereinstellungen wie folgt. Klicken Sie anschließend auf "Hinzufügen". Jetzt überwacht procmon mysqld. 

 enter image description here

Starten Sie nun Ihren MySQL-Server ganz normal. Procmon erfasst die Hintergrundoperationen von mysql. Suche "mein". Im procmon-Ergebnisbereich finden Sie etwa Folgendes:

 enter image description here

Es ist klar, dass mysql nacheinander eine Liste von Konfigurationsdateien durchsucht. In meinem Fall hat es C:\mysql-5.7.19-winx64\my.cnf erfolgreich gefunden, so dass es dieses verwendet.

0
Ogrish Man