Conectarea la o bază de date MySQL. Conexiune de la distanță la un server MySQL folosind MySQL Workbench

După ce ați instalat serverul MySQL, vă puteți conecta la acesta doar de pe aceeași mașină. Acest lucru a fost făcut din motive de securitate a sistemului, deoarece în cele mai multe cazuri MySQL este folosit pe Web și acolo, în cazuri rare, serverul web și serverul de baze de date sunt separate.

În segmentul corporativ, este mai corect să folosiți 1 server pentru toate sarcinile similare. Este o prostie să păstrezi MySQL cu o singură bază de date pe fiecare server care ar putea avea nevoie de ea. Prin urmare, trebuie să existe un server de baze de date pe care să fie instalat numărul necesar de baze de date pentru diferite sarcini.

Apropo, pe Web, un server de baze de date și un server web sunt separate doar în cazurile în care puterea unui server nu este suficientă. Închiriezi un server dedicat și găzduiești baza de date pe acesta. Aș dori să clarific că este rezonabil să faceți acest lucru doar într-un singur DC.

Permite conectarea la MySQL de la distanță

În fișierul de configurare al MySQL în sine există un parametru bind-adresă care este responsabil pentru aceasta, deci:

  1. deschideți fișierul de configurare pentru editare:
    sudo nano /etc/mysql/my.cnf
  2. comentează rândul:
    # bind-address = 127.0.0.1
  3. reporniți MySQL:
    sudo service mysql restart

Comentarea acestei linii este echivalentă cu alocarea unei adrese IP 0.0.0.0 , adică permiteți tuturor să se conecteze. Nu puteți specifica 2 adrese IP în această linie. Dacă trebuie să limitați conexiunea la serverul MySQL, trebuie să utilizați capabilitățile iptables.

Acum vă puteți conecta la serverul bazei de date printr-un client telnet, dar pentru a vă autentifica aveți nevoie de un cont care să aibă permisiunea de a se conecta nu numai de la localhost. Pentru a face acest lucru, trebuie să vă conectați la MySQL de la serverul însuși și să creați următorul utilizator:

Mysql -u root -p

Și creați un utilizator cu comanda:

ACORDAȚI TOATE PRIVILEGIILE PE *.* CĂTRE „new_user”@”remote_address” IDENTIFICAT PRIN „parolă” CU OPȚIUNEA DE ARGENTARE;

Această linie creează un utilizator cu drepturi nelimitate, ceea ce nu este în întregime corect. Este mai corect să limitezi cât mai mult accesul utilizatorului care se conectează de la distanță. Deci comanda ar putea arăta astfel:

GRANT SELECT, INSERT, DELETE, UPDATE, CREATE, ALTER ON „database_name”.* LA „new_user”@”remote_address” IDENTIFICAT DE „parolă” CU OPȚIUNEA GRANT;

Cu această comandă, am limitat permisiunile utilizatorului la o singură bază de date și acțiuni cu aceasta.

O listă completă a tuturor drepturilor care pot fi specificate pentru un utilizator:

  • TOATE PRIVILEGIILE– toate drepturile asupra obiectului specificat, cu excepția atribuirii drepturilor asupra acestui obiect;
  • CREA– dreptul de a crea un tabel;
  • MODIFICA– dreptul de a schimba masa;
  • CĂDERE BRUSCA– dreptul de a distruge masa;
  • BLOCARE MABELE– dreptul de a bloca masa;
  • CREAȚI TABELE TEMPORARE– dreptul de a crea tabele temporare;
  • CREAȚI RUTINĂ– dreptul de a crea proceduri și funcții stocate;
  • ALTER RUTINA– dreptul de a modifica sau distruge procedurile și funcțiile stocate;
  • CREATE VIEW– dreptul de a crea o reprezentare;
  • TRIGGER– dreptul de a crea și distruge declanșatoare;
  • INDEX– drepturi de a crea și distruge indexuri;
  • A EXECUTA– dreptul de a executa proceduri și funcții stocate;
  • EVENIMENT– dreptul de a crea evenimente;
  • CREAZA UTILIZATOR– drepturi de a crea, distruge, redenumi un utilizator și elimina toate drepturile. Numiți numai la nivel global;
  • SELECTAȚI– dreptul la probă;
  • ȘTERGE– dreptul la ștergere;
  • INTRODUCE– dreptul de inserare;
  • ACTUALIZAȚI– dreptul de actualizare;
  • FIŞIER– dreptul de a utiliza comenzile SELECT ... INTO OUTFILE și LOAD DATA INFILE;
  • PROCES– dreptul de a vizualiza toate procesele folosind comanda SHOW PROCESSLIST;
  • AFIȚI BAZELE DE DATE– dreptul de a vizualiza lista de scheme;
  • AFIȘAȚI VEDERE– dreptul de a vizualiza lista de vizualizări;
  • ÎNCHIDE– dreptul la închidere.
