Jak povolit vzdálená připojení k MySQL


Pokud pracujete s Databáze MySQL, jste si již vědomi výzev, se kterými se potýkáte při zabezpečení své databáze. Od pokusů o hackování databáze pomocí injekcí SQL až po útoky hrubou silou je obtížné uchovat data v bezpečí, zvláště pokud pracujete s databází na dálku.

Existují způsoby, jak konfigurovat server SQL tak, aby umožňoval vzdálená připojení , ale musíte být opatrní, protože povolení vzdáleného připojení na serveru MySQL může z vaší databáze udělat snadný cíl pro hackery. Pokud chcete povolit zabezpečené vzdálené připojení k databázi MySQL, zde je to, co potřebujete vědět.

Obsah

    Před vámi Začněte

    Před provedením jakýchkoli změn ve své databázi MySQL je důležité zálohovat databázi, zvláště pokud pracujete na produkčním serveru (server při aktivním používání). Jakékoli změny, které provedete ve své databázi nebo na serveru, který ji hostuje, mohou mít za následek vážnou ztrátu dat, pokud se něco pokazí.

    Můžete také zjistit, že změny připojení vašeho serveru vám mohou zabránit v pozdějším přístupu. Pokud k tomu dojde, možná budete muset další podporu konzultovat se správcem serveru. Doporučujeme vyzkoušet všechny změny na místně spuštěném serveru MySQL a zkontrolovat, zda vaše změny fungují, než je vyzkoušíte na dálku.

    Je také pravděpodobné, že pokud provádíte změny na vzdáleném serveru, Potřebuji bezpečný způsob připojení a provádění změn. SSH (Secure Shell)je často nejlepší způsob, jak toho dosáhnout, protože vám umožňuje připojení ke vzdálenému serveru. SSH můžete také použít k připojení k serverům ve vaší místní síti, například k těm hostované na Raspberry Pi.

    Tato příručka vás provede kroky k konfiguraci MySQL tak, aby umožňovala vzdálená připojení, ale budete muset nejprve zajistit přímý nebo vzdálený přístup k serveru hostujícímu váš server MySQL.

    Předpokládejme, že nemáte vzdálený přístup k vašemu serveru přes SSH (například). V takovém případě nebudete moci svou databázi MySQL konfigurovat tak, aby umožňovala vzdálená připojení přímo, pokud váš kořenový účet mySQL již vzdálená připojení neumožňuje. Toto připojení tedy budete muset nejprve navázat, než budete moci pokračovat.

    Úprava konfiguračního souboru MySQL

    První krok při konfiguraci MySQL pro povolení vzdáleného connections je upravit konfigurační soubor MySQL. V této fázi bude tato příručka předpokládat, že jste se již připojili k serveru, PC nebo Mac vzdáleně hostujícímu vaši databázi mySQL a máte přístup ke konzole.

    Alternativně můžete konfigurovat místní server MySQL pomocí otevřeného terminálu na Macu nebo Linuxu nebo textového editoru ve Windows.

    1. Chcete -li začít, použijte preferovaný konzolový textový editor upravit svůj databázový soubor MySQL. V systému Linux zadejte sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfdo okna terminálu nebo SSH a upravte tento soubor pomocí editoru nano(za předpokladu vaše databáze MySQL je ve výchozím umístění) .
      1. Pokud používáte Windows, otevřete Průzkumník souborů a přejděte do složky obsahující vaši instalaci MySQL (např. C:/Program Files/MySQL/MySQL Server 8.0). Otevřete soubor my.inipomocí výchozího textového editoru (např. Poznámkový blok) poklepáním na položku. Pokud tam není, nejprve vytvořte soubor.
        1. Na Macu otevřete okno terminálu a zadejte sudo nano /usr/local/etc/my.cnf. Toto je výchozí konfigurační soubor pro MySQL, pokud jste nainstalovali MySQL pomocí homebrew.
        2. Místa uvedená výše jsou výchozí umístění pro konfigurační soubory MySQL. Pokud tyto příkazy nefungují, budete muset vyhledat příslušné soubory (my.cnf, mysqld.cnfnebo my.ini) ručně vyhledejte příslušnou cestu k souboru.

          Nastavení bezpečného rozsahu IP adresy IP vazby

          1. Jakmile Otevřeli jsme konfigurační soubor MySQL pro váš server. Pomocí klávesy se šipkou na klávesnici přejděte do části adresa vazby * souboru. Tento rozsah IP omezuje připojení k vaší databázi, která je obvykle nastavena tak, aby umožňovala připojení pouze z místního počítače nebo serveru pomocí 127.0.0.1.
            1. Pokud chcete konfigurovat svou databázi MySQL tak, aby umožňovala připojení ze zařízení využívajících vaše aktuální internetové připojení, nejprve najděte svou veřejnou IP adresu a poté nahraďte 127.0.0.1s touto IP adresou. Alternativně jej nahraďte IP adresou zařízení nebo serveru, ze kterého chcete povolit připojení.
              1. Za určitých okolností , můžete chtít povolit všechnavzdálená připojení k databázi MySQL. To s sebou nese extrémní rizikoa nemělo by se používat na produkčním serveru. Pokud to však chcete povolit, nahraďte 127.0.0.1.0.0.0.0.
                1. Poznamenejte si hodnotu portv části Základní nastavení. To bude vyžadováno v další části. Pokud není vidět, bude použita výchozí hodnota, což je port 3306. Svůj vlastní port můžete přidat zadáním port = xxxxna nový řádek, nahrazením xxxxvhodnou hodnotou portu.
                  1. Jakmile nakonfigurujete adresu vazbyv konfiguračním souboru MySQL, uložte soubor. Pokud používáte Linux, proveďte to výběrem Ctrl + Oa Ctrl + X. Na počítačích Mac vyberte Command + Oa Command + X. Uživatelé systému Windows mohou ukládat výběrem Soubor>Uložit.
                    1. Uživatelé Linuxu a Mac mohou MySQL restartovat zadáním mysql.server stop && mysql.server startnebo mysql.server restart. Možná budete muset povýšit příkaz pomocí sudo (např. sudo mysql.server restart) a použít příslušnou cestu k souboru mysql.server (např. /usr /local/bin/mysql.server).
                    1. Pokud výše uvedený příkaz nefunguje, zkuste sudo service mysql restartinstead.
                      1. Chcete-li MySQL restartovat ve Windows, otevřete nové okno PowerShell kliknutím pravým tlačítkem na nabídku Start a výběrem Windows PowerShell (Admin). V okně PowerShell zadejte net stop mysql80následovaný net start mysql80a mysql80nahraďte ve svém počítači správným názvem služby.
                      2. Pokud si nejste jisti správným názvem služby v systému Windows, zadejte jej net starta vyhledejte jej. Pokud nemůžete znovu načíst konfiguraci, restartujte server a místo toho znovu načtěte MySQL ručně (je -li to nutné).

                        Konfigurace firewallů

                        V této fázi vaše databáze MySQL by měla umožňovat vzdálené připojení ze zařízení pomocí IP adresy, kterou jste nastavili jako hodnotu bind-addressv konfiguračním souboru MySQL (nebo ze všech zařízení, pokud nastavíte tuto hodnotu na 0,0.0.0místo toho). Připojení však bude i nadále blokováno vaším zařízením nebo síťovým firewallem.

                        Většina serverů a počítačů používá k blokování připojení bránu firewall, pokud není udělen přístup ke konkrétnímu portu. Kroky ke konfiguraci se budou lišit v závislosti na tom, zda používáte MySQL v systému Windows nebo Linux. Brány firewall pro počítače Mac jsou ve výchozím nastavení deaktivovány, takže zde nemusíte provádět žádné další kroky.

                        Konfigurace bran firewall systému Linux

                        Mnoho serverů Linux používá iptablesjako výchozí nástroj brány firewall. Můžete jej nakonfigurovat podle následujících kroků.

                        1. Otevřete terminál nebo připojení SSH a zadejte sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT. Nahraďte XXXXIP adresou zařízení, ze kterého chcete povolit připojení MySQL z, a RRRRnahraďte odpovídající hodnotou portu z konfigurace MySQL soubor (např. 3306
                          1. Tím bude dočasně nakonfigurován firewall. Pokud používáte server Linux založený na Debianu nebo Ubuntu, udělejte tuto změnu trvalou zadáním sudo netfilter-persistent savea sudo netfilter-persistent reloaddo terminálu nebo SSH okno.
                          2. Pokud iptables není výchozím nástrojem brány firewall pro vaši distribuci Linuxu, budete potřebovat další informace v uživatelské příručce vaší distribuce. Pokud některé balíčky (například netfilter-persistent) nejsou k dispozici, nainstalujte jej pomocí nástroje pro ukládání softwaru vaší distribuce (např. sudo apt install netfilter-persistent).

                            Konfigurace firewallů Windows

                            Pokud k hostování databáze používáte počítač nebo server se systémem Windows, můžete bránu firewall nakonfigurovat pomocí těchto kroků:

                            1. Klikněte pravým tlačítkem na nabídku Start a vyberte možnost Spustit.
                              1. Do pole Spustitzadejte wf.msca vyberte OK.
                                1. V okně Windows Defendervyberte Příchozí pravidla >Nové pravidlo.
                                  1. V Průvodci novým příchozím pravidlemokno, vyberte Port>Další.
                                    1. V další nabídce vyberte z možností TCP, zadejte 3306(nebo jakákoli hodnota portu je uvedena v konfiguračním souboru MySQL), poté vyberte Další .
                                      1. V nabídce Akceponechte výchozí možnost Povolit připojenípovoleno, poté vyberte Další.
                                        1. Potvrďte chcete, aby se pravidlo vztahovalo na všechny typy sítí, poté vyberte Další.
                                          1. Do poskytnutého portu zadejte popisný název pravidla (např. MySQL) , poté jej kliknutím na Dokončitpřidejte do seznamu pravidel brány firewall.
                                          2. Pokud máte potíže s připojením, zopakujte výše uvedené kroky , ujistěte se, že v nastavení brány firewall vytvoříte nové odchozí pravidlopomocí stejných podrobností (port 3306 atd.). Také budete možná muset nakonfigurovat směrovač místní sítě na otevřete potřebné zablokované porty, aby umožňoval příchozí i odchozí připojení k vaší databázi.

                                            Připojení ke vzdálenému serveru pomocí MySQL

                                            Po konfiguraci databáze MySQL, aby umožňovala vzdálená připojení, k ní budete muset skutečně navázat připojení. To lze provést pomocí příkazu mysql(mysql.exev systému Windows) z terminálu nebo z okna PowerShell.

                                            Pokud používáte Windows, než začnete, musíte se ujistit, že MySQL je nainstalován lokálně. Uživatelé počítačů Mac mohou nainstalovat MySQL pomocí homebrew z terminálu (brew install mysql), zatímco uživatelé Linuxu mohou použít své místní úložiště aplikací (např. sudo apt install mysql) a nainstalujte potřebné balíčky.

                                            Připojení k MySQL v Linuxu nebo Mac

                                            1. Připojení ke vzdálenému serveru MySQL na Macu nebo Linux, otevřete nové okno terminálu a zadejte mysql -u uživatelské jméno -h XXXX: XXXX -p. Nahraďte XXXX: XXXXvaší IP adresou a číslem portu vzdáleného serveru (např. 100.200.100.200:3306) a uživatelským jménemvaším uživatelským jménem MySQL.
                                              1. Po zobrazení výzvy potvrďte heslo. Pokud je připojení úspěšné, zobrazí se v terminálu zpráva o úspěchu.
                                              2. Připojení k MySQL ve Windows

                                                1. Připojení na vzdálený server MySQL ve Windows, otevřete nové okno PowerShell kliknutím pravým tlačítkem na nabídku Start a výběrem Windows PowerShell (Admin).
                                                  1. V novém okně PowerShell zadejte cd „C: \ Program Files \ MySQL \ MySQL Workbench 8.0 \“ a zadejte správnou složku, která nahradí tento adresář se správným instalačním adresářem na vašem PC. Pokud je vaše verze MySQL například 8.0.1, použijte místo toho složku MySQL Workbench 8.0.1.
                                                    1. Odtud zadejte . \ mysql.exe -u uživatelské jméno -h X.X.X.X: XXXX -p. Nahraďte XXXX: XXXXvaší IP adresou a číslem portu vzdáleného serveru (např. 100.200.100.200:3306) a uživatelským jménemuživatelským jménem MySQL, které umožňuje vzdálený přístup (například root). Postupujte podle dalších pokynů na obrazovce.
                                                    2. Po vyzvání zadejte heslo, abyste dokončili proces přihlášení a získali vzdálený přístup k databázi MySQL.
                                                    3. Pokud to nefunguje, připojte se k serveru nebo počítači hostujícímu váš server MySQL pomocí SSH (nebo k němu přistupujte přímo) pomocí těchto kroků a pomocí argumentu -h localhost. Poté můžete vytvořit vhodný uživatelský účet podle níže uvedených kroků.

                                                      Povolení vzdáleného přístupu uživatelů k databázi MySQL

                                                      V tomto okamžiku byste měli být možnost vzdáleného připojení k serveru MySQL pomocí kořenového uživatelského účtu vašeho serveru nebo jiného uživatelského účtu se zvýšenými oprávněními. Protože je tato úroveň přístupu nebezpečná, můžete pro přístup k databázi MySQL upřednostnit vytvoření omezenějšího účtu.

                                                      Tento účet bude mít omezený přístup k vašemu serveru MySQL, což mu umožní interakci pouze s vybranými databázemi. Nebude moci provádět vážnější změny, jako je přístup k dalším datům databáze, vytváření nových uživatelských účtů atd.

                                                      Budete se muset umět vzdáleně přihlásit ke svému serveru MySQL. Pokud nemůžete vzdáleně používat svůj root účet, budete muset vstoupit do shellu vašeho serveru pomocí příkazu mysqlprostřednictvím vzdáleného připojení SSH nebo přímým přístupem k počítači nebo serveru hostujícímu server.

                                                      1. Do vzdáleného prostředí MySQL (pomocí nástroje mysql) zadejte VYTVOŘIT UŽIVATELE „uživatelské jméno“@”xxxx“ IDENTIFIKOVANÉ „heslem“;a vyberte Enter. Nahraďte uživatelské jménouživatelským jménem, ​​které chcete vytvořit, xxxxIP adresou, ze které se chcete připojit, a heslovhodným heslem.
                                                        1. Novému účtu budete muset udělit potřebná oprávnění. Chcete -li to provést, zadejte GRANT ALL ON databasename.* TO username@”x.x.x.x”;a nahraďte databázové jméno, uživatelské jménoa x.x.x.xsprávnými údaji. Pokud chcete, nahraďte název_databázenázvem *, abyste mu udělili přístup ke všem databázím.
                                                        2. S povoleným přístupem se pomocí kroků v sekci výše můžete vzdáleně připojit k vašemu serveru pomocí nového účtu (např. mysql -u uživatelské jméno -h XXXX: XXXX -p).

                                                          Zabezpečení dat vaší databáze

                                                          Ať už pracujete s MySQL nebo jiným typem SQL databáze, je důležité udržovat vaše připojení zabezpečená, aby byla zachována bezpečnost vašich dat. Dobrým způsobem, jak to udělat, je obrátit se na server generovat klíče SSH pro vzdálený přístup a nespoléhat se na zastaralá (a snadno uhodnutelná) hesla.

                                                          Pokud se obáváte ztráty dat, můžete snadno zálohujte svou databázi online. Většina databází je spuštěna na serverech Linux - můžete snadno automatizujte zálohování souborů Linux. Pokud používáte MySQL v systému Windows, můžete nastavit podobný systém automatického zálohování pro Windows, což vám umožní obnovit data v případě nouze.

                                                          Související příspěvky:


                                                          9.08.2021

                                                          Autorská práva © Tips & Tricks • Tech 2024