Ako povoliť vzdialené pripojenia k MySQL

Ak pracujete s databázou MySQL(MySQL database) , potom ste si vedomí problémov, ktorým čelíte pri udržiavaní databázy v bezpečí. Od pokusov o hacknutie databázy pomocou injekcií SQL až po útoky hrubou silou je ťažké udržať vaše údaje v bezpečí, najmä ak s databázou pracujete na diaľku.

Existujú spôsoby, ako nakonfigurovať server SQL tak, aby umožňoval vzdialené pripojenia, ale musíte byť opatrní, pretože povolenie vzdialených pripojení na server MySQL môže urobiť z vašej databázy ľahký cieľ pre hackerov. Ak chcete povoliť bezpečné, vzdialené pripojenia k databáze MySQL , tu je to, čo potrebujete vedieť.

Predtým ako začneš(Before You Begin)

Pred vykonaním akýchkoľvek zmien v databáze MySQL je dôležité zálohovať databázu(backup your database) , najmä ak pracujete na produkčnom serveri (aktívny server). Akékoľvek zmeny, ktoré vykonáte vo svojej databáze alebo na serveri, ktorý ju hostí, môžu viesť k vážnej strate údajov, ak sa niečo pokazí.

Môžete tiež zistiť, že zmeny pripojení vášho servera vám môžu brániť v prístupe k nemu neskôr. Ak k tomu dôjde, možno budete musieť konzultovať so správcom servera ďalšiu podporu. Dobrým nápadom je vyskúšať všetky zmeny na lokálne spustenom serveri MySQL , aby ste skontrolovali, či vaše zmeny fungujú predtým, ako ich vyskúšate na diaľku.

Je tiež pravdepodobné, že ak vykonávate zmeny na vzdialenom serveri, budete potrebovať bezpečný spôsob pripojenia a vykonania zmien. SSH (Secure Shell) je často najlepší spôsob, ako to urobiť, pretože vám umožňuje pripojiť sa k vzdialenému serveru. SSH môžete použiť aj na pripojenie k serverom vo vašej lokálnej sieti, ako sú napríklad servery hostené na Raspberry Pi(hosted on a Raspberry Pi) .

Táto príručka vás prevedie krokmi ku konfigurácii MySQL tak, aby umožňovala vzdialené pripojenia, ale najprv sa musíte uistiť, že máte priamy alebo vzdialený prístup k serveru, ktorý je hostiteľom vášho servera MySQL .

Predpokladajme(Suppose) , že nemáte vzdialený prístup k vášmu serveru cez SSH (napríklad). V takom prípade nebudete môcť nakonfigurovať databázu MySQL tak, aby umožňovala priame pripojenia, pokiaľ váš koreňový účet mySQL nepovoľuje vzdialené pripojenia. Takže pred pokračovaním budete musieť vytvoriť toto pripojenie.

Úprava konfiguračného súboru MySQL(Editing Your MySQL Configuration File)

Prvým krokom pri konfigurácii MySQL na umožnenie vzdialených pripojení je úprava konfiguračného súboru MySQL . V tejto fáze bude táto príručka predpokladať, že ste sa už pripojili k serveru, počítaču alebo počítaču Mac , ktoré hosťuje vašu databázu mySQL na diaľku, a máte prístup ku konzole. 

Prípadne môžete nakonfigurovať lokálny server MySQL pomocou otvoreného terminálu v systéme Mac(Mac) alebo Linux alebo textového editora v systéme Windows(Windows) .

  1. Ak chcete začať, použite svoj preferovaný textový editor konzoly na úpravu súboru databázy MySQL . V systéme Linux(Linux) zadajte sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf do okna terminálu alebo SSH a upravte tento súbor pomocou editora nano (za predpokladu, že vaša databáza (nano)MySQL je v predvolenom umiestnení)

  1. Ak používate Windows , otvorte Prieskumníka(File Explorer) a prejdite do priečinka, ktorý obsahuje vašu inštaláciu MySQL (napr. (MySQL)C:/Program Files/MySQL/MySQL Server 8.0 ). Otvorte súbor my.ini pomocou predvoleného textového editora (napr. Poznámkový blok(Notepad) ) dvojitým kliknutím na záznam. Ak tam nie je, najprv vytvorte súbor(create the file first) .

  1. Na Macu(Mac) otvorte okno terminálu a zadajte sudo nano /usr/local/etc/my.cnf . Toto je predvolený konfiguračný súbor pre MySQL , ak ste si nainštalovali MySQL pomocou homebrew(using homebrew) .

Vyššie uvedené umiestnenia sú predvolené umiestnenia pre konfiguračné súbory MySQL . Ak tieto príkazy nefungujú, budete musieť vyhľadať príslušné súbory ( my.cnf , mysqld.cnf alebo my.ini ) manuálne, aby ste našli príslušnú cestu k súboru.

