Oto krótka lista kontrolna dotycząca włączania połączeń zdalnych dla MySQL, ale najpierw przeczytaj (6). Jeśli coś przegapiłem, możesz edytować.
1) Twój zdalny użytkownik łączy się przez konto utworzone z odpowiednim użytkownikiem, hostem
wpisy (spójrz na dane wyjściowe z wybierz użytkownika, hosta z mysql.user w kolejności 1,2
). Jeśli nie, zajrzyj do CREATE USER
i/lub GRANCJA
polecenia. Sprawdź dane wyjściowe z POKAŻ DOTACJE
dla użytkownika.
2) Zrobiłeś uprawnienia do opróżniania;
(Niektórzy twierdzą, że jest to niepotrzebne, inni twierdzą, że tak).
3a) Znajdź swój plik konfiguracyjny mysql, o którym mowa w 3b) poniżej, przeglądając informacje w Ten dokument
(lub dla Windows, prawdopodobnie w dół C:\ProgramData\MySQL\MySQL Server 5.NNN
ścieżka). Zależy to od dystrybucji dla Linuksa.
3b) Zmodyfikowałeś i zapisałeś my.ini
(Windows) lub my.cnf
(Linux) i zmieniono adres powiązania
z dala od 127.0.0.1
lub localhost
, na korzyść 0.0.0.0
. I stworzyłeś i usuń następującą linię:#skip-networking
. Będzie wyglądać podobnie do tego:
[mysqld]
bind-address=0.0.0.0
#skip-networking
4) Zrestartuj demona mysql. Jak to się dzieje, zależy od dystrybucji.
5) Problemy z zaporą. Upewnij się, że port, domyślnie 3306
, jest otwarty na świat zewnętrzny (który w rzeczywistości może być tylko Twoim intranetem). Obejmuje to wszelkie inne warstwy zapór sieciowych, takie jak grupy zabezpieczeń AWS EC2 lub podobne, jeśli takie istnieją.
6) Zrozum, że jest z tym związane zagrożenie bezpieczeństwa. Jeśli nie masz wiedzy na temat wystawiania serwera mysql na zdalne połączenia, nie wykonuj tego.
7) Proszę przeprowadzać częste oceny bezpieczeństwa za pomocą select
oświadczenie wymienione w punkcie 1. powyżej, w tym przegląd POKAŻ DOTACJE
dla tych użytkowników. Nie należy niepotrzebnie przyznawać użytkownikom zbyt dużej liczby symboli wieloznacznych. Raczej nadaj użytkownikom minimalne uprawnienia do wykonywania swojej pracy.
8) Często sprawdzaj nieudane próby połączenia za pomocą dziennika ogólnego i dziennika błędów, jak krótko opisano poniżej.
W przypadku ruchu przychodzącego możesz zajrzeć do ogólnego dziennika zapytań.
select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to
Tak więc wszystkie zapytania mogą być zalogowany do Ogólnego dziennika zapytań
jeśli ustawienie jest włączone. Sprawdź dziennik pod kątem „połączenia”, ale w szczególności pod kątem Odmowa dostępu dla użytkownika
aby zobaczyć nieudane próby. Rób to regularnie (nie co kilka lat). Robię to przynajmniej dwa razy dziennie. Uwaga, możesz oczywiście zautomatyzować raportowanie za pomocą zewnętrznego programu. Świat zewnętrzny będzie walał Twój serwer, aby uzyskać dostęp jak na poniższym obrazku. To jest rzeczywistość; przygotuj się na to.
Sprawdź stronę podręcznika Dziennik błędów również, zwracając uwagę na poziomy ostrzeżeń i ustawienia szczegółowości w zależności od Twojej wersji.
Zalecam utworzenie kopii zapasowej według daty (o takiej nazwie) i usunięcie plików dziennika po utworzeniu kopii zapasowej, aby rozpocząć od nowa po utworzeniu kopii zapasowej. Pliki dziennika mogą szybko rosnąć do ogromnych rozmiarów, zwłaszcza dziennik ogólny. Nie zapomnij, czy masz włączone lub wyłączone ustawienie logowania.
Możesz użyć dwóch dzienników, aby określić, czy podczas próby połączenia udało się przejść przez zaporę ogniową.