Czy istnieje polecenie określające, który plik konfiguracyjny jest obecnie używany przez MySQL 5.0?
mysql
configuration
yalestar
źródło
źródło
ps auxf
i znaleźć polecenie wykonane dla MySQL. Zwykle wygląda to na coś takiego jakmysqld --basedir=/usr/local/mysql ...
(uwaga ... oznacza tylko, że w poleceniu może być więcej flag, ale nie będę ich wszystkich wymieniać). Po znalezieniu go skopiuj całość, a następnie zamknij MySQL. Jeśli używasz Linuksa, jest to/etc/init.d/mysqld stop
lubmysqladmin -u root -p shutdown
. Następnie uruchomstrace
skopiowane polecenie mysql. Tak by to wyglądało:strace mysqld --basedir=/usr/local/mysql
open(...
linii. Zamiast tego mam 4 wiersze, które kończą się na= -1 Err#2
. Skąd mam wiedzieć, który plik jest załadowany?sudo dtruss mysqld 2>&1|grep my.cnf
@mgPePe, to wyjście prawdopodobnie oznacza, że żaden z plików nie został znaleziony, więc żaden nie został otwarty.Zaczerpnięte z fantastycznej książki O'Reilly „High Performance MySQL”:
źródło
!includedir
. Próbuję dowiedzieć się, dlaczego!includedir
dyrektywa w moim/etc/mysql/my.cnf
pliku nie działa.mysqld
z pełną ścieżką ?!Jeśli uruchomisz
mysql --verbose --help | less
, powie ci o linii 11, których.cnf
plików będzie szukał.Możesz również zrobić,
mysql --print-defaults
aby pokazać, jakie wartości konfiguracyjne będą używane. Może to być również przydatne w określaniu, który plik konfiguracyjny jest ładowany.źródło
mysqld
zamiastmysql
mysqld --print-defaults
, dało mi to dokładnie to, czego chciałem, kiedy w Google wpisałem to pytanie.Korzystam z systemu Windows i zainstalowałem najnowszą wersję społeczności MySQL 5.6
To, co zrobiłem, aby zobaczyć, jakiego pliku konfiguracyjnego używa, to przejść do Narzędzia administracyjne> Usługi> MySQL56> Kliknij prawym przyciskiem myszy> Właściwości i sprawdź ścieżkę do pliku wykonywalnego:
"C: / Program Files / MySQL / MySQL Server 5.6 / bin \ mysqld" --defaults-file = "C: \ ProgramData \ MySQL \ MySQL Server 5.6 \ my.ini" MySQL56
źródło
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
domyślnie.Alternatywą jest użycie
źródło
mysqld --help --verbose jest niebezpieczny. Możesz łatwo nadpisać plik pidfile dla uruchomionej instancji! użyj go z --pid-file = XYZ
Aha, i naprawdę nie możesz go używać, jeśli masz uruchomioną więcej niż 1 instancję. Wyświetli tylko domyślną wartość.
Naprawdę dobry artykuł o tym:
Jak znaleźć plik konfiguracyjny MySQL?
źródło
Właśnie zrobiłem szybki test na Ubuntu:
zainstalowany serwer mysql, który utworzył /etc/mysql/my.cnf
mysqld --verbose --help | grep -A 1 "Opcje domyślne"
110112 13:35:26 [Uwaga] Wtyczka „FEDERATED” jest wyłączona.
Domyślne opcje są odczytywane z następujących plików w podanej kolejności: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~ / .my.cnf
utworzono /etc/my.cnf i /usr/etc/my.cnf, każdy z innym numerem portu
zrestartował mysql - używał numeru portu ustawionego w /usr/etc/my.cnf
W międzyczasie znalazłem również opcję --defaults-file w mysqld. Jeśli podasz tam plik konfiguracyjny, tylko ten zostanie użyty, niezależnie od tego, co zostanie zwrócone przez / usr / sbin / mysqld --verbose --help | grep -A 1 "Opcje domyślne"
źródło
Korzystając z MySQL Workbench, będzie on widoczny pod "Stanem serwera":
źródło
Uważam, że to naprawdę przydatne:
Control Panel -> Administration Tools
Properties
Path to executable
i zobacz, czy zawiera ścieżkę do plikumy.ini/my.cfg
źródło
Na niektórych serwerach zainstalowano i skonfigurowano wiele wersji MySQL. Upewnij się, że masz do czynienia z poprawną wersją działającą z poleceniem Unix:
źródło
Dla osób korzystających z serwera Windows z mysql jako usługą, prostym sposobem sprawdzenia, jaki plik konfiguracyjny używasz, jest otwarcie panelu sterowania usług, znalezienie usługi mysql (w moim przypadku 'MYSQL56'), kliknięcie prawym przyciskiem myszy i kliknięcie właściwości . Następnie możesz sprawdzić "Ścieżkę do
defaults-file
pliku wykonywalnego", która powinna mieć przełącznik wskazujący miejsce, w którym znajduje się plik konfiguracyjny.źródło
Na wypadek, gdybyś korzystał z Maca, można to również osiągnąć poprzez:
źródło
Jeśli korzystasz z systemu Windows, możesz użyć Sysinternals procmon . Otwórz go i skonfiguruj ustawienia filtru w ten sposób, a następnie kliknij „Dodaj”. Teraz procmon będzie monitorował mysqld.
Teraz uruchom serwer mysql w normalny sposób. Procmon przechwyci operacje mysql w tle. Wyszukaj „moje”. w panelu wyników procmon, a znajdziesz coś takiego:
Jest jasne, że mysql przeszukuje listę plików konfiguracyjnych po kolei. W moim przypadku
C:\mysql-5.7.19-winx64\my.cnf
udało się, więc używa tego.źródło
Zainstalowałem mysql, użyj brew install mysql
I to pokazuje:
źródło