Nastavenie bezpečného rozsahu IP adries(Setting a Safe Bind-Address IP Range)

  1. Po otvorení konfiguračného súboru MySQL pre váš server použite kláves so šípkou na klávesnici, aby ste sa dostali do sekcie s adresou väzby(bind-address) v súbore. Tento rozsah IP obmedzuje pripojenia k vašej databáze, ktorá je zvyčajne nastavená tak, aby umožňovala iba pripojenia z lokálneho počítača alebo servera pomocou 127.0.0.1 .

  1. Ak chcete nakonfigurovať databázu MySQL tak, aby umožňovala pripojenia zo zariadení využívajúcich vaše aktuálne internetové pripojenie, najskôr nájdite svoju verejnú IP adresu(find your public IP address) a potom nahraďte 127.0.0.1 touto IP adresou. Prípadne ju nahraďte IP adresou pre zariadenie alebo server, z ktorého chcete povoliť pripojenia.

  1. Za určitých okolností možno budete chcieť povoliť všetky(all) vzdialené pripojenia k databáze MySQL . To predstavuje extrémne riziko(extreme risk) a nemalo by sa používať na produkčnom serveri. Ak to však chcete povoliť, nahraďte 127.0.0.1 0.0.0.0 .

  1. Poznamenajte si hodnotu portu(port ) v časti Základné nastavenia(Basic Settings) . To bude potrebné v ďalšej časti. Ak sa nezobrazuje, použije sa predvolená hodnota, ktorou je port 3306 . Môžete pridať svoj vlastný port zadaním port = xxxx na nový riadok, pričom xxxx nahradíte vhodnou hodnotou portu.

  1. Po nakonfigurovaní adresy väzby(bind-address ) v konfiguračnom súbore MySQL súbor uložte. Ak používate Linux , vyberte Ctrl + O a Ctrl + Ctrl + X Na Macu vyberte Command + O a Command + X . Používatelia systému Windows môžu uložiť výberom položky Súbor(File ) > Uložiť(Save) .

  1. Ďalej môžu používatelia systémov Linux(Linux) a Mac reštartovať MySQL zadaním mysql.server stop && mysql.server start alebo mysql.server restart . Možno budete musieť povýšiť príkaz pomocou sudo(using sudo) (napr. sudo mysql.server restart ) a použiť príslušnú cestu k súboru mysql.server (napr. /usr/local/bin/mysql.server ).

  1.  Ak vyššie uvedený príkaz nefunguje, skúste namiesto toho reštartovať sudo service mysql .(sudo service mysql restart )

  1. Ak chcete reštartovať MySQL v systéme Windows(Windows) , otvorte nové okno PowerShell kliknutím pravým tlačidlom myši na ponuku Štart(Start) a výberom položky Windows PowerShell (správca)(Windows PowerShell (Admin)) . V okne PowerShell napíšte net stop mysql80 a potom net start mysql80 , pričom mysql80 nahraďte(mysql80) správnym názvom služby na vašom PC.

Ak si nie ste istí správnym názvom služby v systéme Windows(Windows) , nájdite ho zadaním net start . Ak nemôžete znova načítať konfiguráciu, reštartujte server a namiesto toho znova načítajte MySQL manuálne (ak je to potrebné).

Konfigurácia vašich brán firewall(Configuring Your Firewalls)

V tejto fáze by vaša databáza MySQL mala umožňovať vzdialené pripojenia zo zariadení pomocou adresy IP, ktorú ste nastavili ako hodnotu adresy väzby(bind-address) v konfiguračnom súbore MySQL (alebo zo všetkých zariadení, ak namiesto toho nastavíte túto hodnotu na 0.0.0.0 ). Pripojenia však budú stále blokované vaším zariadením alebo sieťovou bránou firewall(device or network firewall) .

Väčšina serverov a počítačov používa firewall na blokovanie pripojení, pokiaľ nie je udelený prístup ku konkrétnemu portu. Kroky na konfiguráciu sa budú líšiť v závislosti od toho, či používate MySQL v systéme Windows(Windows) alebo Linux . Brány firewall systému Mac(Mac) sú predvolene vypnuté, takže by ste tu nemali vykonávať žiadne ďalšie kroky.

Nakonfigurujte brány firewall systému Linux(Configure Linux Firewalls)

Mnoho serverov Linux používa iptables ako predvolený nástroj brány firewall. Môžete ho nakonfigurovať podľa nasledujúcich krokov.

  1. Otvorte terminál alebo pripojenie SSH a zadajte sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT . Nahraďte XXXX IP adresou zariadenia, (X.X.X.X)z(from) ktorého chcete povoliť pripojenia MySQL a nahraďte YYYY zodpovedajúcou hodnotou portu z vášho konfiguračného súboru MySQL (napr. (MySQL)3306 ).

  1. Týmto sa brána firewall dočasne nakonfiguruje. Ak používate linuxový(Linux) server založený na Debiane alebo Ubuntu, urobte túto zmenu trvalou zadaním príkazu sudo netfilter-persistent save(sudo netfilter-persistent save) a sudo netfilter-persistent reload do terminálu alebo okna SSH.