28.02.09 11.7K

Acest articol este pentru cei care se confruntă cu necesitatea de a stabili o conexiune de la distanță la o bază de date MySQL pentru prima dată. Articolul descrie dificultățile care pot apărea la configurarea unei conexiuni la distanță și metodele de depășire a acestora.

Cum se stabilește o conexiune cu o bază la distanță?
Pentru a stabili o conexiune la distanță, trebuie să specificați parametrii care caracterizează conexiunea care se stabilește. Acest

* --gazdă
* --protocol
* --port

Dintre cele patru protocoale posibile, doar TCP/IP permite conectarea la distanță, așa că prima cerință este ca computerul să fie accesibil din rețea prin TCP/IP. Apoi, trebuie să adăugați numele gazdei (sau adresa IP a mașinii pe care se află baza de date) în linia de conectare:
mysql —host=host_name Vă rugăm să rețineți că specificarea localhost ca nume de gazdă (sau absența unui astfel de parametru, care este același, deoarece aceasta este valoarea implicită) are ca rezultat accesul la mașina locală.

Vă rugăm să rețineți că parametrii au două forme de notație: lung și scurt. La rândul său, dacă parametrul are o valoare (de exemplu, în cazul unei gazde, trebuie să specificați numele gazdei la care doriți să vă conectați), atunci forma scurtă a intrării poate fi utilizată cu sau fără un spațiu (excepția de la această regulă este parola). Deci următoarele trei intrări sunt echivalente:

* mysql —host=myhost.ru
* mysql -h myhost.ru
* mysql -hmyhost.ru

Cum se configurează o conexiune la o bază la distanță?

În MySQL, un utilizator este caracterizat de doi parametri: un nume și o gazdă de la care poate accesa. În mod implicit, accesul este permis numai de pe mașina locală, de exemplu. pentru utilizator user@localhost. Drepturile de acces sunt acordate utilizatorilor folosind comanda GRANT. Comanda este executată sub root.

De exemplu, dacă vreau să creez un utilizator care se poate conecta de la orice gazdă cu drepturi depline, atunci ar trebui să rulez următoarea comandă:
ACORDAȚI TOATE PRIVILEGIILE PE `database_name`.* CĂTRE myuser@% IDENTIFICAT DE 'parolă';

Notă. Vă rugăm să rețineți că această comandă oferă acces utilizatorului myuser de la toate IP-urile cu excepția 127.0.0.1, care corespunde localhost.
Pentru utilizatorul myuser@localhost, trebuie să acordați drepturi folosind o comandă GRANT separată.

Dacă decideți să accesați mașina locală ca la distanță folosind protocolul TCP/IP, atunci nu uitați că myuser@localhost și myuser@ip_own_computer sunt utilizatori diferiți și fiecăruia dintre ei trebuie să primească drepturi cu o comandă separată.

Al doilea exemplu arată cum să acordați dreptul de a citi tabelul time_zone din baza de date mysql utilizatorului myuser de pe mașina 192.168.0.76 cu parola mypassy:
Acordați SELECTARE PE mysql.time_zone TO [email protected] IDENTIFICAT DE „mypassy”;
Dificultăți emergente

Dacă după toți pașii primești o eroare (Nu te pot conecta la Mysql Server pe „IP-ul tău”(10061)), atunci conexiunea este blocată de un firewall (windows firewall, avanpost, antivirus sau altceva).

Dacă apare o eroare (clientul nu acceptă cererea de protocol de autentificare de către server; luați în considerare actualizarea clientului MySQL), clientul (adică programul dvs.) nu acceptă protocolul cerut de server.
Această eroare poate fi remediată setând parola la vechiul format:
SETĂ PAROLA PENTRU utilizator@gazdă = OLD_PASSWORD('parolă');

