Gdzie jest plik my.cnf dla instalacji homebrew mysql? Czy to instaluje?
293
Domyślnie nie ma pliku my.cnf. Jako taki, MySQL zaczyna się od wszystkich ustawień domyślnych. Jeśli chcesz utworzyć własny plik my.cnf w celu zastąpienia wartości domyślnych, umieść go na /etc/my.cnf.
Możesz także uruchomić mysql --help
i przejrzeć wymienione lokalizacje konf.
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.
Jak widać, istnieją również opcje pomijania plików conf lub określania innych plików do odczytania po wywołaniu mysql w wierszu poleceń.
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
łatwiej było znaleźć linie.Homebrew mysql zawiera przykładowe pliki konfiguracyjne w folderze plików obsługi instalacji.
Jeśli chcesz zmienić ustawienia domyślne, możesz użyć jednego z nich jako punktu wyjścia.
Jak wskazuje @rednaw, homebrew instalacja MySQL najprawdopodobniej będzie w nim,
/usr/local
więc plik my.cnf nie powinien być dodawany do/etc
folderu systemowego , dlatego zmieniłem polecenie kopiowania pliku/usr/local/etc
.Jeśli używasz MariaDB zamiast MySQL, skorzystaj z następujących opcji:
źródło
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
/usr/local/
(myślę, że jest to domyślny), możesz również umieścić gomy.conf
w/usr/local/etc/
, który nie wymaga uprawnień roota.brew --prefix mariadb
. W dystrybucji MariaDBmy-default.cnf
nie istnieje - użyjmy-small.cnf
. Spróbuj tegocp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
Jednym ze sposobów, aby dowiedzieć się:
źródło
mdfind -name my.cnf
zamiastlocate
komendy w OSXlocate my.cnf
pracował bezpośrednio. Niesudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf
i/usr/local/etc/my.cnf
właśnie to dostałemNic tak naprawdę mi nie pomogło - nie mogłem nadpisać ustawień w pliku /etc/my.cnf. Szukałem więc tak, jak John sugerował https://stackoverflow.com/a/7974114/717251
Znalazł kolejny plik my.cnf
zmiana tego pliku działała dla mnie! Nie zapomnij ponownie uruchomić agenta uruchamiania:
Aktualizacja:
Jeśli masz dość niedawną instalację homebrew, powinieneś użyć komend brew services, aby zrestartować mysql (użyj zainstalowanej wersji homebrew mysql, tj. Mysql lub [email protected]):
źródło
brew services stop mysql
ibrew services start mysql
zastępowaćlaunchctl unload ...
linie.w moim systemie było
jako szablon i
jak działa.
źródło
Ponieważ
mysql --help
pokazuje listę plików, uważam, że przydatne jest ustalenie wyniku,ls
aby zobaczyć, który z nich istnieje:W moim (zainstalowanym Homebrew) MySQL 5.7 wygląda na to, że pliki są włączone
/usr/local/etc/my.cnf
.źródło
Na twoim typie powłoki
my_print_defaults --help
Na dole wyniku powinieneś zobaczyć plik, z którego serwer odczytuje konfiguracje. Drukuje coś takiego:
źródło
Możesz dowiedzieć się, gdzie
my.cnf
plik został dostarczony przez określony pakiet, npOprócz sprawdzenia, czy plik został odczytany, możesz uruchomić:
który pokaże aktywność systemu plików w czasie rzeczywistym związaną z tym plikiem.
źródło
Uważam, że odpowiedź brzmi „nie”. Instalacja jednego z ~ / .my.cnf lub / usr / local / etc wydaje się być preferowanym rozwiązaniem.
źródło
W przypadku Homebrew mysql szukałby również my.cnf w swoim katalogu Cellar, na przykład:
W przypadku, gdy wolisz trzymać konfigurację blisko plików binarnych - stwórz
my.cnf
tutaj, jeśli jej brakuje.Uruchom ponownie mysql po zmianie:
źródło
Wersja serwera: 8.0.19 Homebrew. macOS Catalina 10.15.5 i zainstalowany MySQL przez Homebrew. Znaleziono ten plik tutaj:
To rozwiązanie pomogło :)
źródło
Dla MacOS (High Sierra), MySQL, który został zainstalowany z domowym zaparzeniem.
Zwiększenie globalnych zmiennych ze środowiska mysql nie powiodło się. W takim przypadku tworzenie pliku ~ / .my.cnf jest najbezpieczniejszą opcją. Dodanie zmiennych za pomocą [mysqld] obejmie zmiany (Uwaga: jeśli zmienisz za pomocą [mysql], zmiana może nie działać).
Uruchom ponownie serwer mysql. i sprawdź zmienne. y
1 rząd w zestawie (0,00 s)
źródło
$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
Upuść plik my.cf do
/usr/local/opt/mysql
brew services restart mysql
źródło