Ak iptables nie je predvoleným nástrojom brány firewall pre vašu distribúciu Linuxu(Linux) , ďalšie informácie nájdete v používateľskej príručke vašej distribúcie. Ak sú niektoré balíky (napríklad netfilter-persistent ) nedostupné, nainštalujte ich pomocou nástroja na uloženie softvéru vašej distribúcie (napr. sudo apt install netfilter-persistent ).

Nakonfigurujte brány Windows Firewall(Configure Windows Firewalls)

Ak na hosťovanie databázy používate počítač alebo server so systémom Windows, bránu firewall môžete nakonfigurovať pomocou týchto krokov:

  1. Kliknite pravým tlačidlom myši(Right-click) na ponuku Štart(Start) a vyberte položku Spustiť(Run) .

  1. Do poľa Spustiť(Run) zadajte wf.msc a vyberte OK .

  1. V okne programu Windows Defender vyberte Prichádzajúce pravidlá(Inbound Rules ) > Nové pravidlo(New Rule) .

  1. V okne New Inbound Rule Wizard vyberte Port > Next .

  1. V ďalšej ponuke vyberte z možností TCP , zadajte (TCP)3306 (alebo ktorúkoľvek hodnotu portu uvedenú v konfiguračnom súbore MySQL ) a potom vyberte (MySQL)Ďalej(Next) .

  1. V ponuke Akcia(Action) ponechajte predvolenú možnosť Povoliť pripojenie(Allow the connection) povolené a potom vyberte Ďalej(Next) .

  1. Potvrďte, že chcete, aby sa pravidlo vzťahovalo na všetky typy sietí, a potom vyberte Ďalej(Next)

  1. Zadajte popisný názov pravidla (napr. MySQL ) do poskytnutého portu a potom výberom možnosti Dokončiť(Finish) ho pridajte do svojho zoznamu pravidiel brány firewall.

Ak máte problémy s pripojením, zopakujte vyššie uvedené kroky a uistite sa, že ste v nastaveniach brány firewall vytvorili nové pravidlo pre výstup s použitím rovnakých podrobností (port 3306 atď.). (outbound rule )Možno budete musieť nakonfigurovať váš lokálny sieťový smerovač tak, aby otvoril potrebné blokované porty(open the necessary blocked ports) , aby ste umožnili prichádzajúce a odchádzajúce pripojenia k vašej databáze. 

Pripojenie k vzdialenému serveru pomocou MySQL(Connecting to a Remote Server Using MySQL)

Po nakonfigurovaní databázy MySQL tak, aby umožňovala vzdialené pripojenia, budete musieť skutočne vytvoriť pripojenie k nej. Môžete to urobiť pomocou príkazu mysql ( mysql.exe v systéme Windows(Windows) ) z terminálu alebo okna PowerShell .

Ak používate Windows , budete sa musieť pred začatím uistiť, že MySQL je nainštalovaný lokálne . (MySQL is installed locally)Používatelia počítačov Mac(Mac) môžu nainštalovať MySQL pomocou homebrew(using homebrew) z terminálu ( brew install mysql ), zatiaľ čo používatelia Linuxu(Linux) môžu použiť svoje lokálne úložisko aplikácií (napr. sudo apt install mysql ) na inštaláciu potrebných balíkov.

Pripojenie k MySQL v systéme Linux alebo Mac(Connecting to MySQL on Linux or Mac)

  1. Ak sa chcete pripojiť k vzdialenému serveru MySQL v (MySQL)systéme Mac(Mac) alebo Linux , otvorte nové okno terminálu a zadajte mysql -u username -h XXXX:XXXX -p . Nahraďte XXXX:XXXX IP adresou vášho vzdialeného servera a číslom portu (napr. 100.200.100.200:3306 ) a užívateľským menom(username) svojim MySQL užívateľským menom.

  1. Po zobrazení výzvy potvrďte svoje heslo. Ak je pripojenie úspešné, v termináli sa zobrazí správa o úspechu.