Este posibil nu numai prin PHP. MySQL vine cu un client consolă pentru conectarea la un server MySQL. Consola - asta înseamnă că programul nu are o interfață de fereastră, ci doar o interfață de linie de comandă în care bazele de date sunt accesate folosind interogări SQL.

Comenzile pentru conectarea la MySQL pe linia de comandă, și cu atât mai mult interogările SQL în sine, sunt identice pentru . În cele ce urmează, de dragul conciziei, voi scrie „MySQL”, dar pe tot parcursul mă refer la „MySQL sau MariaDB”, deoarece în acest caz nu există nicio diferență între ele.

Prin conectarea prin linia de comandă la SGBD MySQL, puteți efectua o varietate de sarcini: vizualizați bazele de date și tabelele acestora, trimiteți interogări la bazele de date și primiți rezultatele executării acestor interogări.

Pentru a vă conecta la serverul MySQL, utilizați o comandă de program client numită mysql.exe. Trebuie lansat, dar trebuie făcut nu prin dublu clic, ca un program obișnuit, ci din linia de comandă.

Să începem prin apăsarea comenzii rapide de la tastatură Câștigă+r si hai sa o facem

Se va deschide un prompt de comandă.

Acum trebuie să mergem la folderul cu fișierul mysql.exe. Acest folder cosîn directorul în care este instalat SGBD-ul dvs. MySQL. De exemplu, am MariaDB, care este instalat în folder C:\Server\bin\mariadb\. Prin urmare, fișierul care ne interesează se află în director C:\Server\bin\mariadb\bin\. Pentru a accesa acest director, utilizați comanda CD in felul urmator:

Cd C:\Server\bin\mariadb\bin\

În această comandă, înlocuiți C:\Server\bin\mariadb\bin\ cu calea corectă pentru sistemul dvs

Acum să rulăm fișierul mysql.exe. Nu este necesar să specificați extensia fișierului.exe - sistemul însuși va ghici la ce ne referim. De asemenea, trebuie să folosim opțiunea -uȘi -p. După prima opțiune, trebuie să specificați numele de utilizator - rădăcină. După a doua opțiune este parola pentru utilizator. În cazul meu, parola nu este setată, așa că rulez fără opțiune -p:

Mysql -u root

Poate părea că nu s-au schimbat multe, dar noul prompt de comandă

MariaDB [(niciunul)]>

indică faptul că suntem conectați la serverul MySQL. Mai exact, în cazul meu suntem conectați la serverul MariaDB.

Pentru a vizualiza lista bazelor de date, introduceți comanda:

AFIȘAȚI BAZELE DE DATE;

Pentru a trimite interogări ulterioare la o anumită bază de date (de exemplu, test), utilizați comanda UTILIZARE:

test USE;

Pentru a vizualiza tabelele din baza de date selectată, executați comanda:

Arata tabele;

Să creăm un tabel:

CREATE TABLE AuthorsTBL (AuthorID INT NOT NULL AUTO_INCREMENT, AuthorName VARCHAR(100), PRIMARY KEY(AuthorID));

Să ne uităm din nou la conținutul bazei de date de testare.

Cu o conexiune de la distanță la MySQL, vă puteți conecta la baza de date de pe serverul de găzduire de pe computerul dvs. de acasă folosind programe de bază de date care sunt convenabile pentru dvs.

Conexiune ușoară

Pentru a configura o conexiune simplă la MySQL din exterior, accesați Panoul de control și accesați secțiunea „Bez de date MySQL”.

Faceți clic pe butoanele „Acces prin IP” → „Adăugați IP” și specificați adresa IP cu care accesați rețeaua. Puteți afla adresa dumneavoastră IP pe site-ul inet.from.sh.

În formular, puteți specifica și adrese IP cu simbolul % în octeți. De exemplu, pentru a restricționa accesul de la adresele IP ale unei subrețele:

192.168.1.%

Faceți clic pe Adăugați.

Acum vă puteți conecta la baza de date de pe serverul dvs. de găzduire de pe computer. Pentru a vă conecta, utilizați următoarele setări:

  • server la care să vă conectați: numele dvs. de domeniu, de exemplu domeniul dvs.;
  • port de conectare: 3306;
  • Nume de utilizator și parolă: numele de utilizator și parola pe care le-ați setat la crearea bazei de date.

Mysql -P 3306 -h yourdomain.ru -u mylogin_user -p mylogin_db

