Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 7, XP
  • MySQL - comenzile consolei Windows. Elementele fundamentale ale administrării MySQL folosind linia de comandă

MySQL - comenzile consolei Windows. Elementele fundamentale ale administrării MySQL folosind linia de comandă

Sistem popular de gestionare a bazelor de date MySQL Este utilizat pe scară largă pentru diverse nevoi, în primul rând ca standard de facto în domeniul găzduirii pe Internet. Nu mai puțin răspândit este pachetul pentru gestionarea acestui SGBD - phpMyAdmin... Fără îndoială, acesta este un produs bun, convenabil, dar foarte des se întâmplă ca abilitățile de a lucra cu acest produs să înlocuiască complet abilitățile de a lucra cu DBMS-ul în sine. Prin urmare, în acest material, am decis să familiarizăm cititorii noștri cu modul de îndeplinire a principalelor sarcini Administrare MySQL din Linie de comanda.

După cum au observat cititorii noștri obișnuiți, ne opunem în mod constant utilizării tuturor tipurilor de panouri de control de către începători, indiferent cât de convenabile și comune sunt acestea. În același timp, nu le negăm existența și noi înșine le folosim cu plăcere în activitățile noastre zilnice.

Dar există unul mare diferență: un specialist care știe să lucreze cu linia de comandă folosind panoul nu înlocuiește capacitatea de a lucra cu produsul, ci doar îi ajută să îndeplinească sarcinile de zi cu zi. Și un începător, obișnuit să efectueze toate acțiunile din panou, în cazul inaccesibilității sale, cade într-o panică liniștită, pentru că acum este necesar să introduceți niște „vrăji” în această consolă neagră de neînțeles ...

De fapt, lucrul cu un SGBD la nivel de linie de comandă nu este deloc dificil, iar unele dintre sarcinile de administrare sunt mai ușor și mai convenabil de efectuat în el. Să facem imediat o rezervare, prin administrare înțelegem administrarea serverului DBMS, și nu bazele de date în sine. Desigur, puteți lucra cu ei și din linia de comandă, dar este mai bine să utilizați instrumente mai potrivite pentru aceasta.

Administrarea bazelor de date și a utilizatorilor în MySQL

Dacă ar trebui să începeți să dansați de la sobă, atunci lucrul cu un SGBD ar trebui să înceapă cu crearea bazelor de date și a utilizatorilor acestor baze de date. Sarcinile sunt în mod inerent simple și frumoase și, cel mai important - simple, sunt rezolvate din consolă. Utilitarul cu același nume este proiectat să funcționeze cu serverul MySQL mysql, munca cu care se desfășoară în modul interactiv, așa că mai întâi să ne conectăm la server:

Mysql -u root -p

Acolo unde comutatorul -u setează numele de utilizator și -p indică autentificarea parolei, sintaxa comenzii vă permite să specificați o parolă introducând-o fără spații imediat după comutare, dar în acest caz va fi salvată în istoricul comenzilor, care este nu foarte bine, deci este mai bine să introduceți parola interactiv. Prin executarea acestei comenzi, ne vom afla într-un mediu MySQL, așa cum este indicat de promptul de comandă modificat.

Lucrul în acest mediu are propriile sale caracteristici: fiecare comandă trebuie să se termine cu simbolul ; sau \ g, care, de altfel, este scris în primul rând al salutului. Ieșirea din acest mod se realizează prin comanda:

Imediat despre o greșeală foarte frecventă: au uitat să pună punct și virgulă la sfârșitul comenzii. Ce să fac? E în regulă, termină doar personajele care lipsesc pe rândul următor.

Mai întâi, să vedem lista de baze:

Afișează baze de date;

După cum se spune, fără detalii inutile, dar pentru majoritatea sarcinilor administrative este suficient:

Aflarea listei de utilizatori este puțin mai dificilă, aceasta este stocată sub forma unui tabel al bazei de date de servicii mysql, așa că scriem o mică interogare:

Selectați utilizator, gazdă din mysql.user;

Echipă Selectați selectează coloanele specificate utilizator, gazdă, opțiunea din indică de unde le selectăm, și anume din tabelul de utilizatori a bazei de date mysql.

Prima coloană indică utilizatorul, a doua este gazda pe care acest utilizator are permisiunea de a se conecta, % - denotă orice valoare. Vă rugăm să rețineți că dacă Ivanov are în setări gazdă locală, apoi când este conectat la mysql dupa adresa 127.0.0.1 el nu va putea accesa, acest lucru trebuie luat în considerare atunci când specificați datele de conectare la serverul DBMS în aplicațiile dumneavoastră.

Puteti vizualiza proprietarii bazelor cu urmatoarea solicitare:

Selectați gazdă, db, utilizator din mysql.db;

Nu sunt necesare comentarii speciale aici. De exemplu, Ivanov are drepturi asupra bazelor cu prefix Ivanov_ când este conectat prin gazdă localăși andrey pentru bazele cu prefix andrey_ pe orice gazdă. Puteți vizualiza privilegiile utilizatorului cu comanda:

Afișați granturi pentru „ivanov” @ „localhost”;

Încheiem numele de utilizator și gazda între ghilimele simple.

Prima linie spune că utilizatorul specificat nu are privilegii ( UTILIZARE) la orice masă de orice bază ( *.* ), a doua linie spune despre toate privilegiile de bază pentru toate tabelele din toate bazele cu prefix Ivanov_.

O analiză detaliată a sistemului de drepturi MySQL depășește cu mult scopul acestui articol, să spunem TOATE PRIVELEGIILE oferă utilizatorului toate drepturile asupra bazelor de date, dar nu permite gestionarea drepturilor de acces pentru alți utilizatori. Pentru aceasta, se utilizează un set de drepturi TOATE PRIVELEGIILECU OPȚIUNE DE GRANT care are implicit rădăcină... Pentru un utilizator simplu, acest set de drepturi este redundant.

Să încercăm să creăm un utilizator nou:

Creați utilizatorul „petrov” @ „localhost” identificat prin „parolă”;

Sintaxa comenzii este simplă, oferim un nume de utilizator și un nume de gazdă și acreditări sub forma unei parole. Toate valorile transmise sunt împachetate între ghilimele simple. După ce ați creat un utilizator, trebuie să îi setați drepturile, acest lucru se face prin comandă ACORDA... În primul rând, îl vom priva în mod explicit de privilegii pentru bazele de date ale altor persoane:

Acordați utilizarea pe *.* Pentru „petrov” @ „localhost”;

Apoi putem stabili drepturile la discreția noastră, de exemplu, problema drepturi depline către baze de date cu un șablon de nume petrov_:

Acordați toate privilegiile pe `petrov \ _%` * Pentru "petrov" @ "localhost";

