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.
Î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.
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ă
- 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).
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.
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:
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
Conectarea la MySQL pe Windows
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.
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ță.