Conexiune sigură prin tunel SSH

Pentru a asigura securitatea datelor dvs., utilizați o conexiune la bazele de date MySQL printr-un tunel SSH. Datele sunt transmise prin tunelul SSH în formă criptată, ceea ce elimină posibilitatea de interceptare.

Conectarea la o bază de date MySQL de pe un computer care rulează MS Windows

Instalați programul pe computer chit. Acesta este un software gratuit, îl puteți descărca de pe site-ul oficial.

Lansa programul.

După aceea, faceți clic pe butonul „Adăugați”.

După aceea, faceți clic pe butonul „Deschidere”. Se va stabili o conexiune cu gazda dvs.

Utilizați informațiile de conectare pentru a vă conecta la panoul de control al găzduirii ca login și parolă.

Tunelul este instalat. Pentru a vă conecta la baza de date, utilizați numele de utilizator și parola pe care le-ați specificat la crearea bazei de date în secțiunea Baze de date din Panoul de control. Utilizați 127.0.0.1 ca adresă de server, portul de conexiune 3306.

Un exemplu de conectare folosind programul mysql (o parolă va fi solicitată la conectare):

Atenţie: Dacă computerul dvs. rulează deja un server de baze de date MySQL, conectarea la un server la distanță pe portul 3306 nu va fi posibilă. În acest caz, atunci când creați o conexiune în chit, specificați un alt port ca „Port sursă”, de exemplu, 3307 . Utilizați acest port când vă conectați la baza de date.

Conectarea la o bază de date MySQL de pe un computer care rulează sistemul de operare Linux

La promptul de comandă, rulați următoarea comandă:

Ssh -L3306:localhost:3306 -n [email protected]

  • 3306 (imediat după tasta -L) - un port de pe computerul local la care vă puteți conecta cu clientul mysql;
  • autentificarea ta- numele contului dumneavoastră (autentificare în Panoul de control);
  • domeniul tău.ru- numele site-ului dvs.

Ca parolă, utilizați parola pentru a vă conecta la Panoul de control al găzduirii.

Tunelul este instalat. Pentru a vă conecta la baza de date, utilizați numele de utilizator și parola pe care le-ați specificat la crearea bazei de date în secțiunea Baze de date din Panoul de control. Utilizați 127.0.0.1 ca adresă de server, portul de conexiune 3306.

Un exemplu de conectare folosind programul mysql (o parolă va fi solicitată la conectare):

Mysql -P 3306 -h 127.0.0.1 -u mylogin_user -p mylogin_db

Atenţie: Dacă computerul dvs. rulează deja un server de baze de date MySQL, conectarea la un server la distanță pe portul 3306 nu va fi posibilă. În acest caz, la pornirea ssh, imediat după comutatorul -L, specificați un port alternativ, de exemplu, 3307. Utilizați acest port când vă conectați la baza de date.

Verificarea conexiunii la baza de date MySQL

Puteți verifica conexiunea la baza de date folosind utilitarul telnet. Conectați-vă la interfața de linie de comandă (în MS Windows: Start → Run→ cmd.exe), tastați comanda:

Telnet 127.0.0.1 3306

Dacă conexiunea este stabilită, procedura de configurare a tunelului poate fi considerată finalizată. În caz contrar, trebuie să verificați cu atenție setările, să vă asigurați că nu există probleme de rețea și să contactați asistența tehnică.

Acest document descrie cum să configurați o conexiune la o bază de date MySQL din NetBeans IDE. Odată ce sunteți conectat la MySQL, puteți începe să lucrați în Exploratorul de baze de date al IDE, creând noi baze de date și tabele, populând tabele cu date și punând la dispoziția interogărilor SQL structura și conținutul bazelor de date. Acest tutorial este conceput pentru începătorii cu o înțelegere de bază a managementului bazelor de date care doresc să aplice cunoștințele pentru a lucra cu MySQL în IDE-ul NetBeans.

Setarea proprietăților serverului MySQL

NetBeans IDE vine cu suport pentru MySQL RDBMS inclus. Înainte de a putea accesa serverul de baze de date MySQL în NetBeans IDE, trebuie să configurați proprietățile serverului MySQL.

Pornirea serverului MySQL

