Wo ist my.cnf für Homebrew-MySQL-Installationen? Installiert es eine?
293
Standardmäßig gibt es keine my.cnf. Daher beginnt MySQL mit allen Standardeinstellungen. Wenn Sie Ihre eigene my.cnf erstellen möchten, um alle Standardeinstellungen zu überschreiben, platzieren Sie sie unter /etc/my.cnf.
Sie können es auch ausführen mysql --help
und nach den aufgelisteten Conf-Speicherorten suchen.
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
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
Wie Sie sehen können, gibt es auch einige Optionen zum Umgehen der conf-Dateien oder zum Angeben anderer zu lesender Dateien, wenn Sie mysql in der Befehlszeile aufrufen.
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
war eigentlich einfacher die Zeilen zu finden.Das Homebrew-MySQL enthält Beispielkonfigurationsdateien im Ordner "support-files" der Installation.
Wenn Sie die Standardeinstellungen ändern müssen, können Sie eine davon als Ausgangspunkt verwenden.
Wie @rednaw hervorhebt, wird höchstwahrscheinlich eine Homebrew-Installation von MySQL durchgeführt,
/usr/local
sodass die Datei my.cnf nicht zum/etc
Systemordner hinzugefügt werden sollte. Daher habe ich den Befehl zum Kopieren der Datei geändert/usr/local/etc
.Wenn Sie MariaDB anstelle von MySQL verwenden, verwenden Sie Folgendes:
quelle
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
/usr/local/
(was meiner Meinung nach die Standardeinstellung ist), können Sie auch dasmy.conf
in platzieren/usr/local/etc/
, für das keine Root-Rechte erforderlich sind.brew --prefix mariadb
. In der MariaDB-Distribution existiert dasmy-default.cnf
nicht - also benutzemy-small.cnf
. Versuchen Sie diescp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
Ein Weg, um herauszufinden:
quelle
mdfind -name my.cnf
anstelle vonlocate
Befehl unter OSXlocate my.cnf
hat direkt gearbeitet. Ich bin nicht gelaufensudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf
und/usr/local/etc/my.cnf
war was ich bekamin meinem System war es
als Vorlage und
als arbeiten.
quelle
Nichts hat mir wirklich geholfen - ich konnte die Einstellungen in einer /etc/my.cnf-Datei nicht überschreiben. Also suchte ich wie John vorgeschlagen hatte https://stackoverflow.com/a/7974114/717251
Es fand eine andere my.cnf in
Das Ändern dieser Datei hat bei mir funktioniert! Vergessen Sie nicht, den Startagenten neu zu starten:
Aktualisieren:
Wenn Sie eine relativ neue Installation von Homebrew haben, sollten Sie die Befehle für die Brauservices verwenden, um MySQL neu zu starten (verwenden Sie Ihre installierte Homebrew-MySQL-Version, dh MySQL oder MySQL @ 5.7):
quelle
brew services stop mysql
undbrew services start mysql
anstelle derlaunchctl unload ...
Linien.Da
mysql --help
eine Liste von Dateien angezeigt wird, finde ich es nützlich, das Ergebnis weiterzuleiten, umls
zu sehen, welche davon vorhanden sind:Für mein (Homebrew installiert) MySQL 5.7 scheinen die Dateien aktiviert zu sein
/usr/local/etc/my.cnf
.quelle
Auf Ihrem Shell-Typ
my_print_defaults --help
Am Ende des Ergebnisses sollten Sie die Datei sehen können, aus der der Server die Konfigurationen liest. Es druckt ungefähr so:
quelle
Sie können herausfinden, wo die
my.cnf
Datei von dem spezifischen Paket bereitgestellt wurde, zZusätzlich zum Überprüfen, ob diese Datei gelesen wurde, können Sie Folgendes ausführen:
Dies zeigt Ihnen die Aktivität des Dateisystems in Echtzeit in Bezug auf diese Datei.
quelle
Ich glaube die Antwort ist nein. Die Installation einer Datei in ~ / .my.cnf oder / usr / local / etc scheint die bevorzugte Lösung zu sein.
quelle
Im Fall von Homebrew würde mysql auch in seinem Kellerverzeichnis nach my.cnf suchen, zum Beispiel:
Für den Fall, dass man die Konfiguration lieber in der Nähe der Binärdateien hält -
my.cnf
hier erstellen , wenn sie fehlt.Starten Sie MySQL nach der Änderung neu:
quelle
Serverversion: 8.0.19 Homebrew. macOS Catalina 10.15.5 und installierte MySQL über Homebrew. Fand diese Datei hier:
Diese Lösung hat geholfen :)
quelle
Für MacOS (High Sierra) MySQL, das mit Home Brew installiert wurde.
Das Erhöhen der globalen Variablen aus der MySQL-Umgebung war nicht erfolgreich. In diesem Fall ist das Erstellen von ~ / .my.cnf die sicherste Option. Das Hinzufügen von Variablen mit [mysqld] enthält die Änderungen (Hinweis: Wenn Sie mit [mysql] ändern, funktioniert die Änderung möglicherweise nicht).
Starten Sie den MySQL-Server neu. und überprüfen Sie die Variablen. y
1 Reihe im Satz (0,00 Sek.)
quelle
$ps aux | grep mysqld /usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql/lib/plugin
Legen Sie Ihre my.cf-Datei in ab
/usr/local/opt/mysql
brew services restart mysql
quelle