Jak zezwolić na zdalne połączenia z MySQL

Jak zezwolić na zdalne połączenia z MySQL

Jeśli pracujesz z bazą danych MySQL, to już wiesz, że stajesz przed sobą wyzwania związane z zabezpieczeniem bazy danych. Od prób hakowania bazy danych przy użyciu zastrzyków SQL po ataki brutalnej siły, trudno jest zapewnić bezpieczeństwo danych, szczególnie jeśli pracujesz z bazą danych zdalnie.

Istnieją sposoby na skonfigurowanie serwera SQL, aby umożliwić zdalne połączenia, ale musisz zachować ostrożność, ponieważ zezwolenie na zdalne połączenia na serwerze MySQL może sprawić, że Twoja baza jest łatwym celem dla hakerów. Jeśli chcesz zezwolić na bezpieczne, zdalne połączenia z bazą danych MySQL, oto co musisz wiedzieć.

Spis treści

    Ten przewodnik poprowadzi Cię przez kroki do konfigurowania MySQL, aby umożliwić zdalne połączenia, ale musisz upewnić się, że masz bezpośredni lub zdalny dostęp do serwera hostującego serwer MySQL.

    Załóżmy, że nie masz zdalnego dostępu do swojego serwera przez SSH (na przykład). W takim przypadku nie będziesz mógł skonfigurować swojej bazy danych MySQL, aby umożliwić zdalne połączenia, chyba że Twoje konto root MySQL już umożliwia zdalne połączenia. Więc musisz najpierw ustanowić to połączenie, zanim będziesz mógł kontynuować.

    Edycja pliku konfiguracyjnego MySQL

    Pierwszym krokiem w konfigurowaniu MySQL, aby umożliwić zdalne połączenia jest edycja pliku konfiguracyjnego MySQL. Na tym etapie ten przewodnik założy, że już podłączyłeś do serwera, komputera lub komputera Mac, hostując bazę danych MySQL zdalnie i masz dostęp do konsoli.

    Alternatywnie możesz skonfigurować lokalny serwer MySQL za pomocą otwartego terminalu na Mac lub Linux lub edytora tekstu w systemie Windows.

    1. Aby rozpocząć, użyj preferowanego edytora tekstu konsoli, aby edytować swój plik bazy danych MySQL. W Linux wpisz sudo nano/etc/mysql/mysql.conf.D/Mysqld.CNF do terminalu lub okna SSH w celu edytowania tego pliku za pomocą Nano Edytor (zakładając, że twoja baza danych MySQL znajduje się w domyślnej lokalizacji).
    1. Jeśli używasz systemu Windows, otwórz eksplorator plików i uzyskaj dostęp do folderu zawierającego instalację MySQL (np. C:/Pliki programowe/MySQL/MySQL Server 8.0). Otworzyć Mój.ini plik za pomocą domyślnego edytora tekstu (np. Notatnik) poprzez dwukrotne kliknięcie wpisu. Jeśli go nie ma, najpierw utwórz plik.
    1. Na komputerze Mac otwórz okno i wpisz terminala sudo nano/usr/local/etc/my.CNF. Jest to domyślny plik konfiguracyjny dla MySQL, jeśli zainstalowałeś MySQL za pomocą HomeBrew.

    Lokalizacje, o których mowa powyżej, to domyślne lokalizacje plików konfiguracyjnych MySQL. Jeśli te polecenia nie działają, musisz wyszukać odpowiednie pliki (Mój.CNF, Mysqld.CNF, Lub Mój.ini) ręcznie, aby zlokalizować odpowiednią ścieżkę pliku.

    Ustawianie bezpiecznego zakresu IP przyłączenia wiązania

    1. Po otwarciu pliku konfiguracyjnego MySQL dla serwera użyj klawisza strzałki klawiatury, aby dotrzeć do Zakład wiązania sekcja pliku. Ten zakres IP ogranicza połączenia z twoją bazą danych, która jest zazwyczaj ustawiona tak, aby umożliwić tylko połączenia z komputera lokalnego lub serwera za pomocą 127.0.0.1.
    1. Jeśli chcesz skonfigurować bazę danych MySQL, aby umożliwić połączenia z urządzeń za pomocą bieżącego połączenia internetowego, znajdź swój publiczny adres IP, a następnie wymień 127.0.0.1 z tym adresem IP. Alternatywnie, zastąp go adresem IP dla urządzenia lub serwera, które chcesz zezwalać na połączenia.
    1. W niektórych okolicznościach możesz zezwolić Wszystko Zdalne połączenia z bazą danych MySQL. To niesie ekstremalne ryzyko i nie powinien być używany na serwerze produkcyjnym. Jeśli chcesz na to pozwolić, wymień jednak 127.0.0.1 z 0.0.0.0.
    1. Zanotuj Port wartość w Podstawowe ustawienia Sekcja. Będzie to wymagane w następnej sekcji. Jeśli nie jest to widoczne, zostanie użyta wartość domyślna, czyli portu 3306. Możesz dodać własny port, wpisując port = xxxx na nowej linii, zastępując xxxx z odpowiednią wartością portu.
    1. Po skonfigurowaniu Zakład wiązania W pliku konfiguracyjnym MySQL zapisz plik. Jeśli jesteś w Linux, wybierz Ctrl + o I Ctrl + x zrobić to. Na Mac, wybierz Polecenie + o I Command + x. Użytkownicy systemu Windows mogą zapisać, wybierając Plik > Ratować.
    1. Następnie użytkownicy Linux i Mac mogą ponownie uruchomić MySQL, wpisując Mysql.Serwer Stop && mysql.Start serwera Lub Mysql.Restart serwera. Może być konieczne podniesienie polecenia za pomocą sudo (np. sudo mysql.Restart serwera) i użyj odpowiedniej ścieżki do MySQL.plik serwera (np. /usr/local/bin/mysql.serwer).
    1. Jeśli powyższe polecenie nie działa, spróbuj Sudo Service Mysql restart Zamiast.
    1. Aby zrestartować MySQL w systemie Windows, otwórz nowe okno PowerShell, klikając menu Start i wybierając Windows PowerShell (administrator). W oknie PowerShell wpisz Stop netto Mysql80 śledzony przez Net Start MySQL80, zastąpienie Mysql80 z odpowiednią nazwą usługi na komputerze.

    Jeśli nie masz pewności właściwej nazwy usługi w systemie Windows, wpisz Start netto znaleźć to.Jeśli nie możesz ponownie załadować konfiguracji, ponownie uruchom ponownie serwer i ponownie załaduj MySQL (w razie potrzeby).

    Konfigurowanie zapory ogniowej

    Na tym etapie twoja baza danych MySQL powinna umożliwić zdalne połączenia z urządzeń za pomocą adresu IP jako ustawionego jako Zakład wiązania wartość w pliku konfiguracyjnym MySQL (lub ze wszystkich urządzeń, jeśli ustawisz tę wartość na 0.0.0.0 Zamiast). Jednak połączenia będą nadal zablokowane przez twoje urządzenie lub zapora sieciowa.

    Większość serwerów i komputerów korzysta z zapory do blokowania połączeń, chyba że dostęp do określonego portu zostanie przyznany. Kroki, aby to skonfigurować, będą się różnić, w zależności od tego, czy używasz MySQL w systemie Windows czy Linux. Zapory mac są domyślnie wyłączone, więc nie powinieneś wykonywać żadnych dodatkowych kroków tutaj.

    Skonfiguruj zapory ogniowe Linux

    Używa wielu serwerów Linux iptables Jako domyślne narzędzie zapory. Możesz go skonfigurować, wykonując poniższe czynności.

    1. Otwórz połączenie terminalowe lub SSH i wpisz sudo iptables -a wejście -p tcp -s x.X.X.X -dport trysa -j zaakceptuj. Zastępować X.X.X.X z adresem IP urządzenia, które chcesz umożliwić połączenia MySQL z, i wymienić Ja z dopasowaną wartością portu z pliku konfiguracyjnego MySQL (np. 3306).
    1. To skonfiguruje tymczasowo zaporę ogniową. Jeśli używasz serwera Linux z siedzibą w Debian lub Ubuntu, spraw, aby ta zmiana była trwała, wpisując Sudo Netfilter-Persistent Save I Sudo Netfilter-Persistent Reload do terminalu lub okna SSH.

    Jeśli iptables nie jest domyślnym narzędziem zapory dla dystrybucji Linux, musisz zapoznać się z instrukcją obsługi dystrybucji, aby uzyskać więcej informacji. Jeśli niektóre pakiety (takie jak Netfilter-Persistent) są niedostępne, użyj narzędzia repozytorium oprogramowania dystrybucji, aby go zainstalować (np. sudo apt instal Netfilter-Persistent).

    Skonfiguruj zapory ogniowe Windows

    Jeśli używasz komputera lub serwera Windows do hostowania bazy danych, możesz skonfigurować zaporę za pomocą tych kroków:

    1. Kliknij menu Start i wybierz prawym przyciskiem myszy Uruchomić.
    1. w Uruchomić Box, Typ Wf.MSC i wybierz OK.
    1. w Windows Defender okno, wybierz Reguły wewnętrzne > Nowa zasada.
    1. w Nowy kreator reguły przychodzących okno, wybierz Port > Następny.
    1. W następnym menu wybierz TCP Z opcji wpisz 3306 (lub dowolna wartość portu jest wymieniona w pliku konfiguracyjnym MySQL), a następnie wybierz Następny.
    1. Na Działanie menu, zostaw domyślną opcję Pozwól połączeniu włączone, a następnie wybierz Następny.
    1. Potwierdź, że chcesz, aby reguła miała zastosowanie do wszystkich typów sieci, a następnie wybierz Następny.
    1. Wpisz opisową nazwę reguły (np. Mysql) W dostarczonym porcie, a następnie wybierz Skończyć Aby dodać go do listy zasad zapory.

    Jeśli masz problemy z połączeniem, powtórz te kroki powyżej, upewniając się, że utworzył nowy zasada wychodząca W ustawieniach zapory przy użyciu tych samych szczegółów (port 3306 itp.). Może być również konieczne skonfigurowanie routera sieci lokalnej, aby otworzyć niezbędne zablokowane porty, aby umożliwić połączenia przychodzące i wychodzące z bazą danych. 

    Łączenie ze zdalnym serwerem za pomocą MySQL

    Po skonfigurowaniu bazy danych MySQL, aby umożliwić zdalne połączenia, musisz faktycznie nawiązać z nią połączenie. Możesz to zrobić za pomocą Mysql Komenda (Mysql.exe w systemie Windows) z terminalu lub okna PowerShell.

    Jeśli używasz systemu Windows, musisz upewnić się, że MySQL jest instalowany lokalnie przed rozpoczęciem. Użytkownicy komputerów Mac mogą instalować MySQL za pomocą HomeBrew z terminalu (Instaluj Brew MySQL), podczas gdy użytkownicy Linux mogą korzystać z lokalnego repozytorium aplikacji (np. sudo apt instal mysql) Aby zainstalować niezbędne pakiety.

    Łączenie się z MySQL na Linux lub Mac

    1. Aby połączyć się ze zdalnym serwerem MySQL na Mac lub Linux, otwórz nowe okno i wpisz nowe terminala mysql -u nazwa użytkownika -h x.X.X.X: xxxx -p. Zastępować X.X.X.X: XXXX z zdalnym adresem IP serwera i numerem portu (np. 100.200.100.200: 3306) I nazwa użytkownika z twoją nazwą użytkownika MySQL.
    1. Po wyświetleniu monitu potwierdź swoje hasło. Jeśli połączenie zakończy się powodzeniem, w terminalu pojawi się komunikat sukcesu.

    Łączenie się z MySQL w systemie Windows

    1. Aby połączyć się ze zdalnym serwerem MySQL w systemie Windows, otwórz nowe okno PowerShell, klikając menu prawym przyciskiem myszy i wybierając Windows PowerShell (administrator).
    1. W nowym oknie PowerShell wpisz CD „C: \ Program Files \ mysql \ mysql Workbench 8.0 \„Aby wprowadzić prawidłowy folder, zastępując ten katalog prawidłowym katalogiem instalacyjnym na komputerze. Na przykład, jeśli twoja wersja MySQL wynosi 8.0.1, użyj MySQL Workbench 8.0.1 zamiast tego folder.
    1. Stamtąd typ .\ mysql.exe -u nazwa użytkownika -h x.X.X.X: xxxx -p. Zastępować X.X.X.X: XXXX z zdalnym adresem IP serwera i numerem portu (np. 100.200.100.200: 3306) I nazwa użytkownika Z nazwą użytkownika MySQL, która umożliwia zdalny dostęp (taki jak źródło). Postępuj zgodnie z dodatkowymi instrukcjami na ekranie.
    2. Podaj hasło, po wyświetleniu monitu, do zdalnego ukończenia procesu logowania i dostępu do bazy danych MySQL.

    Jeśli to nie działa, podłącz się do serwera lub komputera hostującego serwer MySQL za pomocą SSH (lub dostęp do niego bezpośrednio) za pomocą tych kroków i za pomocą -h Localhost argument. Następnie możesz utworzyć odpowiednie konto użytkownika, wykonując poniższe czynności.

    Umożliwienie zdalnego dostępu użytkownika do bazy danych MySQL

    W tym momencie powinieneś być w stanie połączyć się z serwerem MySQL zdalnie za pomocą konta użytkownika głównego serwera lub innego konta użytkownika z podwyższonymi uprawnieniami. Ponieważ ten poziom dostępu jest niebezpieczny, możesz utworzyć bardziej ograniczone konto, aby uzyskać dostęp do bazy danych MySQL.

    To konto będzie miało ograniczony dostęp do twojego serwera MySQL, umożliwiając mu interakcję z tylko wybranymi bazami danych. Nie będzie w stanie wprowadzić poważniejszych zmian, takich jak dostęp do innych danych bazy danych, tworzenie nowych kont użytkowników itp.

    Musisz mieć możliwość zdalnego logowania na serwer MySQL. Jeśli nie możesz zdalnie korzystać z konta głównego, musisz uzyskać dostęp do powłoki serwera za pomocą Mysql polecenie za pomocą zdalnego połączenia SSH lub poprzez bezpośredni dostęp do komputera lub serwera hostującego serwer.

    1. W twojej zdalnej powładzie mysql (za pomocą Mysql narzędzie), typ Utwórz użytkownika „nazwa użytkownika”@”x.X.X.x ”zidentyfikowane przez„ hasło ”; i wybierz Wchodzić. Zastępować nazwa użytkownika Z nazwą użytkownika, którą chcesz stworzyć, X.X.X.X z adresem IP, z którego chcesz się połączyć, i hasło z odpowiednim hasłem.
    1. Musisz udzielić nowego konta z niezbędnymi uprawnieniami. Aby to zrobić, typ Przyznać wszystko na nazwie danych.* Do nazwy użytkownika@”x.X.X.X"; i wymienić nazwa danych, nazwa użytkownika, I X.X.X.X Z poprawnymi szczegółami. Jeśli chcesz, wymień nazwa danych z * Aby zapewnić mu dostęp do wszystkich baz danych.

    Przy przyznanym dostępie użyj kroków w powyższej sekcji, aby zdalnie połączyć się z serwerem za pomocą nowego konta (np. mysql -u nazwa użytkownika -h x.X.X.X: xxxx -p).

    Zabezpieczenie danych bazy danych

    Niezależnie od tego, czy pracujesz z MySQL, czy innym rodzajem bazy danych SQL, ważne jest, aby zapewnić bezpieczeństwo połączeń, aby utrzymać bezpieczeństwo danych. Dobrym sposobem na to jest wygenerowanie kluczy SSH do zdalnego dostępu do twojego serwera, zamiast polegania na przestarzałych (i łatwych do zgadywaniach) hasłach.

    Jeśli martwisz się utratą danych, możesz łatwo wykonać kopię zapasową bazy danych online. Większość baz danych jest uruchamiana za pomocą serwerów Linux-możesz łatwo zautomatyzować kopię zapasową pliku Linux. Jeśli używasz MySQL w systemie Windows, możesz skonfigurować podobny automatyczny system kopii zapasowej dla systemu Windows, umożliwiając przywrócenie danych w nagłych wypadkach.