Înainte de a încerca să vă conectați la serverul de baze de date MySQL, trebuie să vă asigurați că acesta rulează pe computer. Dacă serverul de baze de date nu este conectat, veți vedea (deconectat) lângă numele de utilizator din nodul MySQL Server din fereastra Servicii și nu veți putea extinde nodul.

Pentru a vă conecta la serverul bazei de date, asigurați-vă că serverul bazei de date MySQL rulează pe computerul dvs., faceți clic dreapta pe nodul Baze de date > Server MySQL în fereastra Servicii și selectați Conectare. Vi se poate cere să introduceți o parolă pentru a vă conecta la server.


Odată ce serverul este conectat, puteți extinde nodul MySQL Server și puteți vizualiza toate bazele de date MySQL disponibile.

Crearea unei instanțe de bază de date și conectarea la aceasta

Editorul SQL este o modalitate utilizată pe scară largă de a interacționa cu bazele de date. NetBeans IDE are un editor SQL încorporat în acest scop. De obicei, Editorul SQL este accesibil prin opțiunea Run Command din meniul contextual al nodului de conexiune (sau nodurilor secundare ale nodului de conexiune). După stabilirea unei conexiuni la serverul MySQL, puteți crea o nouă instanță de bază de date în editorul SQL. Pentru a continua cu acest tutorial, creați o instanță numită MyNewDatabase:


Crearea tabelelor bazei de date

Odată ce ați stabilit o conexiune la baza de date MyNewDatabase, puteți începe să învățați cum să creați tabele, să le populați cu date și să modificați datele din tabele. Acest lucru oferă utilizatorilor o înțelegere mai profundă a funcționalității Database Explorer, precum și suportul NetBeans IDE pentru fișierele SQL.

Baza de date MyNewDatabase este momentan goală. În IDE, puteți adăuga un tabel de bază de date utilizând caseta de dialog Tabel nou sau introducând o interogare SQL și rulând-o direct din editorul SQL. Ambele metode pot fi folosite.

Folosind Editorul SQL

Utilizarea casetei de dialog Tabel nou


Lucrul cu datele dintr-un tabel

Puteți utiliza editorul SQL din NetBeans IDE pentru a lucra cu date tabulare. Rulând interogări SQL într-o bază de date, puteți adăuga, modifica și șterge date din structurile bazei de date. Pentru a adăuga o înregistrare nouă (rând) la tabelul Consilier, trebuie să urmați pașii de mai jos.


Executarea scriptului SQL

O altă modalitate de a gestiona datele tabulare în IDE-ul NetBeans este să rulați un script SQL extern direct în IDE. Dacă scriptul SQL a fost creat într-o locație diferită, îl puteți deschide pur și simplu în NetBeans IDE și îl puteți rula în Editorul SQL.

Pentru claritate, descărcați fișierul și salvați-l pe computer. Acest script este conceput pentru a crea două tabele similare cu tabelele pe care tocmai le-ați creat (Consilier și Subiect) și pentru a le popula imediat cu date.

Deoarece acest script suprascrie tabelele existente, eliminați Consilierul și Subiectul pentru a captura procesul de creare a tabelului atunci când rulează scriptul. Îndepărtarea meselor

  1. Faceți clic dreapta pe nodurile tabelelor Consilier și Subiect din Database Explorer, apoi selectați Delete.
  2. Faceți clic pe Da în caseta de dialog Confirmare ștergere obiect. Rețineți că caseta de dialog listează tabelele care vor fi șterse.

Când faceți clic pe Da în caseta de dialog Confirmare ștergere obiect, nodurile de tabel sunt șterse automat din Database Explorer.

Executarea scriptului SQL pe baza de date MyNewDatabase


Informații suplimentare

Aceasta este secțiunea finală a tutorialului Conectarea la o bază de date MySQL. Acest document demonstrează configurarea MySQL pe computerul unui utilizator și configurarea unei conexiuni la un server de baze de date din NetBeans IDE. Am acoperit, de asemenea, tehnici de lucru cu MySQL în Exploratorul de baze de date al IDE pentru a crea instanțe de baze de date și de tabele, de a le popula cu date și de a rula interogări SQL.

Cursuri de formare mai detaliate sunt prezentate pe următoarele resurse:

  • Crearea unei aplicații web simplă folosind o bază de date MySQL. Acest tutorial oferă informații despre crearea de aplicații web simple pe două niveluri în IDE folosind o bază de date MySQL generată.