Cum se permite conexiuni la distanță la MySQL


Dacă lucrați cu un Baza de date MySQL, atunci sunteți deja conștienți de provocările cu care vă confruntați pentru a vă menține securitatea bazei de date. De la încercările de piratare a bazelor de date folosind injecții SQL pentru atacuri cu forță brută, este dificil să vă păstrați datele în siguranță, mai ales dacă lucrați cu o bază de date de la distanță.

Există modalități de a configura un server SQL pentru a permite conexiuni la distanță. , dar trebuie să fii atent, deoarece permiterea conexiunilor la distanță pe un server MySQL poate face ca baza de date să devină o țintă ușoară pentru hackeri. Dacă doriți să permiteți conexiuni securizate, la distanță, la o bază de date MySQL, iată ce va trebui să știți.

Cuprins

    Înainte de tine Începe

    Înainte de a face modificări la baza de date MySQL, este important să faceți backup la baza de date, mai ales dacă lucrați pe un server de producție (un server în utilizare activă). Orice modificare pe care o faceți bazei de date sau serverului care o găzduiește poate duce la pierderi grave de date dacă ceva nu merge bine.

    Este posibil să constatați, de asemenea, că modificările conexiunilor serverului dvs. vă pot împiedica accesul ulterior. Dacă se întâmplă acest lucru, poate fi necesar să vă consultați cu un administrator de server pentru asistență suplimentară. O idee bună este să testați orice modificări pe un server MySQL administrat local pentru a verifica dacă modificările dvs. funcționează înainte de a le încerca de la distanță.

    Este, de asemenea, probabil că, dacă faceți modificări la un server la distanță, Voi avea nevoie de un mod sigur de conectare și de a face modificări. SSH (Secure Shell)este adesea cel mai bun mod de a face acest lucru, deoarece vă permite să vă conectați la serverul dvs. la distanță. De asemenea, puteți utiliza SSH pentru a vă conecta la servere din rețeaua dvs. locală, cum ar fi cele găzduit pe un Raspberry Pi.

    Acest ghid vă va conduce prin pașii către configurarea MySQL pentru a permite conexiuni la distanță, dar va trebui să vă asigurați că aveți mai întâi acces direct sau la distanță la serverul care găzduiește serverul MySQL.

    Să presupunem că nu aveți acces la distanță la serverul dvs. prin SSH (de exemplu). În acest caz, nu veți putea configura baza de date MySQL pentru a permite conexiuni la distanță direct, cu excepția cazului în care contul dvs. root MySQL permite deja conexiuni la distanță. Deci, va trebui să stabiliți mai întâi această conexiune înainte de a putea continua.

    Editarea fișierului de configurare MySQL

    Primul pas în configurarea MySQL pentru a permite telecomanda conexiuni este să editați fișierul de configurare MySQL. În această etapă, acest ghid va presupune că v-ați conectat deja la server, computer sau Mac care găzduiește baza de date mySQL de la distanță și aveți acces la consolă.

    Alternativ, puteți configura un server MySQL local utilizând un terminal deschis pe Mac sau Linux sau un editor de text pe Windows.

    1. Pentru a începe, utilizați editorul de text al consolei dvs. preferat pentru a edita fișierul bazei de date MySQL. Pe Linux, tastați sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfîntr-un terminal sau fereastră SSH pentru a edita acest fișier folosind editorul nano(presupunând baza de date MySQL este în locația implicită) .
      1. Dacă rulați Windows, deschideți File Explorer și accesați folderul care conține instalarea MySQL (de ex. C: / Program Files / MySQL / MySQL Server 8.0). Deschideți fișierul my.iniutilizând editorul de text implicit (de exemplu, Notepad) făcând dublu clic pe intrare. Dacă nu este acolo, creați mai întâi fișierul.
        1. Pe Mac, deschideți o fereastră de terminal și tastați sudo nano /usr/local/etc/my.cnf. Acesta este fișierul de configurare implicit pentru MySQL dacă ați instalat MySQL folosind homebrew.
        2. Locațiile la care se face referire mai sus sunt locațiile implicite pentru fișierele de configurare MySQL. Dacă aceste comenzi nu funcționează, va trebui să căutați fișierele relevante (my.cnf, mysqld.cnfsau my.ini) manual pentru a localiza calea fișierului relevant.

          Setarea unui domeniu IP de adresă de legare sigură

          1. Odată ce Am deschis fișierul de configurare MySQL pentru serverul dvs., utilizați tasta săgeată a tastaturii pentru a accesa secțiunea adresa de legarea fișierului. Această gamă IP limitează conexiunile la baza dvs. de date, care este de obicei setată să permită conexiuni numai de la mașina sau serverul local utilizând 127.0.0.1
            1. Dacă doriți să vă configurați baza de date MySQL pentru a permite conexiunile de pe dispozitive care utilizează conexiunea dvs. de internet curentă, mai întâi găsiți adresa IP publică, apoi înlocuiți 127.0.0.1cu acea adresă IP. Alternativ, înlocuiți-l cu o adresă IP pentru dispozitivul sau serverul de la care doriți să permiteți conexiunile.
              1. În unele circumstanțe , poate doriți să permiteți toateconexiunile la distanță la o bază de date MySQL. Acest lucru prezintă un risc extremși nu ar trebui utilizat pe un server de producție. Cu toate acestea, dacă doriți să permiteți acest lucru, înlocuiți 127.0.0.1cu 0.0.0.0
                1. Rețineți valoarea portuluiîn secțiunea Setări de bază. Acest lucru va fi necesar în secțiunea următoare. Dacă nu este vizibilă, va fi utilizată valoarea implicită, care este portul 3306. Puteți adăuga propriul port tastând port = xxxxpe o nouă linie, înlocuind xxxxcu o valoare de port adecvată.
                  1. După ce ați configurat adresa de legareîn fișierul de configurare MySQL, salvați fișierul. Dacă sunteți pe Linux, selectați Ctrl + Oși Ctrl + Xpentru a face acest lucru. Pe Mac, selectați Comandă + Oși Comandă + X. Utilizatorii de Windows pot salva selectând Fișier>Salvare
                    1. Apoi, utilizatorii Linux și Mac pot reporni MySQL tastând mysql.server stop && mysql.server startsau mysql.server restart. Poate fi necesar să ridicați comanda folosind sudo (de exemplu, sudo mysql.server restart) și să utilizați calea corespunzătoare către fișierul mysql.server (de exemplu, / usr /local/bin/mysql.server).
                    1. În cazul în care comanda de mai sus nu funcționează, încercați sudo service mysql restartîn locul acesteia.
                      1. Pentru a reporni MySQL pe Windows, deschideți o nouă fereastră PowerShell făcând clic dreapta pe meniul Start și selectând Windows PowerShell (Admin). În fereastra PowerShell, tastați net stop mysql80urmat de net start mysql80, înlocuind mysql80cu numele corect al serviciului pe computerul dvs.
                      2. Dacă nu sunteți sigur de numele corect al serviciului pe Windows, tastați net startpentru a-l găsi. Dacă nu puteți reîncărca configurația, reporniți serverul și reîncărcați MySQL manual (dacă este necesar).

                        Configurarea firewall-urilor dvs.

                        În acest stadiu, baza dvs. de date MySQL ar trebui să permită conexiuni la distanță de la dispozitive care utilizează adresa IP pe care ați setat-o ​​ca valoare bind-addressîn fișierul de configurare MySQL (sau de la toate dispozitivele dacă setați această valoare la 0.0.0.0în schimb). Cu toate acestea, conexiunile vor fi blocate în continuare de dispozitivul sau paravanul de rețea.

                        Majoritatea serverelor și computerelor utilizează un paravan de protecție pentru a bloca conexiunile, cu excepția cazului în care este permis accesul la un anumit port. Pașii pentru a configura acest lucru vor varia, în funcție de faptul dacă rulați MySQL pe Windows sau Linux. Firewall-urile pentru Mac sunt dezactivate în mod implicit, deci nu ar trebui să parcurgeți nicio etapă suplimentară aici.

                        Configurare firewall-uri Linux

                        Multe servere Linux folosesc iptablesca utilitar firewall implicit. Îl puteți configura urmând pașii de mai jos.

                        1. Deschideți o conexiune terminal sau SSH și tastați sudo iptables -A INPUT -p tcp -s XXXX –port YYYY -j ACCEPT. Înlocuiți XXXXcu adresa IP pentru dispozitivul pe care doriți să permiteți conexiunile MySQL de lași înlocuiți AAAAcu valoarea portului potrivită din configurația MySQL fișier (de exemplu, 3306
                          1. Aceasta va configura temporar firewall-ul. Dacă utilizați un server Linux Debian sau Ubuntu, faceți această modificare permanentă tastând sudo netfilter-persistent saveși sudo netfilter-persistent reloadîn terminal sau SSH fereastra.
                          2. Dacă iptables nu este instrumentul firewall implicit pentru distribuția dvs. Linux, va trebui să consultați manualul de utilizare al distribuției dvs. pentru mai multe informații. Dacă anumite pachete (cum ar fi netfilter-persistent) nu sunt disponibile, utilizați instrumentul de depozitare software al distribuției dvs. pentru a-l instala (de exemplu, sudo apt install netfilter-persistent).

                            Configurați firewall-urile Windows

                            Dacă utilizați un computer Windows sau un server pentru a găzdui baza de date, vă puteți configura firewall-ul urmând acești pași:

                            1. Faceți clic dreapta pe meniul Start și selectați Rulează
                              1. În caseta Run, tastați wf.mscși selectați OK.
                                1. În fereastra Windows Defender, selectați Reguli de intrare >Regula nouă.
                                  1. În Expertul pentru reguli de intrare noifereastră, selectați Port>Următorul/
                                    1. În următorul meniu, selectați TCPdin opțiuni, tastați 3306(sau oricare valoare a portului este listată în fișierul de configurare MySQL), apoi selectați Următorul .
                                      1. În meniul Acțiune, lăsați opțiunea implicită la Permiteți conexiuneaactivată, apoi selectați Următorul
                                        1. Confirmați că doriți ca regula să se aplice tuturor tipurilor de rețea, apoi selectați Următor.
                                          1. Tastați un nume descriptiv pentru regulă (de exemplu, MySQL) în portul furnizat , apoi selectați Finalizațipentru ao adăuga la lista dvs. de reguli firewall.
                                          2. Dacă aveți probleme la conectare, repetați acești pași de mai sus , asigurându-vă că creați o nouă regulă de ieșireîn setările firewallului folosind aceleași detalii (portul 3306 etc.). De asemenea, poate fi necesar să vă configurați routerul de rețea locală la deschideți porturile blocate necesare pentru a permite conexiunile de intrare și de ieșire la baza de date.

                                            Conectarea la un server la distanță folosind MySQL

                                            După configurarea bazei de date MySQL pentru a permite conexiuni la distanță, va trebui să stabiliți de fapt o conexiune la acesta. Puteți face acest lucru folosind comanda mysql(mysql.exepe Windows) de la un terminal sau fereastră PowerShell.

                                            Dacă rulați Windows, va trebui să vă asigurați că MySQL este instalat local înainte de a începe. Utilizatorii de Mac pot instala MySQL folosind homebrew de la terminal (brew install mysql), în timp ce utilizatorii de Linux își pot utiliza depozitul de aplicații locale (de exemplu, sudo apt install mysql) pentru a instala pachetele necesare.

                                            Conectarea la MySQL pe Linux sau Mac

                                            1. Pentru conectarea la serverul MySQL de la distanță pe Mac sau Linux, deschideți o fereastră nouă de terminal și tastați mysql -u nume de utilizator -h XXXX: XXXX -p. Înlocuiți XXXX: XXXXcu adresa IP a serverului la distanță și numărul portului (de exemplu, 100.200.100.200:3306) și nume de utilizatorcu numele de utilizator MySQL.
                                              1. Când vi se solicită, confirmați parola. Dacă conexiunea are succes, va apărea un mesaj de succes în terminal.
                                              2. Conectarea la MySQL pe Windows

                                                1. Pentru a vă conecta pe un server MySQL la distanță pe Windows, deschideți o nouă fereastră PowerShell făcând clic dreapta pe meniul Start și selectând Windows PowerShell (Admin).
                                                  1. În noua fereastră PowerShell, tastați cd „C: \ Program Files \ MySQL \ MySQL Workbench 8.0 \” pentru a intra în folderul corect, înlocuind acest director cu directorul de instalare corect de pe computer. De exemplu, dacă versiunea dvs. de MySQL este 8.0.1, utilizați în schimb folderul MySQL Workbench 8.0.1.
                                                    1. De acolo, tastați . \ mysql.exe -u nume de utilizator -h X.X.X.X: XXXX -p. Înlocuiți XXXX: XXXXcu adresa IP a serverului la distanță și numărul portului (de exemplu, 100.200.100.200:3306) și nume de utilizatorcu un nume de utilizator MySQL care permite acces la distanță (cum ar fi root). Urmați orice instrucțiuni suplimentare de pe ecran.
                                                    2. Furnizați parola, când vi se solicită, pentru a finaliza procesul de conectare și pentru a accesa de la distanță baza de date MySQL.
                                                    3. Dacă acest lucru nu funcționează, conectați-vă la serverul sau PC-ul care găzduiește serverul MySQL folosind SSH (sau accesați-l direct) utilizând acești pași și utilizând argumentul -h localhost. Puteți crea apoi un cont de utilizator adecvat urmând pașii de mai jos.

                                                      Permiterea accesului utilizatorului la distanță la o bază de date MySQL

                                                      În acest moment, ar trebui să fiți capabil să vă conectați la serverul MySQL de la distanță utilizând contul de utilizator root al serverului sau un alt cont de utilizator cu privilegii ridicate. Deoarece acest nivel de acces este nesigur, este posibil să preferați să creați un cont mai restricționat pentru accesarea bazei de date MySQL.

                                                      Acest cont va avea acces limitat la serverul dvs. MySQL, permițându-i să interacționeze numai cu bazele de date selectate. Nu va putea face modificări mai serioase, cum ar fi accesarea altor date din baza de date, crearea de noi conturi de utilizator etc.

                                                      Va ​​trebui să aveți posibilitatea de a vă conecta la serverul MySQL de la distanță. Dacă nu puteți utiliza contul dvs. root de la distanță, va trebui să accesați shell-ul serverului dvs. utilizând comanda mysqlprintr-o conexiune SSH de la distanță sau accesând direct computerul sau serverul care găzduiește serverul.

                                                      1. În shell-ul MySQL de la distanță (folosind instrumentul mysql), tastați CREARE UTILIZATOR „nume de utilizator” @ „xxxx” IDENTIFICAT DE „parolă”;și selectați Enter. Înlocuiți numele de utilizatorcu numele de utilizator pe care doriți să îl creați, xxxxcu adresa IP de la care doriți să vă conectați și parolacu o parolă adecvată.
                                                        1. Va trebui să vă acordați noul cont cu permisiunile necesare. Pentru a face acest lucru, tastați GRANT ALL ON databasename. * TO username @ ”x.x.x.x”;și înlocuiți numele bazei de date, numele de utilizator,și x.x.x.xcu detaliile corecte. Dacă doriți, înlocuiți numele de bază de datecu *pentru a-i acorda acces la toate bazele de date.
                                                        2. Cu accesul acordat, urmați pașii din secțiunea de mai sus pentru a vă conecta la server de la distanță folosind noul dvs. cont (de exemplu, mysql -u nume de utilizator -h XXXX: XXXX -p).

                                                          Securizarea datelor din baza de date

                                                          Fie că lucrați cu MySQL sau cu un alt tip de SQL baza de date, este important să vă păstrați conexiunile în siguranță pentru a vă menține securitatea datelor. O modalitate bună de a face acest lucru este să genera chei SSH pentru acces la distanță pe serverul dvs., mai degrabă decât să vă bazați pe parole învechite (și ușor de ghicit).

                                                          Dacă sunteți îngrijorat de pierderea datelor, puteți cu ușurință faceți o copie de rezervă a bazei de date online. Majoritatea bazelor de date sunt rulate folosind servere Linux - puteți automatizați cu ușurință o copie de siguranță a fișierelor Linux. Dacă rulați MySQL pe Windows, puteți configura un sistem de backup automat pentru Windows similar, permițându-vă să restabiliți datele în caz de urgență.

                                                          Postări asemănatoare:


                                                          9.08.2021