Dlaczego /etc/mysql/my.cnf PUSTY?

16

Próbuję edytować my.cnfplik, aby umożliwić zdalny dostęp i ostatecznie użyć oprogramowania z mojego systemu Windows Server do skonfigurowania zaplanowanej kopii zapasowej dla MySQL Server.

Postępowałem zgodnie z tymi instrukcjami . Jednak /etc/mysql/my.cnfplik na moim Ubuntu ma tylko:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Nie zawiera żadnej konfiguracji, którą mogę edytować. Dlaczego tak jest?

Mercedez
źródło
Oznacza to tylko, że plik jest w stanie domyślnym, w oryginalnej formie od czasu instalacji
Sergiy Kolodyazhnyy

Odpowiedzi:

29

Po pierwsze, jak słusznie zauważa AB, plik nie jest pusty. Ma dwie dość ważne dyrektywy, a mianowicie

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Te wiersze mówią, że dodatkowe pliki konfiguracyjne (w tym przypadku .cnf) można znaleźć w wymienionych katalogach:

/etc/mysql/conf.d/
/etc/mysql/mysql.conf.d/

Ten drugi z dwóch katalogów powinien zawierać mysqld.cnf . Innymi słowy, odpowiednim plikiem konfiguracyjnym powinien być:

/etc/mysql/mysql.conf.d/mysqld.cnf
Techedemic
źródło
2
coś jest nie tak. kiedy edytuję do połowy pusty plik my.conf i np. ustawiam wait_timeout = 600, usługi mysql nie można już uruchomić.
phil294
To jest dokładna odpowiedź na pytanie.
Lasitha Benaragama
Chciałbym móc go znaleźć 6 godzin wcześniej!
neophyte
@Blauhirn To samo tutaj, kiedy podaję tutaj hasło. Bez niego usługa się uruchomi, ale najwyraźniej pod [mysqld] nie wszystko zostanie poprawnie przeanalizowane, jak oczekiwanie i hasło.
min hundje
5

Plik nie jest pusty. Zawiera komentarze - linie wiodące #- i instrukcje importu - linie wiodące !. Instrukcja importu oznacza, że ​​będą używane także inne konfiguracje.

Edycja pliku konfiguracyjnego oznacza również dodanie nowych linii konfiguracyjnych.

AB
źródło
4

Mój plik jest taki sam. Musisz dodać poprawną grupę powyżej polecenia, które próbujesz wprowadzić, w przeciwnym razie usługa nie uruchomi się.

Aby dodać bind-address, musisz dodać [mysqld]powyżej.

Jeśli chcesz sprawdzić, jakie grupy są dla innych poleceń, znajdziesz tutaj przykładowy my.cnfplik .

Jeśli chcesz włączyć połączenia zdalne ze wszystkich interfejsów (tj. 0.0.0.0), twój plik będzie wyglądał tak jak poniżej, jednak upewnij się, że poprawnie skonfigurowałeś zaporę.

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]    
bind-address = 0.0.0.0

Zwróć uwagę na grupę [mysqld].

Obrabować
źródło
To taki ból w **. Próbuję sprawić, by połączenia zdalne działały już prawie dwa dni. Połączenia zdalne powinny być włączone od razu po wyjęciu z pudełka.
Mark Alexa,
Dlaczego wystawiałbyś każdy serwer bazy danych w Internecie od razu po wyjęciu z pudełka? Czy nie ma wystarczającej liczby niezabezpieczonych systemów?
A. Scherbaum,
3

W takim przypadku plik ten nie jest głównym plikiem, w którym znajdują się wszystkie informacje o adresie bind, binlogach itp. Ale jest inny plik, do którego należą. Spróbuj tego:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

Pomogło mi i powinno ci pomóc.

Guu Mee
źródło
1

W systemie Ubuntu 16.04 / MySQL 5.7 przynajmniej my.cnf jest właściwie pusty, ponieważ jest to dowiązanie symboliczne do innego pliku, który symbolizuje dowiązanie z powrotem do mysql.cnf w /etc/mysql/mysql.conf.d wspomniany w innych odpowiedziach. Wprowadź zmiany tutaj, jak wspomniano powyżej.

Gavin
źródło