Pripojenie k MySQL v systéme Windows(Connecting to MySQL on Windows)

  1. Ak sa chcete pripojiť k vzdialenému serveru MySQL v (MySQL)systéme Windows(Windows) , otvorte nové okno PowerShell kliknutím pravým tlačidlom myši na ponuku Štart(Start) a výberom položky Windows PowerShell (správca)(Windows PowerShell (Admin)) .

  1. V novom okne PowerShell napíšte cd “C:\Program Files\MySQL\MySQL Workbench 8.0\ “ a zadajte správny priečinok, pričom tento priečinok nahraďte správnym inštalačným priečinkom na vašom PC. Napríklad, ak je vaša verzia MySQL 8.0.1, použite namiesto toho priečinok MySQL Workbench 8.0.1 .

  1. Odtiaľ zadajte .\mysql.exe -u username -h X.X.X.X:XXXX -p . Nahraďte XXXX:XXXX IP adresou vášho vzdialeného servera a číslom portu (napr. 100.200.100.200:3306 ) a užívateľským menom užívateľským menom(username) MySQL ,(MySQL) ktoré umožňuje vzdialený prístup (ako je root ). Postupujte(Follow) podľa ďalších pokynov na obrazovke.
  2. Po zobrazení výzvy zadajte svoje heslo, aby ste dokončili proces prihlásenia a získali vzdialený prístup k databáze MySQL .

Ak to nefunguje, pripojte sa k serveru alebo počítaču, ktorý je hostiteľom vášho servera MySQL , pomocou SSH (alebo k nemu pristupujte priamo) pomocou týchto krokov a pomocou argumentu -h localhost . Potom si môžete vytvoriť vhodný používateľský účet podľa nasledujúcich krokov.

Umožnenie vzdialeného prístupu používateľov k databáze MySQL(Allowing Remote User Access to a MySQL Database)

V tomto bode by ste sa mali vedieť pripojiť k serveru MySQL na diaľku pomocou používateľského účtu root vášho servera alebo iného používateľského účtu so zvýšenými oprávneniami. Keďže táto úroveň prístupu nie je bezpečná, možno budete chcieť vytvoriť viac obmedzený účet na prístup k vašej databáze MySQL .

Tento účet bude mať obmedzený prístup k vášmu serveru MySQL , čo mu umožní interagovať iba s vybranými databázami. Nebude môcť vykonávať závažnejšie zmeny, ako je prístup k iným údajom databázy, vytváranie nových používateľských účtov atď. 

Budete potrebovať možnosť vzdialeného prihlásenia na váš server MySQL . Ak nemôžete používať svoj root účet na diaľku, budete musieť pristupovať k shellu vášho servera pomocou príkazu mysql cez vzdialené pripojenie SSH alebo priamym prístupom k počítaču alebo serveru, ktorý je hostiteľom servera.

  1. Vo vašom vzdialenom prostredí MySQL (pomocou nástroja mysql ) napíšte CREATE USER “username”@”x.x.x.x” IDENTIFIED BY “password”; a zvoľte Enter . Nahraďte používateľské meno(username ) používateľským menom, ktoré chcete vytvoriť, xxxx adresou IP, z ktorej sa chcete pripojiť, a heslom(password) vhodným heslom.

  1. Svojmu novému účtu budete musieť udeliť potrebné povolenia. Ak to chcete urobiť, napíšte GRANT ALL ON databasename.* TO username@”x.x.x.x”; a nahraďte názov databázy, meno používateľa(databasename, username, ) a xxxx  správnymi údajmi. Ak chcete, nahraďte názov databázy(databasename) znakom * , aby ste mu poskytli prístup ku všetkým databázam. 

S udeleným prístupom použite kroky v časti vyššie na vzdialené pripojenie k vášmu serveru pomocou vášho nového účtu (napr. mysql -u username -h XXXX:XXXX -p ).

Zabezpečenie údajov databázy(Securing Your Database Data)

Či už pracujete s databázou MySQL alebo iným typom databázy SQL , je dôležité, aby boli vaše pripojenia zabezpečené, aby sa zachovala bezpečnosť vašich údajov. Dobrým spôsobom, ako to urobiť, je vygenerovať kľúče SSH pre vzdialený prístup(generate SSH keys for remote access) k vášmu serveru, a nie spoliehať sa na zastarané (a ľahko uhádnuteľné) heslá.

Ak sa obávate straty údajov, databázu môžete jednoducho zálohovať(back up your database) online. Väčšina databáz je spustená pomocou serverov Linux – zálohovanie súborov Linux(automate a Linux file backup easily) môžete jednoducho automatizovať . Ak používate MySQL v systéme Windows(Windows) , môžete nastaviť podobný systém automatického zálohovania pre systém Windows(automatic backup system for Windows) , ktorý vám umožní v prípade núdze obnoviť údaje.



About the author

Som profesionálny audio inžinier s viac ako 10-ročnými skúsenosťami. V hudobnom priemysle pracujem už niekoľko rokov a v tejto oblasti som si vybudoval silnú reputáciu. Som tiež veľmi skúsený používateľský účet a operátor pre bezpečnosť rodiny. Medzi moje povinnosti patrí správa používateľských účtov, poskytovanie podpory zákazníkom a poskytovanie poradenstva v oblasti bezpečnosti rodiny zamestnancom.



Related posts