Rețineți că șablonul ar trebui să fie împachetat cu simboluri gravis (` ), care sunt situate pe cheia cu litera rusă Ё.

Puteți emite drepturi la o bază de date separată după cum urmează:

Acordați toate privilegiile pe andrey_drupal8 * Pentru „petrov” @ „localhost”;

Pentru a selecta drepturile, utilizați numai comanda REVOKE, care are o sintaxă similară la (la care), îl înlocuim cu din (care). De exemplu:

Revocați toate privilegiile pe andrey_drupal8 * De la „petrov” @ „localhost”;

Pentru ca serverul MySQL să aplice drepturile, trebuie să-l forțați să reîncarce memoria cache de privilegii cu comanda:

Privilegii de golire;

De asemenea, poate fi necesar să schimbați parola utilizatorului:

Setați parola pentru „petrov” @ „localhost” = parolă („newpassword”);

Redenumiți-l, iar redenumirea nu înseamnă neapărat schimbarea numelui de utilizator, puteți schimba atât numele, cât și gazda, în orice combinație:

Redenumiți utilizatorul „petrov” @ „localhost” în „petr” @ „127.0.0.1”;

La final, ștergeți contul:

Eliminați utilizatorul „petr” @ „127.0.0.1”;

Să trecem de la utilizatori la baze de date, în cel mai simplu caz, comanda este suficientă pentru a crea o nouă bază de date:

Creați baza de date petrov_newdb;

Aceasta va crea o bază de date cu pagina de coduri implicită și codificarea de comparație. Dacă serverul DBMS nu a fost configurat separat, atunci această codificare va fi cel mai probabil latin1_swedish_ci, care în unele cazuri poate cauza probleme, dacă nu acum, atunci în viitor, prin urmare, va fi o practică bună să indicați în mod explicit codificarea la crearea bazei de date. Pentru UTF-8 ar fi așa:

Creați baza de date petrov_newdb set de caractere implicit utf8 collate utf8_general_ci;

Pentru Windows-1251:

Creați baza de date petrov_newdb set de caractere implicit cp1251 colate cp1251_general_ci;

Pentru a elimina baza utilizați:

Aruncă baza de date petrov_newdb;

Verificarea, optimizarea, remedierea erorilor bazelor de date MySQL

Deoarece MySQL funcționează activ, bazele de date pot deveni fragmentate și pot conține erori în datele din tabel. Nu vorbim acum despre eșecuri grave, astfel de situații ar trebui luate în considerare individual, ci despre cele mai simple erori care sunt eliminate cu succes prin intermediul SGBD-ului însuși. Este convenabil să utilizați utilitarul mysqlcheck pentru verificare, reparare și optimizare.

Pentru a verifica baza de date, executați unde andrey_drupal8- numele de bază:

Mysqlcheck -u root -p --check andrey_drupal8

Toate bazele de date pot fi verificate simultan cu comanda:

Mysqlcheck -u root -p --check --all-databases

Și, deoarece întreaga ieșire nu se va potrivi pe ecran, este logic să o redirecționați către comandă Mai puțin:

Mysqlcheck -u root -p --check --all-databases | Mai puțin

Rețineți că Mai puțin vă permite să defilați ieșirea atât în ​​jos, cât și în sus folosind săgețile, pentru a ieși din apăsare q.

Dacă s-au găsit erori în oricare dintre bazele de date, merită să încercați să le remediați, pentru a face acest lucru, specificați:

Mysqlcheck -u root -p --auto-repair andrey_drupal8

Pentru optimizare, utilizați tasta - -optimizeze, puteți optimiza o bază separată sau mai multe, pentru a face acest lucru, enumerați-le după cheie --baze de date:

Mysqlcheck -u root -p --optimize --databases andrey_drupal8 petrov_newdb

și, de asemenea, toate odată:

Mysqlcheck -u root -p --optimize --all-databases

Dumping și încărcarea depozitelor de baze de date MySQL

O altă sarcină comună în administrarea oricărui SGBD, dumpurile bazei de date sunt folosite atât pentru backup-uri, cât și pentru transferul sau crearea de copii. Dacă backup- procesul este automatizat, apoi crearea de copii pentru transfer pe alt server sau înainte ca orice intervenții semnificative în structura bazei de date să fie efectuate manual.

Și când vine vorba de baze mari, atunci aici phpMyAdmin ajutor prost, limitări ale timpului de execuție a scripturilor, dimensiunea fișierului încărcat, memorie disponibilă etc. Și dacă încă puteți încărca un dump mare folosindu-l, atunci încărcarea lui înapoi poate să nu funcționeze.

Să începem prin a crea depozite, în aceste scopuri se folosește utilitarul mysqldump a căror sintaxă este aceeași cu sintaxa mysqlcheck... Pentru a descărca descărcarea, utilizați comanda:

Mysqldump -u root -p andrey_drupal8> ~ / drupal8.sql

Pentru a descărca mai multe baze de date simultan, utilizați cheia --baze de date sau --toate-bazele de date pentru a crea un dump al tuturor bazelor de date simultan. Ieșirea comenzii ar trebui trimisă într-un fișier și locația acestuia trebuie specificată, în cazul nostru este un fișier drupal8.sqlîn directorul dvs. de acasă. De asemenea, puteți canaliza ieșirea către arhivator și obțineți arhiva imediat:

Mysqldump -u root -p andrey_drupal8 | gzip> ~ / drupal8.sql.gz

În general, nu vă recomandăm să utilizați un dump pentru mai multe baze de date simultan, cea mai bună opțiune va exista un dump pentru fiecare bază de date, folosind în același timp cheia --toate-bazele de date justificat în cazurile în care trebuie să faceți rapid backupîntregul server, de exemplu, când actualizați sau reinstalați SGBD, astfel încât să puteți restaura rapid informațiile dacă ceva nu merge bine.

Pentru a restabili baza de date, trebuie să trimiteți un dump la intrarea utilitarului mysql; pentru un singur dump, trebuie să specificați întotdeauna baza receptorului, de exemplu:

Mysql -u root -p andrey_drupal8< ~/drupal8.sql

Ținta nu trebuie să fie baza sursă, dar rețineți că, dacă baza există deja, tot conținutul acesteia va fi înlocuit cu conținutul dump-ului.

Pentru depozitele care conțin mai mult de o bază de date, trebuie doar să specificați:

Mysql -u root -p< ~/all.sql

În acest caz, fiecare bază va fi încărcată în sursa sa, dacă baza sursă nu există, atunci va fi creată.

După cum puteți vedea, crearea și restaurarea depozitelor folosind linia de comandă se întâmplă literalmente într-o singură linie și este mult mai ușoară și mai rapidă decât utilizarea phpMyAdmin sau instrumente similare.

Recuperați parola root MySQL uitată

O altă provocare foarte populară. Să spunem imediat că nu puteți recupera parola superutilizatorului MySQL, ca orice alt utilizator, dar o puteți schimba. Pentru a face acest lucru, trebuie să aveți drepturile de superutilizator ale sistemului de operare. Mai întâi, să oprim serviciul DBMS:

Service mysql stop

Apoi îl rulăm în modul sigur, ocolind tabelele de privilegii:

Mysqld_safe --skip-grant-tables &

Vă rugăm să rețineți că după executarea acestei comenzi, promptul de comandă va dispărea, lăsând un cursor intermitent. Scriem direct acolo:

Mysql -u root

și intrăm în mediul mysql cu ca rădăcină fără a introduce o parolă.

Ni se pare că mulți au ghicit deja ce să facă în continuare, dar complet Seteaza parolaîn acest mod nu va funcționa, așa că trebuie să mergi pe altă cale. Rețineți că informațiile despre utilizator sunt stocate într-un tabel utilizator baza de date a serviciului mysql... Apoi vom executa următoarea solicitare:

Actualizați mysql.user set password = parola ("newpassword") unde user = "root";

Important!În nou versiuni MySQLîn loc de o coloană parola Mese utilizator coloană utilizată șir_de_autentificare, deci în loc de Seteaza parola ar trebui să indice setați șirul de autentificare.

Această solicitare se va instala Parolă Nouă Parolă Nouă pentru toate rândurile dintr-o coloană utilizator care este listat rădăcină.

Să actualizăm memoria cache de privilegii:

Privilegii de golire;

Să ieșim din modul:

Opriți serviciul și porniți-l normal:

Service mysql stop
service mysql start

Sperăm că, după ce citiți acest articol, veți dobândi abilitățile inițiale în lucrul cu MySQL din linia de comandă și veți putea să vă simțiți încrezători chiar și atunci când phpMyAdmin nu este disponibil și poate chiar să apreciați comoditatea comenzilor din consolă și să vă conectați la panou din ce în ce mai puțin, preferând să gestioneze direct serverul.

  • Etichete:

Vă rugăm să activați JavaScript pentru a vizualiza

Ultima actualizare: 22.12.2017

De obicei, bazele de date sunt folosite ca stocare a datelor. PHP vă permite să utilizați sistem diferit gestionarea bazelor de date, dar cel mai popular astăzi împreună cu PHP este MySQL. MySQL introduce gratuit software care vă permite să interacționați cu bazele de date folosind comenzi SQL. Am acoperit deja procesul de instalare și configurare MySQL.

Pentru a vă facilita lucrul cu bazele de date Date MySQL instalați un set special de scripturi phpMyAdmin. phpMyAdmin oferă o interfață web intuitivă pentru gestionarea bazelor de date MySQL. Folosind acest instrument, este mult mai ușor să lucrezi cu baze de date decât să gestionezi MySQL din consolă.

Pentru a instala phpMyAdmin, descărcați arhiva și despachetați-o în folder C: \ localhost unde sunt documentele pentru php. Redenumiți folderul dezambalat în phpMyAdmin pentru concizie.

În directorul phpMyAdmin dezambalat, creați un fișier config.inc.php cu urmatorul continut:

Și pentru a vă asigura că totul este configurat corect, în browser, accesați phpMyAdmin, de exemplu, http: // localhost: 8080 / phpmyadmin:

În coloana din stânga, puteți vedea toate bazele de date disponibile pe serverul MySQL. Chiar dacă nu ați creat încă baze de date, serverul are deja un set de baze de date implicite.

Partea dreaptă a interfeței phpMyAdmin conține instrumentele de bază de gestionare a bazei de date, precum și diverse informații de configurare.

Crearea unei baze de date MySQL în phpMyAdmin

Pentru a face schimb de date cu serverul MySQL (salvare, modificare, ștergere, primire date), avem nevoie în mod natural de o bază de date. Putem crea o bază de date din consola MySQL, precum și din interfața vizuală phpMyAdmin.

Să deschidem interfața phpMyAdmin. Să mergem la fila Baze de date. Sub etichetă Creați o bază de date introduceți un nume pentru noua bază de date, de exemplu, compstore și faceți clic pe butonul „Creați”.

Și după aceea vom primi un mesaj despre stabilire de succes o nouă bază de date și va fi adăugată la listele de baze de date.

Noua bază de date este în prezent goală și nu conține nimic. Să adăugăm un tabel care va stoca datele. Pentru a face acest lucru, faceți clic pe numele bazei de date și vom merge la fila „Structură”, unde ni se vor oferi opțiuni pentru noul tabel. În câmpul „Nume”, introduceți numele noului tabel. Lăsați tabelele să stocheze date despre modelele de smartphone-uri, așa că să introducem numele „telefoane” și să introducem numărul 3 ca număr de coloane:

Pentru a crea un tabel, faceți clic pe butonul „Următorul”. După aceea, vom avea un set de celule pentru setarea parametrilor coloanei. Să specificăm următoarele pentru numele coloanelor în secvență: id, nume, companie. Pentru coloanele id, specificăm tipul INT, iar pentru coloanele nume și companie, tipul VARCHAR. Pentru coloanele nume și companie, în câmpul „Lungime / Valori”, vom specifica numărul 200 - acesta va indica lungimea maximă a șirului în caractere. Tot pentru coloana id vom indica PRIMARY în câmpul „Index” iar în câmpul „A_I” (AutoIncrement) vom bifa caseta:

Astfel, tabelul va avea coloane pentru identificatorul unic, numele telefonului și numele producătorului. Apoi faceți clic pe butonul „Salvați” din partea de jos.

După crearea tabelului, vom putea vedea tabelul și coloanele sale în coloana bazei de date:

Nu este singura cale creați tabele în phpMyAdmin, deoarece aici putem gestiona baza de date folosind interogări SQL. Deci, selectați baza noastră de date din lista de baze de date și accesați fila „SQL”. Afișează un câmp pentru introducerea unei comenzi în limbajul de interogare SQL. Să introducem următoarea comandă în el:

CREATE Telefoane de masă1 (id INT NOT NULL AUTO_INCREMENT CHEIA PRINCIPALA, nume VARCHAR (200) NOT NULL, firma VARCHAR (200) NOT NULL)

Aceasta este o comandă SQL standard pentru a crea un tabel. Cuvintele cheie CREATE Table sunt urmate de nume tabelul fiind creat iar apoi definițiile coloanei sunt separate prin virgulă în paranteze.

Fiecare definiție de coloană conține numele coloanei, tipul acesteia și un număr de valori suplimentare. De exemplu, în definiția coloanei id (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY), este indicat numele coloanei, tipul este INT și, de asemenea, că coloana trebuie să aibă o valoare - NOT NULL, că valoarea acesteia va fi crește automat cu unul odată cu adăugarea unui nou obiect - AUTO_INCREMENT, și că joacă rolul CHEIEI PRINCIPALE.

În general, tabelul creat în acest fel va fi echivalent cu cel care a fost creat anterior. Apăsați butonul „Următorul” și va fi creat al doilea telefon de masă1.

Bună dragă cititor de blog, acum este momentul să schimbi phpMyAdmin obișnuit, cu un instrument de gestionare a bazelor de date mai brutal. Astăzi vom atinge consola MySQL și vom învăța cum să executăm comenzi standard, precum și comenzi pentru restaurarea bazelor de date. Consola MySQL Este un SGBD standard (Sistemul de gestionare a bazelor de date) pentru MySQL furnizat împreună cu produsul.

Când consola MySQL este la îndemână

Din punctul de vedere al unui programator web începător, phpMyAdminîndeplinește toate funcțiile necesare funcționării normale. Imaginează-ți că nu ești doar un programator web, ci, parțial, un administrator de sistem care este obligat să restaureze baza de date după o eroare.

În acest caz, nu puteți face fără abilitățile de a lucra cu consola MySQL. Puțin mai târziu, ne vom uita la comenzile pentru restaurarea bazei de date folosind consola, dar, deocamdată, să începem cu elementele de bază.

Cum să porniți consola MySQL

Puteți porni consola prin Windows Explorer găsind utilitarul mysql.exe în folderul MySQL. De obicei se află la: [calea către folder] \ mysql \ bin \ mysql.exe... În cazul utilizării Denver, Consola MySQL, merită să priviți în această direcție:
C: \ WebServer \ usr \ local \ mysql \ bin \ mysql.exe

Pe lângă Windows Explorer, puteți utiliza linia de comandă:

  • Rulați cmd.exe
  • Scrieți calea completă către fișierul mysql.exe
  • Apăsați enter

Ar trebui să observați următoarea imagine:

Eroarea spune că pentru a porni consola mysql, trebuie să introduceți numele de utilizator și parola. Când lucrați cu Denver, utilizatorul implicit al bazei de date este root cu o parolă goală.
Rulați aceeași comandă cu parametri suplimentari care specifică acreditările.

C: \ WebServer \ usr \ local \ mysql-5.1 \ bin \ mysql.exe –u root –p

Dacă totul este făcut corect, veți primi mesajul „ Bun venit la consola MySQL..."

Puteți verifica dacă sunteți conectat cu succes la serverul de baze de date introducând comanda show databases; ... Ca urmare a executării acestuia, va fi afișată o listă a bazelor de date prezente pe server.

Să încercăm să selectăm una dintre bazele de date și să vedem lista de tabele din ea:

test de utilizare; arata tabele;

În exemplul meu, mă refer la baza de date de testare, dacă a ta nu există, te referi la oricare dintre cele disponibile.

Ca experiment, puteți încerca să creați baza de date de testare folosind comanda:

crearea de testare a bazei de date;

La care vei primi mesajul: " QUERY OK, 1 rând afectat", indicând crearea cu succes a unei baze de date numită test.

Acum să creăm un tabel de ordine în baza de date de testare.

creați testul tabelului (`id` int (11),` content` varchar (255));

Și din nou, rulați comanda show tables; , care va arăta că tabelul a fost de fapt creat și este disponibil pentru lucrul cu el.

De asemenea, puteți încerca să afișați o listă de coloane în tabel:

arată coloanele din test.order;

Ei bine, la sfârșitul cunoștinței cu Consola MySQL, hai să executăm o cerere:

SELECT * FROM test.order;

Așadar, dragi cititori, vă felicit, acum puteți lucra cu MySQL în condiții spartane fără phpMyAdmin. Voi da o listă de comenzi de zi cu zi:

  • CREAȚI BAZĂ DE DATE DB_NAME; - crearea unei noi baze de date;
  • AFIȘAȚI BAZELE DE DATE; - vizualizarea bazelor de date disponibile;
  • USE DB_NAME; - selectați o bază de date;
  • Arata tabele; - vizualizarea tuturor tabelelor;
  • AFIȚĂ COLONELE DIN TABLE_NAME; - vizualizarea coloanelor și a proprietăților acestora;
  • CREATE TABLE TABLE_NAME (`ID` INT (11),` NAME` VARCHAR (255));- crearea mesei;
  • ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT (11);- adăugați o coloană la tabel;
  • ALTER TABLE TABLE_NAME DROP COLUMN_NAME;- scoateți o coloană din tabel;
  • MYSQL -UUSERNAME -PPASSWORD -HHOST DB_NAME - încărcați baza de date;
  • MYSQLDUMP -UUSERNAME -PPASSWORD -HHOST DB_NAME> FILE_NAME.SQL- face un dump al bazei de date;
  • PĂRĂSI; - ieșiți din consola MySQL.

Comenzi pentru restaurarea tabelelor prin consola MySQL

După cum am promis la începutul articolului, postez comenzi pentru restaurarea tabelelor. Aceste comenzi pot fi utile după o blocare a serverului.

O zi bună, colegi 🙂

Da, exact colegi, pentru că o simplă linie de comandă MySQL muritoare (sau MySQL Shell, așa cum încă le place dezvoltatorilor să o numească), precum și lucrul cu MySQL în consolă, nu este deloc util.

Pentru ca acest subiect să fie interesant, trebuie să fii, cel puțin, sau un administrator de sistem începător care să nu folosească în principiu phpMyAdmin și alte interfețe.

Lansarea consolei pe un sistem de operare diferit

Deoarece voi demonstra lucrul cu linia de comandă MySQL în consola serverului, ar fi bine să o porniți pentru început.

Acțiunea este simplă, familiară pentru mulți, pentru care cunoașterea „tastelor rapide” este suficientă.

Lansarea consolei pe Windows:

  • Win + R pentru a deschide comanda șiruri de ferestre cu drepturi de administrator;
  • Introdu comanda cmd
  • Apăsați introduce pe tastatură

Rularea consolei în distribuțiile Linux (terminal): în Ubuntu cu care lucram, scurtătura de sistem este suficientă Ctrl + Alt + T... Nu pot spune nimic despre alte sisteme de operare bazate pe Linux.

Lansați Consola pe MacOS: Eu însumi nu am făcut asta, tk. Nu am încă un Mac și cu greu îl voi obține ca inutil, dar, din câte am putut să aflu, nu există „taste rapide” pentru a apela terminalul în acest sistem de operare. Deci, dacă sunteți un utilizator al produselor Apple, atunci lansați consola prin interfața OS, deoarece există o mulțime de manuale în rețea.

Este puțin jenant chiar și să publici astfel de informații în cazul în care un administrator de sistem profesionist cu experiență bărbosă dă din greșeală acest articol. se va gândi: „Autorul își consideră cititorii a fi programatori, dar în același timp învață cum să ruleze consola... Un nebun :-)”.

Da, este destul de logic 🙂 Dar țin doar cont de situații pe care, alături de dezvoltatorii profesioniști, pot ajunge aici și începătorii. Prin urmare, încerc să fac informațiile complete și accesibile tuturor categoriilor de utilizatori, despre care am menționat deja.

Comenzi de bază ale consolei MySQL

Deci, în primul rând, trebuie să accesăm linia de comandă MySQL din consolă. Pentru a face acest lucru, deschideți consola serverului și, dacă aveți MySQL instalat global ca serviciu, atunci pentru a „verifica conexiunea” scriem următoarele:

Mysql -V

Comanda consolei mysql ne permite să rulăm utilitarul de linie de comandă MySQL cu același nume.

Acest lucru ne va permite să aflăm versiunea MySQL instalată pe computer și să ne asigurăm că este instalată ca serviciu. Dacă da, veți vedea următorul text ca răspuns în consolă:.

Da, nu sunt un „codor adevărat” pentru că stau sub Windows 🙂 Dar, nu e rostul. Pe sisteme Unix procedura va fi aceeași.

Dacă dintr-o dată MySQL nu este instalat global pe computerul dvs. sau trebuie să lucrați cu mai multe versiuni de MySQL, în care există doar directoare cu fișiere și biblioteci MySQL, atunci pornirea MySQL prin consolă va arăta așa.

În consolă, accesați directorul în care fisier executabil MySQL (pe Windows, cel puțin mysql.exe) cu următoarea comandă:

Cd C: \ OpenServer \ modules \ database \ MySQL-5.7-x64 \ bin

Calea către kitul de distribuție, desigur, poate diferi. De exemplu, am decis să rulez una dintre versiunile MySQL incluse cu OpenServer.

Și începem MySQL, verificându-i versiunea pe parcurs:

Mysql.exe -V

Ca rezultat, un mesaj similar cu primul caz ar fi trebuit să fie afișat în consolă mysql Ver 14.14 Distrib 5.7.16, pentru Win64 (x86_64).

Ne-am dat seama totul cu pornirea liniei de comandă MySQL prin consola serverului, acum ne vom conecta direct la serverul MySQL.

Conectarea la serverul MySQL în consolă

Este posibil ca serverul MySQL să nu fie neapărat pe aceeași mașină pe care încercați să îl accesați în consolă. Prin urmare, pentru a vă conecta la server la distanta MySQL prin consolă a fost posibil, utilitarul mysql are mulți parametri cu care puteți specifica setările necesare.

Pentru a porni linia de comandă MySQL în consolă, trebuie doar să scriem următoarele în consola serverului:

Cu toate acestea, în acest caz, veți primi următoarea eroare: EROARE 1045 (28000): Acces refuzat pentru utilizatorul „ODBC” @ „localhost” (folosind parola: NU)... Așa arată mesajul de eroare pe Windows-ul meu. Dacă utilizați Linux, atunci în loc de ODBC va fi numele utilizatorului de sistem sub care efectuați acțiuni în sistem.

Toate acestea se datorează faptului că, implicit, la conectarea la un server MySQL, în consolă sunt folosite un utilizator ODBC pe Windows fără parolă și un utilizator de sistem pe Linux cu parola sa. Gazda implicită este localhost, adică acest utilizator se poate conecta numai de la mașina locală.

Prin urmare, aveți două căi de ieșire: fie utilizați un alt utilizator pentru a introduce linia de comandă MySQL, fie creați un utilizator MySQL cu contul necesar. Dar pentru a doua metodă, încă nu ne putem lipsi de prima 🙂 Prin urmare, mai întâi, ne conectăm la serverul MySQL ca utilizator standard rădăcină care se creează când instalarea MySQL pe computer și pentru care accesul de la localhost este permis în mod implicit:

Mysql -u root -p

Când vi se solicită să introduceți o parolă, apăsați Enter (dacă nu ați introdus-o, desigur, când instalați MySQL). Veți fi apoi conectat la serverul MySQL, alocandu-vă un ID de conexiune și accesând linia de comandă MySQL.

Dacă doriți să vă conectați la un server MySQL cu un anumit nume de gazdă sau IP sau doriți să vă conectați ca alt utilizator, atunci utilizați comanda în următorul format:

Mysql -u nume_utilizator -p parola_utilizator -h gazdă_sau_IP_server_MySQL

Desigur, în loc de caractere chirilice cu liniuță, trebuie să introduceți datele cu litere latine. Apropo, dacă doriți, puteți scrie această comandă într-un format ușor diferit:

Mysql --user = nume de utilizator --parolă = nume de utilizator --gazdă = gazdă_sau_IP_server_MySQL

Dacă dintr-un motiv oarecare nu doriți ca parola de conectare MySQL să fie afișată în consolă (ceea ce este corect, de fapt), puteți utiliza următoarea comandă:

Mysql -u nume de utilizator -h host_or_IP_MySQL_server -p

Deoarece parola nu este specificată în mod explicit, vi se va solicita să o introduceți în pasul următor. Mai mult, caracterele pe care le-ai introdus nu vor fi afișate nici măcar sub formă de asteriscuri (wildcards), ci va fi doar un șir gol.

În plus față de setările specificate conexiune, este posibil să se utilizeze următorii parametri, ale căror valori vor fi indicate în același mod ca cele de mai sus:

  1. -Port sau -P - pentru a specifica portul pentru conectarea la serverul MySQL;
  2. —Protocol — protocol utilizat pentru conectare ( opțiuni posibile: TCP pentru Windows și Linux, SOCKET pentru Linux, PIPE și MEMORY pentru Windows);
  3. —Socket sau -S - acest parametru este util dacă doriți să vă conectați prin prize, prin urmare, valoarea parametrului va fi socket;
  4. -Pipe sau -W - parametrul este necesar dacă doriți să utilizați denumite „țevi” sau „țevi” pentru conectare;
  5. —Shared-memory-base-name - acest parametru este util pentru conexiunile MEMORY prin intermediul memoriei partajate pe Windows;

Este clar că lista tuturor parametrilor pentru conectarea la serverul MySQL nu se limitează la asta. În realitate, sunt mult mai mulți.

Dacă dintr-un motiv oarecare versiune standard specificarea gazdei, utilizatorului și parolei nu va funcționa pentru dvs., atunci următoarele informații vă vor fi utile pentru a afla lista completă a parametrilor de conectare - https://dev.mysql.com/doc/refman/5.7/en/connecting. html

Cum se creează o bază de date în consola MySQL

Odată ce ne-am conectat la serverul MySQL și am lansat linia de comandă MySQL, este timpul să începem ciclu de viață baza de date a site-ului nostru, care începe cu crearea sa. Pentru a crea o bază de date MySQL prin linia de comandă, introduceți următoarea comandă:

CREATE DATABASE dbname;

Aceeași acțiune poate fi făcută folosind un utilitar special MySQL mysqladmin... Se rulează izolat de linia de comandă MySQL, de exemplu. pentru a-l folosi va trebui să îl ieșiți sau să îl deschideți noua consola Server.

Și apoi apelați următoarea comandă:

Mysqladmin creează dbname;

Apropo, folosind utilitarul mysqladmin, puteți nu numai să creați și să ștergeți baze de date fără a intra în consola MySQL, ci și să operați configurarea serverului, procesele MySQL, să gestionați replicările, să faceți ping servere și să faceți lucruri mult mai interesante.

Cum se creează un utilizator MySQL pe linia de comandă

Nu des, dar uneori trebuie să creați un nou utilizator MySQL. Mai mult, în modul consolă.

Pe linia de comandă MySQL, acest lucru se face după cum urmează:

CREAȚI UTILIZATOR „nume utilizator” @ „gazdă_sau_IP_mașină” IDENTIFICAT DE „parolă_utilizator”;

Utilizatorul a fost creat. Parametru host_or_IP_machineînseamnă că atunci când creați un utilizator, trebuie să specificați IP-ul de la care se poate conecta la server sau numele gazdei (numele de domeniu este potrivit mașină de lucru pe net).

Apropo, atunci când specificați gazda pentru a vă conecta la serverul MySQL, puteți utiliza simbolul procentual - % ceea ce înseamnă că utilizator creat se poate conecta la serverul MySQL de la orice adresă IP sau gazdă.

Trebuie avut în vedere faptul că în în acest caz localhost nu este inclus în lista de adrese specificată cu%, deoarece localhost denotă o conexiune socket UNIX în loc de TCP / IP standard. Acestea. dacă utilizatorul MySQL creat se va conecta la server nu folosind socket-uri, ci folosind un protocol diferit specificat la conectarea la serverul MySQL în consolă, atunci va trebui să creeze două conturi de utilizator:

CREAȚI UTILIZATOR „nume utilizator” @ „%” IDENTIFICAT DE „parolă”; CREAȚI UTILIZATOR „nume utilizator” @ „localhost” IDENTIFICAT DE „parolă”;

Ne-am dat seama cum să creăm un utilizator MySQL în consolă. Acum vom seta drepturile utilizatorului pentru a efectua orice acțiuni cu noua noastră bază de date creată cu următoarea comandă:

ACORDAȚI TOATE PRIVILEGIILE PE nume_db. * CĂTRE „nume_utilizator” @ „gazdă_sau_IP_mașină”;

Opțiune TOATE, după cum ați înțeles, indică doar că utilizatorului i se permite orice acțiune cu o anumită bază de date. O listă completă de drepturi care pot fi acordate utilizatorilor folosind comanda ACORDA, poate fi găsit aici (deși descrierea parametrilor este în limba engleză) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Apropo, puteți folosi mai mulți parametri de privilegii, specificându-i la invocarea comenzii, despărțiți prin virgule.

Dacă doriți să creați un superutilizator, de ex. cu privilegii globale pentru a efectua diverse acțiuni cu toate bazele de date de pe server, apoi utilizați următorul apel de comandă:

Acordați totul pe *. * CĂTRE „nume de utilizator” @ „gazdă_sau_IP_mașină”;

Apropo, nu va fi de prisos să ștergeți memoria cache a serverului MySQL după setarea privilegiilor. Dacă le schimbați, atunci nu uitați să o faceți apelând următoarea comandă:

PRIVILEGII FLUSH;

Și dacă doriți să schimbați drepturile utilizatorului, atunci utilizați mai întâi următoarea comandă pentru a reseta toate drepturile:

REVOCA TOATE PRIVILEGIILE PE *.* DE LA „nume utilizator” @ „gazdă_sau_IP_mașină”;

Și apoi instalează-le pe cele de care are nevoie ACORDA așa cum este descris mai devreme.

Dacă în viitor trebuie să schimbați parola utilizatorului MySQL, atunci pentru aceasta este suficient să executați următoarele comenzi în MySQL Shell:

SETĂ PAROLA PENTRU „nume de utilizator” @ „host_or_IP_machine” = PAROLA („new_word”); PRIVILEGII FLUSH;

Resetarea memoriei cache a privilegiilor serverului MySQL este necesară în același scop ca și atunci când schimbați drepturile - fără această acțiune, modificarea parolei utilizatorului MySQL poate să nu fie luată în considerare, așa că nu fi leneș să utilizați 🙂

Apropo, Internetul este plin de exemple de utilizare a următoarei comenzi pentru a reseta parola MySQL a unui utilizator:

UPDATE mysql.user SET Password = PAROLA WHERE Utilizator = "nume utilizator";

Dar această opțiune nu a funcționat pentru mine pe MySQL 5.7, dând o eroare EROARE 1054 (42S22): Coloana necunoscută „Parolă” în „lista de câmpuri”... Motivul său s-a dovedit a fi absența câmpului Parolă din tabelul mysql.user.

Din care putem presupune că această opțiune funcționează doar pentru versiunile vechi de MySQL, unde acest câmp exista în tabelul utilizatori. Prin urmare, pentru a fi sigur, folosește prima mea opțiune, cu excepția cazului în care, desigur, ești obligat să lucrezi cu software antediluvian fără posibilitatea de a actualiza versiunile 🙂

Aceasta completează crearea unui nou utilizator MySQL și prezentarea generală a acțiunilor cu drepturile și parolele sale. Să mergem mai departe.

Alegerea unei baze de date atunci când lucrați cu MySQL prin linia de comandă

Acum, după ce am creat un utilizator în MySQL Shell și i-am atribuit drepturi de a lucra cu baza de date, trebuie să selectăm tocmai această bază de date, astfel încât să putem opera baza de date în sine și datele stocate în ea.

Pentru a face acest lucru, utilizați următoarea comandă în consola MySQL:

USE dbname;

Dacă totul a mers bine, atunci va fi afișat un mesaj în consolă Baza de date schimbată, care va semnala că suntem conectați în baza de date MySQL prin consolă. Apropo, atunci când vă conectați la serverul MySQL, puteți specifica inițial baza de date cu care va trebui să lucrați. Pentru a face acest lucru, trebuie să scrieți următoarea comandă în consola serverului:

Mysql --user = user_name --password = user_password --host = host_or_IP_MySQL_server --database = database_name

Sau același lucru, cerând doar parola utilizatorului MySQL:

Mysql -u nume_utilizator -h host_sau_IP_MySQL_server_db_name -p

Asta e tot. Cred că acum nu veți avea dificultăți în a vă conecta la baza de date MySQL prin consolă 🙂

Lucrul cu tabele MySQL prin consola MySQL

Deci, am creat o bază de date MySQL prin consolă. Acum ar fi bine să înveți cum să lucrezi cu el pentru cazul în care linia de comandă MySQL va fi singura modalitate de accesare a datelor stocate pe server (cum a fost și pentru mine, despre care am vorbit la începutul articolului). ).

După cum știți, este format din tabele, în interiorul cărora informațiile sunt deja stocate sub formă de înregistrări cu mai multe câmpuri. Prin urmare, urmând ierarhia de plasare a informațiilor, vom învăța mai întâi cum să efectuăm operațiuni CRUD tipice cu tabele.

Operațiunile CRUD, dacă cineva nu cunoaște, sunt operațiuni de creare, citire, actualizare și ștergere a datelor din engleză. „Creați, citiți, actualizați, ștergeți” (s-ar putea să aveți nevoie de acest lucru în timpul interviurilor).

Permiteți-mi să vă reamintesc că pentru a efectua acțiuni pe tabele, trebuie mai întâi să vă conectați la baza de date MySQL folosind comanda UTILIZARE.

Deci, prima de pe agenda noastră este comanda de a crea un tabel MySQL în baza de date prin linia de comandă, care arată astfel:

CREATE TABLE nume_tabel (nume_câmp_1 tip_câmp_1, nume_câmp_2 tip_câmp_2 (dimensiune_câmp_2), INDEX (nume_câmp_1), ...);

După cum vă puteți imagina, pot exista câte câmpuri doriți, tipurile lor pot fi diferite, precum și prezența indicilor și a cheilor este opțională.

Apropo, dacă doriți să copiați un tabel într-o altă bază de date sau doar să creați o copie în cea curentă, următoarele comenzi vă vor ajuta:

CREATE TABLE nume_tabel_nou LIKE nume_tabel_vechi; INSERT nume_tabel_nou SELECT * FROM nume_tabel_vechi;

Aceste comenzi vă permit să copiați structura unui tabel și datele acestuia împreună cu indecși și declanșatoare de tabel. Dacă aveți nevoie doar de date și structură (numele câmpurilor și tipurile de date ale acestora), atunci puteți reuși apelând o singură comandă:

CREATE TABLE nume_tabel_nou AS SELECT * FROM nume_tabel_vechi;

Următoarea operație din blocul CRUD este citirea. În cazul tabelelor, citirea va fi afișarea structurii acestora. Există patru comenzi pentru aceasta:

AFIȘAȚI COLONELE COMPLETE DE LA table_name; DESCRIBE table_name; EXPLAIN nume_tabel; SHOW CREATE TABLE table_name;

Primul afișează informații despre câmpurile din tabelul bazei de date în formă tabelară către consola MySQL indicând numele câmpului, tipul de date, disponibilitatea cheilor, valoarea implicită etc. Când utilizați cuvântul cheie DEPLIN puteți obține informații extinse, inclusiv privilegii pentru fiecare dintre câmpurile pentru utilizator curent, comentarii pentru fiecare dintre ele și valoarea codificării.

A doua și a treia comandă sunt pur și simplu forme abreviate ale primei comenzi, fără informații extinse. De ce a trebuit să le produc – nici nu îmi pot imagina... Să fie oare ceva de întrebat la interviurile de angajare? 🙂

A patra comandă, pe lângă numele, tipurile de câmp și valorile implicite ale acestora, vă permite să obțineți valorile cheilor tabelelor, motoarelor de tabel (InnoDB, MyISAM), codificare etc.

Operațiunea de actualizare în cazul tabelelor este o modificare a structurii acestora, adică. diverse acțiuni cu câmpuri de tabel MySQL:

ALTER TABLE nume_tabel DROP COLUMN nume_câmp; ALTER TABLE nume_tabel ADD COLUMN nume_câmp VARCHAR (20); ALTER TABLE nume_tabel CHANGE nume_câmp_vechi nume_câmp_nou VARCHAR (50); ALTER TABLE nume_tabel MODIFY nume_câmp VARCHAR (3);

Prima comandă vă permite să ștergeți un anumit câmp al tabelului, a doua - pentru a adăuga, a treia vă permite să redenumiți câmpul și să schimbați simultan tipul de date stocate în el, iar a patra - să schimbați doar tipul de date.

Același lucru se poate face cu indecșii tabelului folosind multe comenzi similare:

ALTER TABLE nume_tabel ADD UNIQUE INDEX nume_index (nume_câmp_1, ...); ALTER TABLE nume_tabel redenumește INDEX nume_index_vechi TO_nume_index_nou; ALTER TABLE nume_tabel DROP INDEX nume_index;

Comenzile de mai sus vă permit să adăugați, să redenumiți și să ștergeți indecși din tabelele MySQL prin linia de comandă. Pentru a adăuga și elimina indici, există, apropo, o opțiune alternativă de utilizare a comenzilor independente și nu prin intermediul ALTER TABLE... Prin urmare, dacă doriți, le puteți folosi:

CREATE UNIQUE INDEX nume_index (nume_câmp_1, ...) ON nume_tabel; DROP INDEX nume_index ON nume_tabel;

Comenzile de mai sus sunt echivalente cu prima și ultima din blocul anterior. Din păcate, nu există o comandă separată pentru redenumirea indexului. Din păcate, în MySQL nu există nicio modalitate de a schimba tipul de index. Singura cale de ieșire este să aruncați indexul și să îl creați din nou cu tipul dorit.

Ei bine, în sfârșit, am ajuns ultima operatie din blocul CRUD - de șters. Eliminarea tabelelor MySQL dintr-o bază de date este foarte ușoară. Este suficient să rulați următoarea comandă în consola MySQL:

DROP TABLE nume_tabel;

Uneori, în practică, apar situații din cauza cărora este imposibil să ștergi un tabel sau să-i schimbi structura. De regulă, acest lucru se datorează utilizării cheilor străine în baza de date pentru a lega tabele între ele. Personal am întâlnit această situație de mai multe ori, despre care am vorbit la începutul articolului.

Prin urmare, dacă, la ștergerea sau actualizarea structurii unui tabel sau a datelor acestuia, MySQL v-a returnat o eroare cu textul Nu se poate șterge sau actualiza un rând părinte: o constrângere de cheie externă eșuează, atunci următoarele informații vă vor fi utile.

Pentru a ne implementa planul, trebuie să dezactivăm temporar verificarea existenței cheilor străine, facem operațiune necesară, apoi porniți din nou scanarea, deoarece este cu adevărat necesar și vă permite să vă protejați împotriva încălcărilor integrității datelor în majoritatea cazurilor.

Strict vorbind, cheile străine MySQL sunt necesare în acest scop.

Deci, pentru a șterge datele, care sunt interferate de cheile străine, trebuie să efectuați următoarele acțiuni în consola MySQL:

SETARE FOREIGN_KEY_CHECKS = 0; # required_mysql_command SET FOREIGN_KEY_CHECKS = 1;

Apropo, dacă doriți să ștergeți o cheie străină, atunci procedura va fi aceeași ca și atunci când ștergeți un index:

ALTER TABLE nume_tabel DROP FOREIGN KEY nume_cheie_externă;

Pentru a afla numele cheii străine a unui tabel MySQL, utilizați comanda familiară a consolei MySQL Afișați CREATE TABLE.

Lucrul cu datele din tabelul MySQL prin linia de comandă

Pentru tabelele CRUD, am acoperit operațiunile din consola MySQL. Pentru o imagine completă, acestei foi de cheat îi lipsesc doar comenzile pentru lucrul cu datele în sine, stocate în tabelele bazei de date. Cred că mulți cunosc aceste comenzi și le-au folosit în practică, dar le voi aminti din nou.

Operațiile CRUD pentru lucrul cu date din tabelele MySQL vor arăta astfel:

INSERT INTO table_name (câmp1, câmp2, ...) VALUES (câmp_valoare_1, câmp_valoare_2, ...); SELECT câmp1, câmp2, ... FROM table_name; UPDATE table_name SET field1 = field_value_1, field2 = field_value_2; DELETE FROM table_name WHERE câmp1 = câmp_valoare_1;

Comenzile de mai sus corespund operațiunilor de creare, citire, actualizare și ștergere a datelor din tabelele bazei de date MySQL. La folosind SELECTși UPDATE, se poate folosi și clauza calificativă WHERE, cu care puteți specifica selecția datelor în modul descris în cazul utilizării DELETE.

De asemenea, atunci când preluați date dintr-o bază de date folosind SELECT, puteți utiliza următoarea opțiune pentru a obține valorile tuturor câmpurilor tabelului:

SELECT * FROM table_name;

Desigur, aceste operațiuni pot folosi și alți operatori în afară de WHERE. Există mai ales o mulțime de ele atunci când preluăm date folosind SELECT: aici și UNION pentru a combina rezultatele mai multor interogări și diferite tipuri de JOIN. A enumera totul este foarte lung și plictisitor atât pentru mine, cât și pentru tine să citești asta.

Prin urmare, să fim de acord: dacă vrei să afli mai multe despre ceva mai detaliat, scrie doar despre asta în comentarii și voi încerca să-ți răspund. Sau alți membri cunoscători ai comunității noastre o vor face. BINE? 😉

Deci, deocamdată, nu ne vom opri asupra acestui bloc.

Dacă trebuie să ștergeți toate datele din tabel, puteți utiliza următoarea comandă MySQL:

TRUNCATE nume_tabel;

Înainte de a-l apela, așa cum am menționat mai devreme, poate fi necesar să dezactivați verificarea cheii străine dacă există tabele MySQL legate, ceea ce vă poate împiedica să efectuați acțiunea necesară.

Un alt punct interesant de luat în considerare aici este că comanda dată nu resetează contorul AUTO_INCREMENT, care este folosit, după cum știți, pentru a genera automat o valoare de câmp fără a fi nevoie să o setați manual.

Câmpurile de acest tip sunt cel mai adesea folosite pentru a genera valori pentru ID-ul câmpului cheie principal, care este folosit pentru a stabili relații între datele din diferite tabele.

Adică, dacă înainte de a șterge datele din tabel folosind TRUNCHIA valoarea maximă a contorului a fost 1200, apoi prima înregistrare după această procedură va avea valoarea de identificare 1201. În principiu, e în regulă. Dacă ați specificat o dimensiune suficientă pentru a acestui domeniu, atunci debordarea valorilor nu te va amenința curând.

Cu toate acestea, în unele cazuri, când există o legătură cu valoarea câmpului din codul aplicației, acest comportament poate fi incomod.

Pentru a evita acest lucru, utilizați această opțiune în loc de comanda de mai sus:

TRUNCATE TABLE someTable RESTART IDENTITY;

Această opțiune apel de comandă TRUNCHIA vă va permite să resetați valoarea contorului câmpului de la INCREMENT AUTO... Prin urmare, valoarea câmpului primei înregistrări adăugate după această ștergere va fi 1 în loc de 1201, ca în exemplul de mai sus.

Cum să ștergeți baza de date MySQL prin linia de comandă

Ciclul de viață al lucrului cu o bază de date se termină și se termină destul de logic - ștergerea acesteia. Pentru a face această operațiuneîn consola MySQL, trebuie să rulați următoarea comandă (în acest caz, baza de date care urmează să fie ștearsă poate să nu fie selectată de comandă UTILIZARE):

DELETE DATABASE dbname;

Aceeași acțiune poate fi făcută folosind utilitarul MySQL mysqladmin, despre care am menționat deja la începutul articolului la crearea unei baze de date:

Mysqladmin drop dbname;

Când comanda este invocată în consola serverului, va apărea următorul mesaj:

Aruncarea bazei de date este potențial un lucru foarte rău de făcut.
Orice date stocate în baza de date vor fi distruse.

Chiar doriți să aruncați baza de date „database_name”?

Pe scurt, acesta este un avertisment că eliminarea unei baze de date MySQL este o idee foarte proastă. Se solicită și confirmarea acțiunii. Dacă sunteți de acord - scrieți yși apăsați introduce pe tastatură, după care pe ecran va fi afișat următorul mesaj (dacă totul a mers bine, desigur):

Baza de date „dbname” a fost abandonată

Așa 🙂

Cum să ștergeți utilizatorul MySQL din consolă

Acum aceeași soartă va avea și utilizatorul MySQL pe care îl creăm pentru a vă arăta cum. Dar, pentru început, ar fi o idee bună să verificați dacă utilizatorul necesar există cu adevărat înainte de a-l șterge.

Începând cu MySQL 5.7, există o comandă pentru ambele acțiuni:

DROP UTILIZATOR DACĂ EXISTĂ numele de utilizator;

Versiunile anterioare de MySQL necesitau două comenzi separate:

ACORDĂ UTILIZARE PE *. * CĂTRE „nume de utilizator” @ „adresă_gazdă sau_IP”; DROP USER „nume de utilizator” @ „gazdă_sau_adresă_IP”;

Din păcate, în acest caz, mesajul despre execuția operației în consola MySQL este în mod tradițional neinformativ 🙁 Prin urmare, pentru a afla că utilizatorul MySQL a fost șters până la urmă, puteți folosi următoarea comandă, care afișează o listă cu toate utilizatorii existenți pe serverul MySQL actual:

SELECTează utilizatorul din mysql.user;

Această versiune a comenzii va tipări numai numele de utilizator. Dacă trebuie să vedeți gazdele de la care utilizatorii se pot conecta la server și lista de privilegii, puteți apela comanda în următoarea formă:

SELECTează utilizator, gazdă, Grant_priv FROM mysql.user;

De asemenea, în tabelul mysql.user există multe alte câmpuri care stochează alte tipuri de privilegii și alte informații, o listă completă a cărora o găsiți aici - https://mariadb.com/kb/en/library/mysqluser-table/

Nu fi confuz că aceasta este documentația MariaDB. Din punct de vedere tehnic, acesta este același cu MySQL, deoarece MariaDB este doar o furculiță sau o furculiță din engleza „furculiță” - a furk, ​​a fork.

De ce a trebuit să fie făcut - din nou fără nicio idee 🙂 Asta este să declar cu mândrie tuturor că „am propriul meu SGBD”? .. Dar, sincer, nu sunt foarte conștient de motivele și diferențele exacte dintre MySQL și MariaDB . Prin urmare, dacă știți ceva despre asta, ar fi interesant să citiți despre asta în comentarii.

Ieșire din Consola MySQL

Asta e tot, ciclul de viață al bazei de date și al utilizatorului, care a început cu crearea lor și s-a încheiat cu ștergerea lor, a ajuns la sfârșit. Prin urmare, linia de comandă MySQL, cu care am lucrat în consola serverului folosind utilitarul mysql, nu mai avem nevoie.

Rămâne doar să ieșim din ea...

S-ar părea că acțiunea este banală, dar mulți într-o situație în care trebuie să părăsiți linia de comandă MySQL pur și simplu închide consola serverului și deschide-o din nou. Poți, desigur, să acționezi așa, dar ocupă secunde suplimentare de timp de lucru și te enervează de fiecare dată când trebuie să o faci.

Comportamentul corect în această situație este doar apelarea comenzii Ieșire pe linia de comandă MySQL, după care serviciul ne va lua la revedere politicos 🙂

Și asta-i tot 🙂 Deci data viitoare nu va mai fi nevoie să deschizi console și să le redeschizi de fiecare dată când trebuie să ieși din MySQL din consolă și să obții din nou acces la el pentru a gestiona serverul.

Atât am vrut să vă spun astăzi. Sper că foaia mea de cheat pentru lucrul cu linia de comandă MySQL prin consolă va fi utilă nu numai mie, ci și ție.

Referitor la aplicarea practică a informațiilor prezentate în articol, aș dori să vă reamintesc că construcțiile date pot fi utilizate nu numai în linia de comandă MySQL și consola serverului, ci și în consola phpMyAdmin și alte programe care oferă astfel de o oportunitate.

Dacă îl folosești sau nu, depinde de tine. Dar, așa cum am spus chiar la începutul articolului, există situații în care utilizarea consolei MySQL vă poate economisi timp și bătăi de cap. Dacă folosiți linia de comandă în fiecare zi sau nu, este o chestiune de gust și preferințe individuale.

Lăsați un comentariu despre comenzile pe care le utilizați cel mai des. Și, poate, știți și alte trucuri. În orice caz, împărtășește-ți părerea cu ceilalți și păstrează conversații în comentariile altor utilizatori.

Vă promit că în acest proces veți învăța o mulțime de lucruri noi, așa cum am făcut eu când am scris fiecare dintre articolele mele 🙂

Asta e tot! Succes și ne vedem curând 🙂

P.S.: dacă aveți nevoie de un site sau trebuie să faceți modificări unuia existent, dar nu există timp și dorință pentru asta, îmi pot oferi serviciile.

Peste 5 ani de experiență dezvoltarea site-ului profesional. Lucrați cu PHP, Opencart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reacţiona, unghiularși alte tehnologii de dezvoltare web.

Dezvoltarea tehnologiilor informaţionale este una dintre direcţiile de conducere ale activităţii umane. Prin urmare, o sumă imensă de fonduri sunt investite în acest domeniu. De la început și până astăzi, au fost rezolvate multe sarcini diferite, care au ușurat mult viața de zi cu zi a multor oameni. Cu toate acestea, odată cu dezvoltarea tehnologiei, au apărut o serie de probleme, dintre care una este cantitatea excesivă de informații care trebuie stocată. Bazele de date au fost concepute pentru a rezolva situația.

Un tur rapid al sistemelor de gestionare a bazelor de date

Deoarece problema stocării unei cantități mari de informații este relevantă astăzi, există mai multe modalități de a o rezolva. Fiecare dintre ele este concentrat pe sarcini de o anumită orientare. Împreună, însă, formează un complex complet care simplifică problema stocării datelor.

Există o anumită clasificare care determină necesitatea utilizării unei anumite baze de date și a DBMS (sistem de management al bazelor de date). Cele mai comune sunt considerate în prezent a fi client server tehnologii de stocare a datelor. Acestea includ următoarele tipuri: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, LINTER, MySQL. Ne va interesa ultima varianta- MySQL, ale cărui comenzi sunt pe deplin compatibile cu standardele SQL. Această tehnologie este una dintre cele mai populare și des folosite pentru rezolvarea atât aplicată locală, cât și sarcini de producție scară mică.

Predecesorii tehnologie client-server sunt server de fișiere SGBD-uri care și-au pierdut pozițiile din cauza unei serii de neajunsuri existente, printre care evidențiază necesitatea distribuirii nucleului SGBD pe fiecare computer și o încărcare semnificativă pe rețea locală conducând la o creștere a costurilor de timp. Acest grup include Borland Paradox.

Noile tehnologii câștigând popularitate

Cu toate acestea, acum câțiva ani a apărut tehnologie avansata, care câștigă popularitate și este solicitată atunci când rezolvă mici probleme locale. Este vorba despre încorporat sisteme de management al bazelor de date. Principala caracteristică a SGBD-ului considerat este absența unei părți de server. Sistemul în sine este o bibliotecă care vă permite să lucrați într-o manieră unificată cu cantități mari de informații localizate calculator local. Aceasta metoda elimină dezavantajele server de fișiere fonduri și, de asemenea, depășește semnificativ în viteză client server tehnologii.

Ca exemple putem lua în considerare OpenEdge, SQLite, BerkeleyDB, una dintre variantele Firebird, Sav Zigzag, Compact, LINTER, precum și una dintre variantele MySQL, ale cărei comenzi nu sunt diferite de cele utilizate în DBMS client-server. . dar încorporat sistemele își pot pierde cu ușurință relevanța dacă sarcina nu mai este de natură locală.

Principalele avantaje ale DBMS MySQL

Sistemul de gestionare a bazelor de date MySQL este una dintre cele mai solicitate tehnologii, deoarece poate fi folosit pentru a rezolva sumă uriașă sarcini. Dacă îl comparăm cu omologii moderni, atunci putem evidenția o serie de avantaje principale.

Principalul plus pe piata ruseasca disponibilitatea sa este luată în considerare, deoarece este gratuit în majoritatea cazurilor. A doua caracteristică este performanța. Una dintre cele mai sisteme populare este MySQL. Comenzile sunt executate rapid, cu timp de răspuns minim. Conexiunea la serverul mai multor clienți în modul multithreaded nu afectează viteza de procesare a comenzilor datorită utilizării mecanismului InnoDB pentru sprijin rapid tranzactii.

Prezența unui driver ODBC face mai ușor pentru dezvoltatori să rezolve multe probleme. Avantajele includ și capacitatea de a implementa înregistrări de lungime fixă ​​și variabilă. Dar funcția principală, care este foarte apreciată în cercul programatorilor, este interfața cu limbajele C și PHP. Capacitățile oferite de MySQL au făcut posibilă utilizarea dat SGBD pentru un număr mare de furnizori de servicii de găzduire pe internet.

Și pentru un simplu profan care este interesat de tehnologii moderne stocarea informațiilor, este necesar să se studieze MySQL și sintaxa acestora, deoarece specialiștii în acest domeniu sunt solicitați pe scară largă și foarte plătiți oriunde în lume. Prin urmare, dacă cineva este interesat de această direcție, nu ezita. Trebuie să treci la studii chiar acum.

Ce ai nevoie pentru a studia

La prima vedere, poate părea că aceasta zona dificil în auto-studiuși necesită o comunicare constantă cu un specialist. Cu toate acestea, acesta nu este cazul. Puteți studia arhitectura și particularitățile MySQL, comenzile de bază ale limbajului de interogare și tot ce are legătură cu acesta pe cont propriu, fără a apela la ajutorul unui consultant. Pentru asta este suficient sa ai o dorinta si sa faci eforturi pentru a merge mai departe. Doar autodezvoltarea și studiul acestui domeniu vă vor permite să dobândiți noi cunoștințe, să vă consolidați abilitățile dobândite și, eventual, să începeți să vă construiți o carieră și să mergeți în această direcție.

Pentru studiu echipele principale, în primul rând, trebuie să ai la îndemână gratuit versiune utilitarul consolei MySQL. Cu ea începe procesul de învățare. Îl puteți descărca de pe site-ul oficial MySQL. Poate fi instalat cu ușurință pe orice sistem de operare, formând un server și un client pe un singur computer, ceea ce este foarte convenabil.

Apoi trebuie să căutați un tutorial care oferă informații de bază despre mediul MySQL. pentru învăţarea de bază, de regulă, conţin şi ele. Există o mulțime de informații în acest sens. Cu toate acestea, alegerea trebuie luată în serios. Informațiile trebuie prezentate în mod consecvent și structurate clar.

În cazul în care ai cunoștințe inițiale în limba engleză, puteți utiliza suportul încorporat al consolei. Pentru aceasta există o comandă specială Ajutor pentru a vă ajuta să înțelegeți cum să utilizați utilitarul MySQL.

Comenzile de bază ale consolei

Trecând ușor de la principalele caracteristici, capabilități și avantaje, am ajuns la lista comenzilor principale. Utilitarul MySQL conține inițial un singur utilizator, care este folosit pentru învățare. Acesta este un utilizator numit rădăcină, parola pentru care este complet identică cu numele.

La prima pornire și la cea ulterioară a consolei MySQL, utilizatorul va trebui să introducă o parolă rădăcină pentru munca in continuare cu SGBD MySQL. Comenzile din consolă vor fi disponibile numai după ce au fost autentificate.

După o verificare cu succes, pentru comoditate, puteți afișa comenzile existente folosind comanda Ajutor... După aceea, consola va prezenta toate comenzile existente și scurta descriere lor.

și afișaj

Acum trebuie să mergi la urmatorul pas... Pentru a face acest lucru, trebuie să selectați unul existent sau să creați noua baza date. Pentru a selecta o bază existentă, trebuie să utilizați utilizați comanda... Și după un spațiu introduceți numele bazei de date. Inițial, în utilitar există doar unul - cu numele Test... Prin urmare, cererea va arăta astfel: utilizare Test.

Pentru a crea o bază de date, trebuie să utilizați comanda crea dându-i cuvântul cheie Bază de dateși dând un nume adecvat. Structura va lua următoarea formă: creați baza de date Name_of_database... Pentru a lucra cu baza de date creată, trebuie să o contactați folosind comanda utilizare.

Mediul oferă o funcție concepută pentru afișare bazele existente date, tabele, chei primare sau link-uri externe și afișarea informațiilor disponibile despre acestea pe consola MySQL. Comenzile în acest caz ar trebui să înceapă întotdeauna cu o propoziție spectacol... De exemplu, pentru a afișa o listă de baze de date disponibile pentru utilizatorul curent, trebuie doar să introduceți următoarea interogare: spectacol baze de date... Pentru a afișa tabelul, este suficient să schimbați obiectul de afișare după cuvântul cheie prin introducere Mese.

Comenzi de masă

Înainte de a trece mai departe, este necesar să reamintim încă o dată că respectarea standardelor limbajului SQL oferă oportunități ample pentru dezvoltatori, indiferent de SGBD și sistemele de operare utilizate. Interogările dezvoltate în orice mediu care acceptă standardul SQL vor funcționa cu succes (cu condiția ca baza de date și tabelele să fie disponibile) în mediul MySQL. Comenzi console Windows nu diferă de cele utilizate în alte sisteme de operare.

Există o serie de comenzi specifice pentru lucrul cu tabele, care, dacă sunt traduse din engleză, vorbesc de la sine. Despre echipa crea a fost menționat mai sus. Poate fi folosit și pentru a adăuga tabele la o bază de date creată anterior. Pentru a șterge obiectele bazei de date, în special tabele, utilizați comanda cădere brusca la care se anexează numele obiectului de distrus. Exemplu: cădere brusca Nume_ de_ ta_ masa.

Sintaxa pentru apelurile către serverul bazei de date are întotdeauna structura generala... Prin urmare, o interogare dezvoltată în Windows va funcționa cu succes și în consola MySQL Linux. Comenzi procesate de server fără erori într-una sistem de operare nu poate duce la erori la alții.

Selectați comanda

Dar cea mai importantă comandă pentru lucrul cu tabele, a cărei sintaxă este destul de simplă, este comanda Selectați... Ea este cea care este folosită pentru a selecta datele din baza de date. Sintaxa originală este structurată după cum urmează: Selectați * din masa_ Nume... Prin trimiterea unei astfel de solicitări către serverul bazei de date, clientul ar trebui să recupereze toate înregistrările stocate în tabel.

Mulți oameni nu se gândesc niciodată, dar atunci când navighează pe Internet, folosesc constant comenzi MySQL.Interogările PHP folosesc sintaxa limbajului SQL pentru a afișa conținutul cataloagelor magazinelor online sau știri pe rețelele sociale. În loc de „*” după propoziție Selectați, de regulă, se oferă o listă a câmpurilor principale ale unui tabel sau mai multor tabele, datele din care trebuie prelucrate. În cazul unei selecții din mai multe tabele, se folosește o legătură specială a te alatura, care servește la conectarea acestora prin conexiuni externe existente. Cu toate acestea, această condiție poate fi modificată de către dvs., specificând ce câmpuri ar trebui să fie legate.

Stabilirea limitelor de eșantionare

Uneori apare o situație când răspunsul primit de la serverul bazei de date conține date duplicat. Pentru a vă asigura că numai înregistrările unice sunt vizibile pentru utilizator, este utilizată clauza distinctă. Este plasat în fața listei de câmpuri solicitate și servește drept ajutor pentru ascunderea duplicatelor.

Top articole similare