A intra
Toate secretele computerului pentru începători și profesioniști
  • Modpack de la Wotspeak pentru World of Tanks
  • SweetFX – setări grafice avansate pentru orice joc
  • WoT Blitz pe Steam: impresii
  • Sindbad - coduri promoționale și cupoane
  • Codurile de activare a tancurilor de război solului Tancurile de război solului trișează invizibil
  • DriverPack Solution Online - căutare automată și instalare a oricăror drivere Instalare în modul de compatibilitate
  • Cum se lucrează cu mysql pe linia de comandă. Instalarea manuală a MySQL pe Windows. Conectarea la serverul MySQL din consolă

    Cum se lucrează cu mysql pe linia de comandă.  Instalarea manuală a MySQL pe Windows.  Conectarea la serverul MySQL din consolă

    Sistem popular de gestionare a bazelor de date MySQL 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ă le prezentăm cititorilor noștri cum să efectueze sarcini de administrare MySQL de bază din linia de comandă.

    După cum au observat cititorii noștri obișnuiți, ne opunem în mod constant utilizării diferitelor tipuri de panouri de control de către începători, indiferent cât de convenabile și de răspândite ar fi 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ă o 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, dacă este inaccesibil, cade într-o panică liniștită, pentru că acum trebuie să intre niște „vrăji” în această consolă neagră de neînțeles...

    De fapt, lucrul cu un DBMS la nivel de linie de comandă nu este deloc dificil, iar unele sarcini 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.

    Gestionarea 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 esență simple și pot fi rezolvate perfect, și cel mai important, simplu, din consolă. Un utilitar cu același nume este proiectat să funcționeze cu serverul MySQL mysql, cu care se lucrează în modul interactiv, așa că mai întâi ne vom conecta la server:

    Mysql -u root -p

    Acolo unde comutatorul -u specifică numele de utilizator și -p specifică autentificarea parolei, sintaxa comenzii vă permite să specificați parola introducând-o fără spații imediat după cheie, dar în acest caz va fi salvată în istoricul comenzilor, care este nu este complet bun, deci este mai bine să introduceți parola interactiv. După executarea acestei comenzi, ne vom găsi în mediul MySQL, așa cum este indicat de linia de comandă modificată.

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

    Să vorbim despre o greșeală foarte frecventă: uitarea de a pune punct și virgulă la sfârșitul comenzii. Ce să fac? Nu e mare lucru, completează doar caracterele lipsă în rândul următor.

    Mai întâi, să ne uităm la lista de baze de date:

    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ă cerere:

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

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

    Prima coloană indică utilizatorul, a doua - 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 avea acces, acest lucru trebuie luat în considerare atunci când specificați date de conectare la serverul DBMS în aplicațiile dumneavoastră.

    Puteți vedea proprietarii bazei de date utilizând următoarea interogare:

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

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

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

    Împachetăm numele de utilizator și gazda între ghilimele simple.

    Prima linie raportează că utilizatorul specificat nu are privilegii ( UTILIZARE) la orice tabel al oricărei baze de date ( *.* ), a doua linie vorbește despre toate privilegiile principale pentru toate tabelele din toate bazele de date 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 sale de date, dar nu îi permite să gestioneze drepturile de acces pentru alți utilizatori. Pentru a face acest lucru, 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ă, specificăm numele de utilizator și gazda, precum și datele de identificare sub forma unei parole. Toate valorile transmise sunt împachetate între ghilimele simple. După ce ați creat un utilizator, trebuie să îi atribuiți drepturi, acest lucru se face cu comanda ACORDA. În primul rând, îl vom priva în mod explicit de privilegii asupra bazelor de date ale altor persoane:

    Acordați utilizarea pe *.* pentru "petrov"@"localhost";

    Apoi putem seta drepturi la discreția noastră, de exemplu, eliberând drepturi complete asupra bazelor de date cu un șablon de nume petrov_:

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

    Vă rugăm să rețineți că modelul ar trebui să fie înfășurat cu caractere gravis (` ), care sunt situate pe cheia cu litera rusă E.

    Puteți acorda drepturi pentru o bază de date separată, astfel:

    Acordați toate privilegiile pe andrey_drupal8.* lui "petrov"@"localhost";

    Pentru a selecta drepturile, utilizați numai comanda REVOKE, care are o sintaxă similară la (la care), înlocuiți-l cu din (OMS). 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 de utilizator:

    Setați parola pentru "petrov"@"localhost" = parola ("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";

    Și, în sfârșit, ș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, pentru a crea o nouă bază de date, comanda este suficientă:

    Creați baza de date petrov_newdb;

    Aceasta va crea o bază de date cu pagina de cod implicită și codificare 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, așa că este o regulă generală 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 de date, utilizați:

    Aruncă baza de date petrov_newdb;

    Verificarea, optimizarea, remedierea erorilor din bazele de date MySQL

    Pe măsură ce 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 trebuie luate în considerare individual, ci despre cele mai simple erori care pot fi eliminate cu succes folosind DBMS în sine. Pentru a verifica, repara și optimiza, este convenabil să utilizați utilitarul mysqlcheck.

    Pentru a verifica baza de date faceți unde andrey_drupal8- numele bazei de date:

    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 cel mai probabil 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, apăsați pentru a ieși q.

    Dacă s-au găsit erori în oricare dintre bazele de date, ar trebui să încercați să le corectați, pentru a face acest lucru, indicați:

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

    Pentru optimizare, utilizați tasta - -optimizeze, puteți optimiza o singură bază de date 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

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

    O altă sarcină comună la administrarea oricărui SGBD, depozitele bazei de date sunt folosite atât pentru backup, cât și pentru transferul sau crearea de copii. Dacă backup-ul este un proces automat, atunci crearea copiilor pentru transfer pe alt server sau înainte de orice intervenție semnificativă în structura bazei de date trebuie făcută manual.

    Și dacă este vorba de baze de date mari, atunci aici phpMyAdmin un ajutor prost, afectează timpul de execuție al scripturilor, dimensiunea fișierului descărcat, memoria disponibilă etc. Și, deși puteți încărca un dump mare folosindu-l, este posibil să nu îl puteți încărca înapoi.

    Să începem prin a crea depozite; utilitarul este folosit în aceste scopuri mysqldump, a cărui sintaxă urmează sintaxa mysqlcheck. Pentru a descărca dump-ul, 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 să fie trimisă într-un fișier și să indice locația acestuia, în cazul nostru acesta este fișierul drupal8.sqlîn directorul dvs. de acasă. De asemenea, puteți canaliza ieșirea către arhivator și primiți arhiva imediat:

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

    În general, nu recomandăm utilizarea unui dump pentru mai multe baze de date simultan; cea mai bună opțiune ar fi propriul dump pentru fiecare bază de date, folosind în același timp o cheie --toate-bazele de date justificat în cazurile în care trebuie să faceți rapid o copie de rezervă a întregului server, de exemplu, la actualizarea sau reinstalarea unui 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 dump-ul la intrarea utilitarului mysql; pentru un singur dump, trebuie să specificați întotdeauna baza de date de destinație, de exemplu:

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

    Destinația nu trebuie să fie neapărat baza de date sursă, dar rețineți că, dacă baza de date există deja, tot conținutul acesteia va fi înlocuit cu conținutul dump-ului.

    Pentru depozitele care conțin mai multe baze de date, pur și simplu specificați:

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

    În acest caz, fiecare bază de date va fi încărcată în propria sa sursă; dacă baza de date sursă nu există, aceasta va fi creată.

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

    Recuperarea unei parole de root MySQL uitată

    O altă sarcină foarte populară. Să spunem imediat că este imposibil să recuperați parola de superutilizator MySQL, ca orice alt utilizator, dar o puteți schimba. Pentru a face acest lucru, trebuie să aveți drepturi de superutilizator la sistemul de operare. Mai întâi, să oprim serviciul DBMS:

    Service mysql stop

    Apoi îl rulăm în modul sigur, sărind peste tabelele de privilegii:

    Mysqld_safe --skip-grant-tables &

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

    Mysql -u root

    și intrăm în mediul mysql cu drepturi de root fără a introduce o parolă.

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

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

    Important!În versiunile noi de MySQL, în loc de o coloană parola Mese utilizator este folosită coloana șir_de_autentificare, deci în schimb Seteaza parola ar trebui indicat setați șirul de autentificare.

    Această solicitare va seta o nouă parolă Parolă Nouă pentru toate rândurile dintr-o coloană utilizator care sunt enumerate rădăcină.

    Să actualizăm memoria cache de privilegii:

    Privilegii de golire;

    Să ieșim din modul:

    Să oprim serviciul și să-l pornim în modul normal:

    Service mysql stop
    service mysql start

    Sperăm că, după ce ați citit acest articol, veți dobândi abilități 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 că va fi mai puțin probabil să intrați panoul, preferând să gestioneze serverul direct.

    Mai jos este o listă cu cele mai utile și frecvent utilizate comenzi MySQL cu exemple.

    mysql la începutul liniei înseamnă că comanda este executată după conectare MySQL.

    Simbolul # sau $ de la începutul liniei înseamnă că comanda este executată din linia de comandă.

    Pentru a verifica starea serverului MYSQL do:

    Pentru FreeBSD:

    # starea serviciului mysql-server

    V CentOS/RHEL:

    # starea serviciului mysqld

    MySQL din consolă dacă serverul MySQL este pe aceeași gazdă:

    Pentru a vă conecta la server MySQL din consolă dacă serverul MySQL se află pe gazda la distanță db1.example.com:

    $ mysql -u nume de utilizator -p -h db1.example.com

    Lucrul cu baze de date și tabele - vizualizarea, ștergerea, editarea înregistrărilor. Consolă

    Creați o bază de date pe MySQL Server:

    Mysql creează o bază de date

    Afișați o listă cu toate bazele de date de pe server MySQL:

    utilizarea mysql;

    Afișați toate tabelele din baza de date:

    Mysql arată tabele;

    Vizualizați formatul tabelului în baza de date:

    mysql descrie;

    Șterge baza de date:

    Baza de date Mysql drop;

    Ștergeți un tabel din baza de date:

    Mysql drop table;

    Afișați tot conținutul tabelului:

    Mysql SELECT * FROM ;

    Afișați coloanele și conținutul coloanelor în tabelul selectat:

    Mysql arată coloanele din ;

    Afișează rânduri dintr-un anumit tabel care conține „orice”:

    Mysql SELECT * FROM WHERE = „oricare”;

    Afișați toate înregistrările într-un tabel specific care conține „Bob” și numărul de telefon „3444444:

    Mysql SELECT * FROM WHERE nume = "Bob" AND phone_number = "3444444";

    Afișați toate intrările, NU care conține numele „Bob” și numărul de telefon „3444444”, sortate după câmpul phone_number:

    Mysql SELECT * FROM WHERE nume != " Bob " AND phone_number = " 3444444 " ordine după phone_number;

    Afișați toate intrările care încep cu literele „bob” și numărul de telefon „3444444” într-un anumit tabel:

    Mysql SELECT * FROM WHERE nume ca „Bob %” AND phone_number = „3444444”;

    Afișați toate intrările care încep cu literele „bob” și numărul de telefon „3444444”, limitând intrările de la 1 la 5:

    Mysql SELECT * FROM WHERE nume ca „Bob %” AND phone_number = „3444444” limită 1,5;

    Folosind expresii regulate ("REGEXP BINARY") pentru a căuta înregistrări. De exemplu, pentru o căutare fără majuscule, găsiți toate înregistrările care încep cu litera A:

    Mysql SELECT * FROM WHERE rec RLIKE "^a";

    Afișați toate intrările unice:

    Mysql SELECT DISTINCT FROM ; mysql SELECT, FROM ORDER BY DESC;

    Afișați numărul de rânduri din tabel:

    Mysql SELECT COUNT(*) FROM ;

    Mysql SELECT SUM(*) FROM ;

    Eliminarea unei coloane:

    Mysql alter table drop column;

    Adăugarea unei coloane la baza de date:

    Mysql alter table add column varchar(20);

    Schimbarea numelui coloanei:

    Mysql alter table change varchar(50);

    Creați o coloană cu un nume unic pentru a evita numele duplicat:

    Mysql alter table add unique();

    Redimensionarea unei coloane:

    Mysql alter table modifică VARCHAR(3);

    Eliminarea unei coloane dintr-un tabel:

    Mysql alter table drop index;

    Mysql LOAD DATA INFILE " /tmp/filename.csv " înlocuiți ÎN TABELE CÂMPURI TERMINATE CU "," LINII TERMINATE CU "n" (câmp1, câmp2, câmp 3);

    Utilizatori server MySQL, parole - adăugarea, modificarea utilizatorilor și parolelor. Consolă

    Crearea unui nou utilizator - conectarea la server MySQL ca root, comutați la baza de date, adăugați utilizator, actualizați privilegii:

    # mysql -u root -p mysql folosește mysql; mysql INSERT INTO user (Gazdă,Utilizator,Parolă) VALUES("%","nume utilizator", PAROLA("parolă")); privilegii de spălare mysql;

    Schimbarea parolei utilizatorului din consola de pe gazda la distanță db1.example.org:

    # mysqladmin -u nume de utilizator -h db1.example.org -p parola " noua-parola "

    Schimbarea parolei utilizatorului din consolă MySQL- conectați-vă ca root, actualizați parola, privilegiile de actualizare:

    # mysql -u root -p mysql SETĂ PAROLA PENTRU " utilizator "@" nume gazdă " = PAROLA(" parola aici "); privilegii de spălare mysql;

    Recuperarea/modificarea parolei serverului rădăcină MySQL- Stop MySQL, începeți fără tabele de privilegii, conectați-vă ca root, setați o nouă parolă, ieșiți și reporniți MySQL.

    # /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") unde User="root"; mysql; privilegii de golire; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

    Setați o parolă de root dacă există o parolă de root.

    # mysqladmin -u root password newpassword

    Actualizați parola root:

    # mysqladmin -u root -p veche parolă nouă

    Setarea dreptului de conectare la server de la gazda localhost cu parola „passwd” - conectarea la subroot, trecerea la baza de date, setarea privilegiilor, actualizarea privilegiilor:

    # mysql -u root -p mysql folosește mysql; mysql acordă utilizarea pe *.* la bob @localhost identificat prin " passwd "; privilegii de spălare mysql;

    Setarea privilegiilor utilizatorului pentru a utiliza baza de date - conectarea ca root, trecerea la baza de date, setarea privilegiilor, privilegiile de actualizare:

    # mysql -u root -p mysql folosește mysql; mysql INSERT INTO db (Gazdă,Db,Utilizator,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALORI ("%","nume bază de date","nume utilizator","Y","Y","Y","Y"," Y","Y","N"); privilegii de spălare mysql;

    Mysql acordă toate privilegiile pe baza de date .* numelui de utilizator @localhost; privilegii de spălare mysql;

    Actualizarea informațiilor din baza de date:

    Mysql UPDATE SET Select_priv = "Y", Insert_priv = "Y", Update_priv = "Y" unde = utilizator";

    Ștergerea unui rând dintr-un tabel:

    Mysql DELETE de unde = „orice”;

    Actualizarea privilegiilor în baza de date:

    privilegii de spălare Mysql;

    Backups - crearea, restaurarea bazelor de date. Consolă

    Creați o copie de rezervă (dump) a tuturor bazelor de date în fișierul alldatabases.sql:

    # mysqldump -u root -p parola -opt ; /tmp/alldatabases.sql

    Faceți copii de rezervă pentru o bază de date în fișierul databasename.sql:

    # mysql dump -u username -p password -databases databasename ; /tmp/databasename.sql

    Faceți o copie de rezervă a unui tabel în fișierul databasename.tablename.sql:

    # mysql dump -c -u nume utilizator -p parola nume bază de date nume tabel ; /tmp/databasename.tablename.sql

    Restaurarea unei baze de date (sau a unui tabel) dintr-o copie de rezervă:

    # mysql -u nume utilizator -p parola nume bază de date< /tmp/databasename.sql

    Crearea tabelelor bazei de date. Consolă

    numele coloanelor sunt indicate cu litere mici;
    Litere majuscule - tipuri și atribute ale coloanelor;
    în (paranteze) - valoarea tipului de coloană.

    Creați un tabel, exemplul 1:

    mysql CREATE TABLE (prenume VARCHAR(20), middleinitial VARCHAR(3), nume VARCHAR(35), sufix VARCHAR(3), officeid VARCHAR(10), userid VARCHAR(15), username VARCHAR(8), email VARCHAR(35) ), telefon VARCHAR(25), grupuri VARCHAR(15), datatamp DATE, timestamp TIME, pgpemail VARCHAR(255));

    Creați un tabel, exemplu 2:

    Mysql create table (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, prenume VARCHAR(35), nume de mijloc VARCHAR(50), nume de familie VARCHAR(50) implicit "bato");

    O zi buna, colegi :)

    Da, exact colegi, pentru că pentru un simplu muritor, linia de comandă MySQL (sau MySQL Shell, așa cum le place și dezvoltatorilor să o numească), precum și lucrul cu MySQL în consolă, este puțin probabil să fie utilă.

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

    Personal, eu prefer să folosesc phpMyAdmin ca principal pentru lucrul cu MySQL, deoarece... Sunt o persoană vizuală din fire. Cu toate acestea, uneori, în practică, există situații în care cunoașterea liniei de comandă MySQL și capacitatea de a lucra cu MySQL în consola serverului sunt pur și simplu necesare.

    Momentan am trei dintre ele:

    1. Prima dată când am întâlnit să lucrez în consola MySQL a fost când am avut nevoie să import un dump mare de bază de date. Nu a fost încărcat în întregime prin phpMyAdmin, deoarece... a căzut undeva la mijloc din cauza timeout-ului, în ciuda modificării setărilor pentru timpul de execuție a operațiunii și dimensiunea fișierelor descărcate. În principiu, s-a putut selecta valorile necesare, dar mi s-a părut un proces prea lung.
    2. Data viitoare când a trebuit să lucrez cu MySQL prin linia de comandă a fost să dezactivez verificarea cheilor străine, când trebuia să șterg datele dintr-un tabel care era legat de alții folosind chei. Pur și simplu nu am găsit cum să fac asta în phpMyAdmin.
    3. Companiile serioase folosesc doar consola pentru a lucra cu MySQL fără niciun phpMyAdmin. Nu știu exact de ce, dar oamenii cunoscători au spus că are ceva de-a face cu securitatea. Ca rezultat, toată lumea a trebuit să lucreze cu linia de comandă MySQL, inclusiv eu :)

    Dar, din nou, lucrul cu MySQL în consolă și linia de comandă este destul de potrivit pentru utilizarea de zi cu zi. Toate programele vizuale cunoscute pentru lucrul cu bazele de date încă funcționează pe baza comenzilor consolei MySQL. Prin urmare, după cum vă place :)

    Rularea consolei pe un sistem de operare diferit

    Deoarece voi demonstra cum să utilizați linia de comandă MySQL în consola serverului, ar fi o idee bună să începeți mai întâi cu ea.

    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 promptul de comandă Windows cu drepturi de administrator;
    • Introdu comanda cmd
    • Clic introduce pe tastatură

    Lansarea consolei în distribuțiile Linux (terminal): în Ubuntu, cu care am lucrat, combinația de taste de sistem este suficientă Ctrl+Alt+T. Nu pot spune nimic despre alte sisteme de operare bazate pe Linux.

    Lansarea consolei pe MacOS: Nu am făcut asta chiar eu, pentru că... Nu am primit încă un Mac și este puțin probabil să obțin unul pentru că nu am nevoie de el, dar din câte am putut să aflu, nu există „taste rapide” pentru a apela un terminal în acest sistem de operare. Deci, dacă sunteți un utilizator al produselor Apple, atunci lansați consola prin interfața OS, din fericire există multe manuale pe Internet.

    Este puțin jenant să publicăm chiar și astfel de informații în cazul în care un administrator de sistem profesionist cu experiență vastă dă din greșeală acest articol, deoarece se va gândi: „Autorul își consideră cititorii ca fiind programatori, dar în același timp învață cum să lansezi o consolă... Un fel de psiho:-).”

    Da, destul de logic :) Dar țin doar cont de situația în care, împreună cu dezvoltatorii profesioniști, pot ajunge aici și începătorii. De aceea, încerc să fac informațiile complete și accesibile tuturor categoriilor de utilizatori, așa cum 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ă lansăm utilitarul cu același nume, care este o linie de comandă MySQL.

    Acest lucru ne va permite să aflăm versiunea MySQL instalată pe computer și să ne asigurăm că este instalată ca serviciu. Dacă acesta este cazul, atunci veți vedea ceva de genul următor text în consolă: .

    Da, nu sunt un „codor nebun”, pentru că folosesc Windows :) Dar nu asta este ideea. Pe sistemele 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 lansarea MySQL prin consolă va arăta așa.

    În consolă, mergeți la directorul în care se află fișierul executabil MySQL (pe Windows, cel puțin este mysql.exe) cu următoarea comandă:

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

    Desigur, calea către distribuție poate fi diferită. De exemplu, am decis să rulez una dintre versiunile de MySQL incluse cu OpenServer.

    Și lansăm 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).

    Gata, am rezolvat lansarea MySQL din linia de comandă prin consola serverului, acum ne vom conecta direct la serverul MySQL.

    Conectarea la serverul MySQL din 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 face posibilă conectarea la un server MySQL la distanță prin consolă, utilitarul mysql are mulți parametri cu care puteți specifica setările necesare.

    Pentru a lansa 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 utilizatorului „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 exista numele utilizatorului de sistem sub care efectuați acțiuni în sistem.

    Toate acestea se datorează faptului că, în mod implicit, atunci când se conectează la un server MySQL, consola folosește utilizatorul ODBC pe Windows fără parolă și utilizatorul sistem pe Linux cu aceeași parolă. Gazda implicită este localhost, adică Acest utilizator se poate conecta numai de la computerul local.

    Prin urmare, aveți două opțiuni: fie utilizați un alt utilizator pentru a vă conecta la 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 sub un utilizator standard rădăcină, care este creat la instalarea MySQL pe un 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 pur și simplu Enter (dacă nu ați introdus-o, desigur, când instalați MySQL). Apoi vi se va conecta la serverul MySQL, vi se va atribui un ID de conexiune și vi se va oferi acces la linia de comandă MySQL.

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

    Mysql -u nume_utilizator -p parola_utilizator -h MySQL_server_host_or_IP

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

    Mysql --user=nume_utilizator --parola=parola_utilizator --gazdă=gazdă_sau_IP_de_server_MySQL

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

    MySQL -u nume_utilizator -h gazdă_server_mySQL sau_IP -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 introduceți nu vor fi afișate nici măcar sub formă de asteriscuri (wildcards), ci va fi doar o linie goală.

    În plus față de setările de conexiune specificate, este posibil să se utilizeze următorii parametri, ale căror valori vor fi specificate într-o manieră similară cu cele enumerate mai sus:

    1. --port sau -P - pentru a specifica portul pentru conectarea la serverul MySQL;
    2. —protocol — protocolul prin care se va realiza conexiunea (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 „conducte” sau „conducte” denumite pentru conexiuni;
    5. --shared-memory-base-name - acest parametru va fi 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 aceasta. În realitate, sunt mult mai mulți.

    Dacă din anumite motive opțiunea standard care indică gazda, utilizatorul și parola nu vă convine, atunci pentru a afla lista completă a parametrilor de conexiune vă vor fi utile următoarele informații - https://dev.mysql.com/doc/ refman/5.7/en/ connecting.html

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

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

    CREATE DATABASE nume_bază de date;

    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 utiliza, va trebui să ieșiți din el sau să deschideți o nouă consolă de server.

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

    mysqladmin create database_name;

    Apropo, folosind utilitarul mysqladmin nu numai că poți crea și șterge baze de date fără a te autentifica în consola MySQL, ci și să operezi configurația serverului, procesele MySQL, să gestionezi replicările, să faci ping servere și să faci multe alte lucruri 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”@”IP_gazdă_sau_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 al mașinii de lucru din rețea este potrivit).

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

    Trebuie avut în vedere că în acest caz localhost nu este inclus în lista de adrese specificată folosind %, deoarece localhost denotă o conexiune prin intermediul unui socket UNIX în loc de standardul TCP/IP. Acestea. Dacă utilizatorul MySQL creat se va conecta la server nu folosind socket-uri, ci folosind un alt protocol specificat la conectarea la serverul MySQL din 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 să setăm drepturile utilizatorului pentru a efectua orice acțiune cu baza noastră de date nou creată cu următoarea comandă:

    ACORDĂ TOATE PRIVILEGIILE PE numele_bază de date.* CĂTRE „nume_utilizator”@”IP_gazdă_sau_mașină”;

    Opțiune TOATE, după cum înțelegeți, indică doar că utilizatorului i se permite orice acțiune cu o anumită bază de date. Lista completă a drepturilor care pot fi acordate utilizatorilor folosind comanda ACORDA, poate fi găsit aici (deși descrierea parametrilor este în 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 apelarea comenzii, despărțiți prin virgule.

    Dacă doriți să creați un superutilizator, de ex. are 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 *.* „nume_utilizator”@”IP_gazdă_sau_mașină”;

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

    PRIVILEGII FLUSH;

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

    REVOCA TOATE PRIVILEGIILE PE *.* DE LA „nume_utilizator”@”host_or_machine_IP”;

    Ș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 de utilizator MySQL, atunci pentru a face acest lucru, trebuie doar să rulați următoarele comenzi în MySQL Shell:

    SETARE PAROLA PENTRU "nume_utilizator"@"host_or_machine_IP" = PAROLA("noua_parola"); 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ă o folosești :)

    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=PASSWORD("parolă") 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-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 mai vechi de MySQL, unde acest câmp exista în tabelul de utilizatori. Prin urmare, pentru a fi sigur, folosește prima mea opțiune, cu excepția cazului în care, desigur, ești forțat să lucrezi cu software antediluvian fără posibilitatea de a actualiza versiunile :)

    Aceasta completează crearea unui nou utilizator MySQL și revizuirea acțiunilor cu drepturile și parolele sale. Sa trecem peste.

    Selectarea 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 cu baza de date în sine și cu datele stocate în ea.

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

    USE numele_bază de date;

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

    Mysql --user=nume_utilizator --parolă=parolă_utilizator --host=MySQL_server_host_or_IP --database=database_name

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

    mysql -u nume_utilizator -h host_sau_IP_MySQL_server_database_name -p

    Asta e tot. Cred că nu veți avea dificultăți în conectarea la baza de date MySQL prin consolă acum :)

    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 cazul meu, despre care am vorbit la începutul articol).

    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, mai întâi vom învăța cum să efectuăm operațiuni CRUD tipice cu tabele.

    Operațiunile CRUD, dacă cineva nu cunoaște, sunt operațiuni pentru crearea, citirea, actualizarea și ștergerea 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 cu tabele trebuie mai întâi să vă conectați la baza de date MySQL folosind comanda UTILIZARE.

    Deci, primul lucru 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(dimensiunea_câmp_2), INDEX(nume_câmp_1), ...);

    După cum înțelegeți, pot exista câte câmpuri doriți, tipurile lor pot fi diferite, precum și prezența indecșilor și a cheilor sunt opționale.

    Apropo, dacă doriți să copiați un tabel într-o altă bază de date sau pur și simplu 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 tabelului și datele acesteia împreună cu indecșii și declanșatoarele de tabel. Dacă aveți nevoie doar de date și structură (numele câmpurilor și tipurile lor de date), atunci vă puteți descurca 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. Pentru a face acest lucru, există următoarele patru comenzi:

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

    Prima afișează informații despre câmpurile tabelului bazei de date în formă tabelară către consola MySQL, indicând numele câmpului, tipul de date, prezența cheilor, valoarea implicită etc. Când utilizați un cuvânt cheie DEPLIN puteți obține informații extinse, inclusiv privilegii pentru fiecare câmp pentru utilizatorul curent, comentarii pentru fiecare dintre ele și valoarea de codificare.

    A doua și a treia comandă sunt pur și simplu forme scurtate ale primei comenzi fără informații extinse. De ce a fost nevoie să le produc - nici nu-mi pot imagina... Este așa ca să existe ceva de întrebat în timpul interviurilor de angajare? 🙂

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

    Operațiunea de actualizare în cazul tabelelor reprezintă 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 de tabel, a doua vă permite să-l adăugați, a treia vă permite să redenumiți un câmp și să schimbați simultan tipul de date stocate în el, iar a patra vă permite să schimbați doar tipul de date .

    Același lucru se poate face cu indici de tabel folosind comenzi în mare măsură 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 nou nume_index; ALTER TABLE nume_tabel DROP INDEX nume_index;

    Următoarele comenzi vă permit să adăugați, să redenumiți și să eliminați indecși din tabelele MySQL prin linia de comandă. Pentru a adăuga și elimina indecși, apropo, există o altă opțiune alternativă pentru utilizarea comenzilor independente, mai degrabă decât a face acest lucru prin 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 date sunt echivalente cu prima și ultima din blocul anterior. Din păcate, nu există o comandă separată pentru a redenumi un index. Și pentru a schimba tipul de index, din păcate, nu există nicio cale în MySQL. Singura soluție este să ștergeți indexul și să îl creați din nou cu tipul dorit.

    Ei bine, în sfârșit, am ajuns la ultima operațiune din blocul CRUD - ștergere. Eliminarea tabelelor MySQL dintr-o bază de date este foarte ușoară. Doar rulați următoarea comandă în consola MySQL:

    DROP TABLE nume_tabel;

    Uneori, în practică, apar situații care fac imposibilă ștergerea unui tabel sau modificarea structurii acestuia. De regulă, acest lucru se datorează utilizării cheilor străine în baza de date pentru a lega tabele între ele. Eu personal m-am confruntat cu această situație de mai multe ori, despre care am vorbit la începutul articolului.

    Prin urmare, dacă, la ștergerea sau actualizarea unei structuri de tabel sau a datelor acesteia, 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, să efectuăm operația necesară și apoi să activăm din nou verificarea, deoarece este cu adevărat necesar și vă permite să vă protejați împotriva încălcărilor integrității datelor în majoritatea cazurilor.

    De fapt, 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ătorii pași în consola MySQL:

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

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

    ALTER TABLE nume_tabel DROP FOREIGN KEY nume_cheie_străină;

    Pentru a afla numele cheii străine MySQL a unui tabel, utilizați comanda MySQL deja familiară AFIȚI CREATE TABLE.

    Lucrul cu datele din tabelul MySQL prin linia de comandă

    Pentru tabelele CRUD, ne-am uitat la 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 oameni cunosc aceste comenzi și le-au folosit în practică, dar încă vă voi aminti de ele din nou.

    Operațiile CRUD pentru lucrul cu datele din tabelul MySQL vor arăta astfel:

    INSERT INTO table_name (câmp1, câmp2, ...) VALUES (câmp_1 valoare, câmp_2 valoare, ...); SELECT field1, field2, ... FROM table_name; UPDATE table_name SET field1 = field_1 value, field2 = field_2 value; DELETE FROM table_name WHERE câmp1 = câmp_1 valoare;

    Comenzile de mai sus corespund operațiunilor de creare, citire, actualizare și ștergere a datelor din tabelele bazei de date MySQL. Când utilizați SELECT și UPDATE, este, de asemenea, posibil să utilizați o clauză WHERE de calificare, care poate fi utilizată pentru a specifica selecția datelor în același mod cum este descris atunci când utilizați 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 multe dintre ele când se regăsesc date folosind SELECT: aici există UNION pentru combinarea rezultatelor mai multor interogări și diferite tipuri de JOIN. Listarea tuturor este foarte lungă și va fi plictisitor atât pentru mine, cât și pentru tine să citim asta.

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

    Deci nu ne vom opri asupra acestui bloc deocamdată.

    Dacă trebuie să ștergeți toate datele dintr-un 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 în cazul în care există tabele MySQL înrudite, ceea ce poate împiedica efectuarea acțiunii necesare.

    Un alt punct interesant de remarcat aici este că această comandă nu resetează contorul AUTO_INCREMENT, despre care se știe că este folosit 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 o valoare de identificare de 1201. În principiu, este în regulă. Dacă ați setat o dimensiune suficientă pentru acest câmp, atunci nu veți fi în pericol de a depăși valorile în curând.

    Cu toate acestea, în unele cazuri, atunci când codul aplicației are un fel de legare la valoarea unui câmp, acest comportament poate cauza neplăceri.

    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 de 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 o bază de date MySQL prin linia de comandă

    Ciclul de viață al lucrului cu o bază de date se apropie de sfârșit și se termină destul de logic - prin ștergerea acesteia. Pentru a efectua această operație î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 nume_bază de date;

    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 database_name;

    Când apelați comanda, în consola serverului apare 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ă ștergerea unei baze de date MySQL este o idee foarte proastă. Se solicită și confirmarea acțiunii. Daca esti de acord, scrie 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 „nume_bază de date” a fost eliminată

    Asta este :)

    Cum să ștergeți un utilizator MySQL din consolă

    Acum aceeași soartă va avea și utilizatorului MySQL pe care l-am creat pentru a vă arăta cum se face. Dar mai întâi, 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_utilizator”@”adresă_gazdă sau_IP”; DROP USER „nume_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, puteți folosi următoarea comandă, care afișează o listă cu toți utilizatorii existente pe serverul MySQL actual:

    SELECTează utilizatorul din mysql.user;

    Această opțiune de comandă va afișa 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ă:

    SELECT User, Host, Grant_priv FROM mysql.user;

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

    Nu fi confuz că aceasta este documentație pentru SGBD MariaDB. Din punct de vedere tehnic, acesta este același cu MySQL, deoarece... MariaDB este doar ramura sau furca sa din engleza „furcă” - branch, fork.

    De ce a fost făcut - din nou, habar n-am 🙂 Poate să declar cu mândrie tuturor că „am propriul meu SGBD”?.. Dar, să fiu 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și din ea...

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

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

    Și asta este tot 🙂 Deci data viitoare nu mai trebuie să creați mai multe console și să le redeschideți de fiecare dată când trebuie să părăsiți MySQL din consolă și să îl accesați din nou 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.

    Vorbind despre aplicarea practică a informațiilor prezentate în articol, aș dori să vă reamintesc că constructele de mai sus pot fi folosite nu numai în linia de comandă MySQL și consola serverului, ci și în consola phpMyAdmin și alte programe care oferă o asemenea oportunitate.

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

    Scrieți în comentarii despre ce comenzi folosiți cel mai des. Sau poate știi alte trucuri. În orice caz, împărtășește-ți părerea altora și menține conversația în comentariile altor utilizatori.

    Vă promit că în acest proces veți învăța o mulțime de lucruri noi, la fel ca și eu când scriu fiecare dintre articolele mele :)

    Asta e tot! Succes si ne revedem :)

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

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

    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 [(niciuna)]>

    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.

    Instalarea si administrarea serverului MySQL.

    Instalarea și prima lansare a MySQL.

    Instalare.

    Instalarea MySQL este destul de simplă. Mai întâi trebuie să descărcați și să despachetați sursele (nu cred că merită să scrieți cum să faceți acest lucru).Le puteți găsi pe site-ul MySQL în secțiune - pentru fiecare gust și pentru orice sistem de operare, deoarece MySQL funcționează pe aproape toate platformele.

    Dacă lucrați pe o platformă Unix (în special, voi da exemple pentru Linux, care sunt ușor diferite pentru alte platforme Unix), trebuie să urmați acești pași:

    shell> gunzip mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s mysql-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db shell> bin/safe_mysqld &

    Trebuie să despachetați sursele în directorul /usr/local, deoarece acest director este specificat în scripturile de configurare și să creați un link simbolic pentru directorul mysql - acest lucru se face deoarece acest director este specificat în aceleași scripturi. Trebuie să editați scripturile mysql_install_db și safe_mysqld în legătură cu sistemul dvs., pentru ca acestea să înceapă să funcționeze, în special, corectați calea pentru a indica locația mysqld și a bazelor de date. Pentru a porni demonul mysqld, trebuie să mergeți în directorul /usr/local/mysql/bin și să rulați scriptul safe_mysql în fundal. Dacă nu primiți niciun mesaj, acest lucru este deja bun, înseamnă că totul a mers bine. apare un mesaj de eroare, înseamnă că - este ceva în neregulă cu scripturile. Puteți configura serverul mysql să pornească la pornirea computerului. Pentru a face acest lucru, trebuie să plasați pornirea safe_mysql într-unul dintre fișierele de inițializare a sistemului (diferă în funcție de versiunea de Linux). Pentru Linux Slakware, trebuie să adăugați următoarele în fișierul /etc/rc.d/rc.local:

    /usr/local/mysql/bin/safe_mysqld &

    Cât despre Windows, de care sunt un fan, instalarea este aproape fără probleme.Despachetați arhiva zip, rulați fișierul exe și apoi totul funcționează de la sine.De obicei este instalat în directorul c:mysql. Pe Windows NT, MySQL este instalat ca serviciu și puteți specifica metoda de pornire - manuală sau automată (Start-Setări-Panou de control-Servicii-MySQL-Startup).

    Lansați MySQL.

    Administrarea serverului se realizează de obicei din linia de comandă.Am scris deja despre Linux, iar pe Windows 95/98, deschide o sesiune DOS și rulează următoarele comenzi:

    cd mysqlbin mysqlbin>mysqld --autonom

    Această comandă va porni demonul mysql în fundal.Windows 95/98 nu permite rularea mysqld ca serviciu.Lipsa mesajelor este un semn bun, înseamnă că totul este în ordine.

    Când porniți mysqld, puteți specifica următoarele opțiuni:

    -?, --AjutorReferinţă
    -b, --basedir=Calea către directorul în care este instalat mysql
    -h, --datadirCalea către directorul în care sunt stocate bazele de date.
    -l, --log=Numele jurnalului de tranzacții
    -L, --limbaj=Limba implicită (de obicei engleză).
    -P, --port=Port de conectare.
    --skip-grant-tablesIgnorați tabelele de privilegii. Acest lucru oferă oricui acces COMPLET la toate tabelele. Utilizatorii obișnuiți nu ar trebui să aibă permisiunea de a rula mysqld.
    --skip-name-resolveVă permite să acordați acces numai acelor gazde ale căror adrese IP sunt specificate în tabelele de privilegii. Folosit pentru un nivel mai ridicat de protecție.
    --skip-networkingUtilizați conexiuni numai prin interfața localhost.
    -V, --versiuneaAfișează informații despre versiune.

    Acum puteți încerca să vă conectați la server. Pentru a face acest lucru, utilizați comanda mysql. Inițial, există un singur utilizator căruia i se acordă drepturi de conectare - rădăcină, care nu are o parolă. Primul lucru de făcut este să vă conectați ca root și să setați o parolă pentru aceasta. Comanda mysql poate folosi următoarele opțiuni:

    Notă. Comenzile mysqld și mysql au alte opțiuni, dar nu prezintă un interes deosebit în acest moment.

    După setarea parolei de root, trebuie să reporniți serverul cu comanda mysqladmin reload pentru ca modificările să aibă efect. După aceea, puteți încerca să vă conectați din nou:

    mysqlbinmysql -u root -p mysql Introduceți parola:*******
    Dacă primiți promptul mysql monitor, atunci totul funcționează corect. Puteți începe configurarea tabelelor de privilegii, introducerea de noi utilizatori, crearea de baze de date și tabele, adică de a face tot ce se numește administrare. Mai multe despre toate acestea mai jos.

    Sistem de privilegii și securitate în MySQL.

    baza de date mysql și tabelele de privilegii.

    Deci, v-ați conectat cu succes în baza de date mysql, care este folosită pentru a administra serverul. Ce este acolo? Și există 5 tabele aici, care nu sunt diferite de alte tabele de baze de date, cu excepția faptului că aceste tabele sunt folosite pentru a oferi acces la date și tabele din bazele de date în ele către utilizatori. Să luăm în considerare fiecare dintre ele.

    Introduceți următoarea comandă care va afișa tabelele din baza de date mysql:

    mysql>arata tabele;
    Tables_in_mysql
    coloane_priv
    db
    gazdă
    tables_priv
    utilizator

    Să ne uităm pe scurt la funcțiile fiecărui tabel:

    • Utilizator
      Stabilește dacă utilizatorul care încearcă să se conecteze la server are permisiunea de a face acest lucru. Conține numele de utilizator, parola și privilegiile. Dacă introduceți comanda arată coloanele de la utilizator;, atunci obținem următoarele:
      CampTipNulCheieMod implicitSuplimentar
      Gazdăchar(60) PRI
      Utilizatorchar (16) PRI
      Parolachar(8)
      Select_privchar(1) N
      Insert_privchar(1) N
      Update_privchar(1) N
      Delete_privchar(1) N
      Create_privchar(1) N
      Drop_privchar(1) N
      Reîncărcare_privchar(1) N
      Shutdown_privchar(1) N
      Process_privchar(1) N
      File_privchar(1) N

      Inițial, acest tabel conține utilizatorul root cu parola pe care ați setat-o ​​și numele gazdei „%”. Implicit, root se poate autentifica de la orice gazdă, are privilegii complete și acces la toate bazele de date. Tabelul conține și o intrare pentru utilizator. „%”, care ar trebui eliminat imediat, deoarece permite accesul oricărui utilizator.

      șterge de la utilizator unde user="%";

      Pentru a adăuga un utilizator nou, urmați acești pași:

      inserați în valorile utilizator (gazdă, utilizator, parolă) ("%.domain.com","john",parolă("df456")); inserați în valorile utilizator (gazdă, utilizator, parolă) ("localhost, "mary", parola ("bucatarie"); selecteaza gazda, utilizatorul, parola de la utilizator;
      GazdăUtilizatorParola
      % rădăcină456g879k34df9
      %.domain.comIoan657t234d980hg6
      gazdă localămaria234d76gh88rt9

      Explicatii:

      1. Comanda de inserare inserează date în tabel, nu uitați să terminați comenzile cu „;”.
      2. Când introduceți o parolă, utilizați funcția password(), altfel parola nu va funcționa!
      3. Toate parolele sunt criptate de mysql, deci vezi abracadars in campul Parola.Acest lucru se face din motive de securitate.
      4. Nu este o practică bună să atribuiți privilegii utilizatorilor în tabelul de utilizatori, deoarece în acest caz acestea sunt globale și se aplică tuturor bazelor de date. Acordați privilegii fiecărui utilizator unei anumite baze de date din tabelul db, despre care se va discuta mai târziu .
      5.Când specificați un nume de gazdă pentru autentificare prin rețea, se recomandă să specificați în mod explicit numele complet de gazdă, și nu „%”. În exemplul de mai sus, utilizatorului john i se permite să se conecteze la server de pe toate mașinile din domeniul domain.com. Puteți, de asemenea, să specificați adrese IP ale mașinii și să mascați subrețelele pentru o mai mare securitate.


    • Determină ce baze de date pot fi accesate de către ce utilizatori și de la ce gazde. În acest tabel, puteți acorda fiecărui utilizator acces la bazele de date și alocați privilegii. Dacă executați comanda arată coloanele din db; obținem următoarele:
      CampTipNul Mod implicitSuplimentar
      Gazdăchar(60) PRI
      Dbchar(32) PRI
      Utilizatorchar (16) PRI
      Select_privchar(1) N
      Insert_privchar(1) N
      Update_privchar(1) N
      Delete_privchar(1) N
      Create_privchar(1) N
      Drop_privchar(1) N

      În mod implicit, toate privilegiile sunt setate la „N”. De exemplu, să dăm utilizatorului John acces la baza de date a bibliotecii și să îi acordăm privilegii de selectare, inserare și actualizare (o descriere a comenzilor principale mysql va fi dată într-o secțiune separată, acum scopul meu este să arăt cum funcționează tabelele privilegiile).

      inserați în db (gazdă, utilizator, db, select_priv, insert_priv, update_priv) valori ("%.domain.com","john","biblioteca","Y","Y","Y");

      Privilegiile setate în tabelul db se aplică numai bazei de date a bibliotecii. Dacă setați aceste privilegii în tabelul utilizator, atunci ele se vor aplica altor baze de date, chiar dacă accesul la ele nu este setat în mod explicit.

    • Gazdă

      Tabelul gazdă este folosit pentru a extinde intervalul de acces în tabelul db. De exemplu, dacă accesul la orice bază de date urmează să fie furnizat mai multor gazde, atunci coloana gazdă din tabelul db trebuie lăsată necompletată, iar numele gazdelor trebuie completate în tabelul gazdei. Hai să executăm comanda arată coloanele de la gazdă;

      CampTipNulCheieMod implicitSuplimentar
      Gazdăchar(60) PRI
      Dbchar(32) PRI
      Select_privchar(1) N
      Insert_privchar(1) N
      Update_privchar(1) N
      Delete_privchar(1) N
      Create_privchar(1) N
      Drop_privchar(1) N

    După cum se poate vedea din tabel, aici puteți seta și privilegii pentru accesarea bazei de date.De obicei, acestea sunt rareori utilizate inutil.Toate privilegiile de acces trebuie setate în tabelul db pentru fiecare utilizator, iar în tabelul gazdă doar lista gazda nume. Serverul citește toate tabelele, verifică numele de utilizator, parola, numele gazdei, numele bazei de date, privilegiile. Dacă în tabelul db privilegiile select, insert sunt setate la „Y”, iar în tabelul gazdă la „N”, atunci în la final, utilizatorul va primi în continuare „Y”. Pentru a crea confuzie, este mai bine să atribuiți privilegii în tabelul db.

    Aceste 3 tabele sunt principalele.În noile versiuni de MySQL, începând cu 3.22, au mai fost adăugate 2 tabele - tables_priv și columns_priv, care vă permit să setați drepturi de acces la un anumit tabel din baza de date și chiar la o anumită coloană. Funcționează ca tabelul db, doar că se referă la mese și difuzoare. De asemenea, începând cu versiunea 3.22, puteți utiliza comanda GRANT pentru a oferi acces la baze de date, tabele și coloane de tabel, eliminând necesitatea de a modifica manual tabelele db, tables_priv și columns_priv. Comanda GRANT va fi discutată în detaliu în secțiunea secțiunile următoare.

    Privilegii acordate de MySQL.

    Privilegiu Coloană Unde este folosit?
    Selectați Select_privMese
    introduce Insert_privMese
    Actualizați Update_privMese
    șterge Delete_privMese
    index Index_privMese
    modifica Alter_privMese
    crea Create_privDB, tabele, indici
    cădere brusca Drop_privDB sau tabele
    acorda Grant_privDB sau tabele
    referințe Referințe_privDB sau tabele
    reîncărcați Reîncărcare_privadministrarea serverului
    închide Shutdown_privadministrarea serverului
    proces Process_privadministrarea serverului
    fişier File_privacces la fișierele de pe server

    Selectați-folosit pentru a prelua informații din tabele Select poate fi folosit și fără permisiune pentru a accesa orice bază de date, de exemplu, ca calculator.

    Introduce-folosit pentru a introduce informații într-un tabel. De exemplu:

    Șterge-folosit pentru a elimina informații din tabele.

    Crea-vă permite să creați baze de date și tabele în ele. Exemple:

    mysql>mysqladmin -u john -ptest create mydb //Creează o bază de date goală. mysql>utilizați mydb; Baza de date schimbată. creați monitorizarea tabelului (id int(5) nu nul auto_increment, first_name varchar(15) not null, last_name varchar(20) not null, adresa varchar(80) null, primary key (id), key(last_name));

    cădere brusca-folosit pentru a șterge tabele și baze de date.

    Acorda-permite unui utilizator să acorde altor utilizatori privilegii pe care le are el însuși.Doi utilizatori cu privilegii diferite și privilegii GRANT își pot combina permisiunile.

    Index-permite utilizatorului să creeze și să șteargă indecși.

    Fişier-un utilizator cu acest drept poate executa comenzi LOAD DATA INFILE și SELECT...INTO OUTFILE și poate citi și scrie orice fișier pe serverul MySQL.

    Ultimele 3 privilegii sunt folosite pentru a administra serverul din comanda mysqladmin.

    utilizatori speciali MySQL.

    Există 3 utilizatori speciali în MySQL: monty, admin și dummy.

    • monty

      Superutilizator. Se poate conecta la server fie de la gazda locală, fie de la orice gazdă din rețea. Are acces la toate bazele de date și toate privilegiile, dar dacă root se poate conecta pentru prima dată fără o parolă, monty trebuie să folosească o parolă și trebuie să fie a adăugat manual privilegiile tabelelor.

      Trebuie remarcat faptul că trebuie să introduceți date atât pentru localhost, cât și pentru „%”, adică pentru orice gazdă din rețea.

    • admin

      Un utilizator care se poate conecta la server de la localhost fără o parolă și căruia i se atribuie privilegii administrative Reîncărcați și procesați utilizatorul .admin poate folosi comenzi mysqladmin reload, mysqladmin refresh și mysqladmin flush-*,și lista de procese mysqladmin.

      Administratorul nu are acces la baze de date.Privilegiile de acces la anumite baze de date trebuie atribuite individual, fie în tabelul db, fie cu comanda GRANT.

    • manechin

      Un utilizator care se poate autentifica la server fără o parolă, dar numai de la gazda locală. Toate privilegiile globale sunt setate la „N”, cu excepția „UTILIZARE”, care permite fiintei să creeze utilizatori fără privilegii. Drepturile de acces la baza de date trebuie setate de către root .

    Crearea si modificarea bazelor de date si a tabelelor in MySQL.

    Crearea bazelor de date.

    Crearea unei baze de date în MySQL se face folosind utilitarul mysqladmin.Initial exista doar o baza de date mysql pentru administrator si o baza de date de testare, care poate fi autentificata de orice utilizator si este goala implicit.Exemplul de mai jos ilustreaza crearea unei baze de date.

    Sau, fiind într-o altă bază de date, de exemplu în mysql, introduceți comanda:

    mysql>use data1 Bază de date schimbată.

    Acum puteți crea tabele și puteți introduce informații.

    Tipuri de date în MySQL.

    Înainte de a crea tabele, trebuie să fii familiarizat cu tipurile de date acceptate de MySQL. Toate sunt prezentate în tabelul de mai jos:

    BIGINT [(lungime)]8 octeți întreg
    BLOBObiect binar (lungime maximă 65535 octeți)
    CHAR(NUM)Snur de lungime fixă ​​(1DATAStochează informații despre dată. Utilizează formatul „AAAA-LL-ZZ”. Poate fi modificat ca șir sau număr. AAAA-LL-ZZ ("- " poate fi ORICE non-cifră) AAA-LL-ZZ ("- " poate fi ORICE non-cifră) AAAMMDD AAAMM Intervalul pentru acest tip de date este de la 0000-00-00 la 9999-12 -31. Spre deosebire de TIMESTAMP, DATE acceptă ani și ca două cifre de la 0000 la 0099. Acest lucru nu este foarte util în majoritatea cazurilor. Folosiți ani de patru cifre în câmpurile DATE. Tipul DATE are 4 octeți.
    DATETIMECombinând tipurile DATE și TIME. Tipul DATETIME este identic cu tipul TIMESTAMP cu următoarele excepții: Când o înregistrare este inserată într-un tabel care conține câmpuri de tip DATETIME, câmpul DATETIME nu este modificat. Intervalul pentru un câmp de tip DATETIME este: „0000-01-01 00:00:00” - „9999-12-31 23:59:59” atunci când este utilizat într-un context de șir și „000000000000000” - „99991231235959” atunci când este utilizat într-un context numeric. Tipul DATETIME are 8 octeți.
    DECIMAL (lungime, dec)Număr zecimal cu virgulă mobilă.
    DUBLĂ [(lungime, dec)]Un număr de precizie dublă (4 sau 8 octeți) cu o lungime maximă și un număr fix de zecimale.
    FLOAT [(precizie)]Număr în virgulă mobilă. FLOAT(4) și FLOAT cu precizie unică. FLOAT(8) oferă o precizie dublă.
    FLOAT [(lungime,zecimale)]Un singur număr de precizie cu o lungime maximă și un număr fix de zecimale (4 octeți).
    INT [(lungime)]Număr întreg (4 octeți).
    INTEGER [(lungime)]întreg de 4 octeți
    LONGBLOBObiect binar cu o lungime maximă de 2**32 de octeți.
    MEDIUMBLOBUn obiect binar cu o lungime maximă de 16777216 octeți.
    MEDIUMINT [(lungime)]Număr întreg (3 octeți).
    REAL [(lungime, dec)]Identic cu DOUBLE (8 octeți).
    SMALLINT [(lungime)]Număr întreg (2 octeți).
    TINYBLOBUn obiect binar cu o lungime maximă de 255 de octeți.
    TINYINT [(lungime)]Număr întreg (1 octet).
    VARCHAR(NUM)Șir de lungime variabilă (1TIMPStochează informații despre timp. Utilizează formatul „HH:MM:SS”. Poate fi folosit ca șir sau număr. Tipul MySQL TIME înțelege următoarea sintaxă. HH:MM:DD HHMMDD HHMM HH TIME Datele au o lungime de 3 octeți.
    TIMESTAMP(NUM)Se modifică automat la inserare/actualizare. Are formatul YYMMDDHHMMSS sau YYYYMMDDHHMMSS. Puteți modifica câmpul TIMESTAMP atunci când efectuați o INSERT. Acest lucru este util atunci când doriți să setați o dată/oră personalizată pentru înregistrare. În timpul modificărilor, nu trebuie să specificați o valoare pentru câmpul TIMESTAMP sau să specificați NULL ca valoare de inserat. În caz contrar, veți obține o valoare nevalidă pentru acest câmp. Când utilizați mysql cu ODBC și Access, ar trebui să utilizați valoarea 14 pentru NUM, deoarece acest lucru forțează MySQL să folosească întotdeauna patru cifre în ani. O valoare de 12 va forța MySQL să folosească două cifre în an. Valoarea implicită este 14. Rețineți că în cazul tabelelor cu mai multe câmpuri TIMESTAMP, doar primul astfel de câmp va fi actualizat automat.

    Crearea si modificarea tabelelor.

    Să creăm tabelul clienți în baza de date data1:

    mysql>use data1 Bază de date schimbată. mysql>creează clienți tabel (emp_id int(4) nu nul auto_increment, emp_name varchar(10) nu nul, emp_lname varchar(15) nu nul, adresa varchar(60) nu nulă, telefon int(10), cheie primară (emp_id) );

    Am creat un tabel gol. Puteți introduce date în el în mai multe moduri:
    a) manual, folosind comanda Introdu in;
    b) încărcați datele dintr-un fișier text, ceea ce este de preferat, mai ales dacă trebuie să introduceți câteva mii de înregistrări.Sintaxa acestei comenzi va fi descrisă mai târziu.
    c) utilizați utilitarul mysqlimport pentru a încărca și date dintr-un fișier text.

    Exemplu de introducere manuală a datelor:

    Cu privire la increment autoîn coloană emp_id, aceasta înseamnă că valoarea numerică a acestei coloane va crește automat cu câte unul cu fiecare intrare nouă, adică dacă am introdus valoarea 1001, atunci următoarea va fi 1002 etc. Valoarea dintr-o astfel de coloană se introduce o dată pentru setați punctul de pornire și apoi serverul va înlocui el însuși valorile necesare.

    Sintaxa comenzii LOAD DATA INFILE.

    DATE INFILE „fișier_nume.txt” ÎN TABEL TBL_name ÎNCHIS DE „”] ] [(col_name,...)]

    Să presupunem că există un fișier text 123.txt care conține 2000 de înregistrări care trebuie introduse într-un tabel.Trebuie să creăm un tabel care să aibă aceeași structură și același număr de câmpuri ca fișierul (precum și tipuri de date adecvate). Să presupunem că câmpurile din fișier sunt separate prin virgule. În plus, fișierul trebuie să fie în baza de date dorită. Introduceți următoarea comandă:

    ÎNCĂRCARE DATE INFILE „123.txt” în câmpurile clienților tabelului terminate cu ",";

    Asta e tot. Datele din fișier sunt plasate într-un tabel.

    Pentru a modifica tabelele și datele din ele, utilizați comenzile actualizați și modificați masa. Să luăm în considerare acțiunea lor folosind tabelul clienți ca exemplu:

    Clienți
    emp_idnume_empemp_lnameabordaretelefon
    1001 Ioancadru de mersNew York1235468798
    1002 FacturăSmithChicago7650945237
    1003 JackNicolsonDallas9874325097

    Exemplu de acțiune de comandă schimba masa:

    Poti verifica singur :)

    Modificarea datelor din tabele se face folosind comanda Actualizați.De exemplu, să luăm aceiași cumpărători de masă.

    mysql>update buyers set address="Seattle" unde emp_lname="Smith";

    Comenzile sunt, de asemenea, folosite pentru a modifica tabele Aruncă și șterge.

    Șterge- șterge un rând din tabel. De exemplu, dacă introduceți comanda
    ștergeți de la cumpărători unde emp_id="1002"

    Linia pentru Bill Smith va fi eliminată.

    cădere brusca-dacă este folosit în Alter table, elimină o coloană din tabel.

    Echipă cădere brusca De asemenea, este folosit pentru a șterge tabele și baze de date.Ar trebui folosit cu atenție, deoarece orice ștergere este ireversibilă; datele pot fi restaurate doar dintr-o copie de rezervă.

    Probleme comune și rezolvarea lor.

    Cea mai frecventă problemă este mesajul Accesul interzis utilizatorlui... Dacă acesta este un utilizator obișnuit, atunci administratorul se poate ocupa de acest lucru, dar dacă administratorul primește un astfel de mesaj, atunci aceasta este deja o problemă. Foarte des, atunci când setați o parolă pentru root, administratorul uită să folosească funcția parola(), dar introduce pur și simplu:

    actualizare user set password="mamamia" unde user="root";

    După aceasta, când încearcă să intre în baza de date, primește mesajul Acces refuzat.Această parolă nu va fi citită.Trebuie să introduceți corect:

    update user set password=parola("mamamia") unde user="root";

    Acesta este un pas foarte important și trebuie să fii atent.Singura cale de ieșire în Windows este să dezinstalezi serverul și să instalezi unul nou, din fericire încă nu a fost configurat nimic.

    Dacă un utilizator se confruntă cu această problemă, motivul este probabil că tabelele de privilegii nu sunt configurate corect, în primul rând aceeași setare de parolă sau intrările din tabelele db și gazdă sunt incorecte. Să ne uităm la asta folosind un exemplu simplu:

    Utilizator
    Gazdă%.domain.com
    UtilizatorJerry
    Parola378b243hk8796
    Select_privY
    Db
    Gazdă%.domain.com
    Dbdate1
    UtilizatorJerry
    Insert_privY
    Select_privY
    Update_privY
    Delete_privY
    Tabelele conțin informații pentru utilizatorul Jerry. După cum puteți vedea, Jerry se poate conecta prin rețea de pe orice computer din domeniul domain.com introducând numele și parola lui. Serverul citește tabelul User, determină potrivirea dintre nume și parola, apoi tabelul Db, care indică la ce baze de date li se permite accesul. Dacă totul este corect, Jerry are acces la baza de date data1. În această bază de date, Jerry poate vizualiza informații în tabele, poate plasa date noi acolo, poate modifica conținutul rânduri și șterge rânduri Dacă dorește să creeze un tabel nou, va primi un mesaj Acces refuzat deoarece nu are permisiunea de a crea tabele.

    O nuanță foarte importantă: în tabelul User pentru Jerry este indicată permisiunea Select, care este globală, adică valabilă pentru orice bază de date, chiar dacă nu are acces la ea. De exemplu, dacă Jerry introduce comanda:

    selectați * din data2.authors;

    el va avea acces la acest tabel, deși accesul la baza de date data2 nu este atribuit în tabelul Db. Prin urmare, dacă nu este absolut necesar, nu trebuie să acordați privilegii utilizatorilor în tabelul User, ci faceți acest lucru în tabelul Db pentru fiecare baza de date specifica.

    Să presupunem că Jerry lucrează temporar într-un alt departament, care se află într-un alt domeniu, iar când încearcă să acceseze baza de date, i se refuză accesul, deoarece computerele din acest domeniu nu au voie să acceseze baza de date. În acest caz, dvs. trebuie să faceți următoarele: ștergeți câmpul Gazdă din tabelul Db și introduceți următoarele date în tabelul Gazdă:

    update db set host="" unde user="jerry";
    inserați în gazdă (gazdă,db) valori ("%.domain.com","data1");
    inserați în gazdă (gazdă, db) valori ("monster.domain2.com","data1");

    Nu este nevoie să specificați privilegii în tabelul Gazdă. Principalul lucru este că datele din tabelele de privilegii nu sunt duplicate nicăieri, astfel încât să nu existe contradicții. Datele pentru utilizator - nume și parolă - trebuie alocate în Utilizator tabel, privilegii - în tabelul Db, gazde de la care este permis accesul , în tabelul Host. Dacă introduceți totul cu atenție, nu ar trebui să apară probleme.

    Versiunile MySQL 3.22 și ulterioare au o comandă GRANT foarte bună care vă permite să acordați utilizatorilor acces la baze de date și tabele fără a modifica manual tabelele de privilegii.

    GRANT selectează, inserează actualizare, șterge pe data1.telefon către jerry@%.domain.com identificat prin „parolă”;

    Folosind această comandă, puteți specifica privilegii de acces chiar și pentru anumite coloane din tabel:

    Acordați selectare(id,nume,adresă,telefon),actualizare(adresă,telefon) pe data2.clienți către jerry@%.domain.com identificat prin „parolă”;

    Utilizarea acestei comenzi plasează automat datele în tabelele Db, Tables_priv și Column_priv, eliminând necesitatea modificării manuale.

    Dacă trebuie să revocați un privilegiu de la un utilizator, utilizați comanda REVOKE.

    REVOCA actualizare (adresă, telefon) pe data2.clienți de la jerry@%.domain.com;

    Interogări de bază de date și comanda Select.

    Nu este intenția mea să merg adânc în limbajul SQL, puteți citi despre asta în orice manual SQL Server, MySQL acceptă practic toate comenzile standard ANSI 92 de bază, dar comanda Selectați merită să îi dedice un capitol separat. Comanda Select este folosită pentru a interoga o bază de date pentru a prelua informații din aceasta. Sintaxa comenzii este următoarea:

    SELECTAȚI expresie_selectare,... , ...] AVÂND rânduri complete_unde_definiție] ]

    După cum se poate observa din cele de mai sus, împreună cu comanda Select se folosesc cuvinte cheie, a căror utilizare influențează foarte mult răspunsul serverului. Să luăm în considerare fiecare dintre ele.

    • DISTINCT..

      Omite rândurile în care toate câmpurile selectate sunt identice, adică elimină duplicarea datelor.

    • UNDE.

      O clauză de comandă Select care vă permite să setați predicate care pot fi adevărate sau false pentru orice rând dintr-un tabel. Sunt preluate numai acele rânduri pentru care declarația este adevărată. De exemplu:

      SELECTează u_id,lname de la editorii WHERE oraș ="New York";

      Returnează coloanele u_id și lname din tabelul editorilor pentru care valoarea este în coloana oraș-New York. Acest lucru face posibilă ca interogarea să fie mai specifică.

    • Operatori relaționali.

      Un operator relațional este un simbol matematic care indică un anumit tip de comparație între două valori. Operatori relaționali disponibili în MySQL:

      Egal > Mai mare = Mai mare decât sau egal Nu este egal

      Acești operatori au semnificații standard pentru valorile numerice.

      Să presupunem că doriți să vedeți toți clienții cu o evaluare mai mare de 200. Deoarece 200 este o valoare scalară, ca și valoarea din coloana de evaluare, puteți utiliza un operator relațional pentru a le compara.

      SELECTAȚI * DIN Evaluare Clienți WHERE > 200;

    • Operatori booleeni.

      Operatorii booleeni de bază sunt recunoscuți și în MySQL. Expresiile booleene sunt fie adevărate, fie false, ca și predicate. Operatorii booleeni asociază una sau mai multe valori adevărat/fals și produc o singură valoare adevărată sau falsă. Operatorii booleeni standard recunoscuți în SQL sunt AND, OR și NOT.

      Să presupunem că doriți să vedeți toți clienții din Dallas care au o evaluare peste 200:

      SELECTAȚI * FROM Clienți WHERE oraș = „Dallas” ȘI rating > 200;

      La utilizarea operatorului AND trebuie îndeplinite ambele condiții, adică toți clienții din Dallas a căror rating este mai mare de 200 trebuie să fie selectați.

      Când utilizați operatorul SAU, trebuie îndeplinită una dintre condiții. De exemplu:

      SELECTAȚI * FROM Clienți WHERE oraș = „Dallas” SAU rating > 200;

      În acest caz, toți clienții din Dallas și toți cei cu un rating mai mare de 200 vor fi selectați, chiar dacă nu sunt din Dallas.

      NOT poate fi folosit pentru a inversa valorile booleene. Exemplu de interogare cu NOT:

      SELECTAȚI * FROM Clienți WHERE oraș = „Dallas” OR NOT rating > 200;

      Această interogare va selecta toți clienții din Dallas și toți clienții a căror evaluare este mai mică de 200. În această interogare, operatorul NOT se aplică numai pentru evaluarea expresiei >200. Puteți face o interogare mai complexă:

      SELECTAȚI * FROM Clienți WHERE NOT(oraș = „Dallas” SAU rating > 200);

      În această interogare, NOT se aplică ambelor expresii din paranteze. În acest caz, serverul citește expresiile din paranteze și determină dacă oraș = „Dallas” sau rating > 200 este adevărat. Dacă oricare dintre condiții este adevărată, expresia booleană în interiorul parantezei este adevărat. Totuși, dacă expresia booleană din paranteze este adevărată, predicatul în ansamblu este fals, deoarece NOT convertește adevărat în fals și invers, adică toți clienții care nu se află în Dallas și a căror evaluare este mai mică de 200 vor fi selectați.

    • ÎN.

      Operatorul IN specifică un set de valori în care o anumită valoare poate fi inclusă sau nu. De exemplu, o interogare

      SELECT * FROM Salespeople WHERE oraș = „Barcelona” SAU oraș = „Londra”;

      poate fi rescris mai simplu:

      SELECTAȚI * FROM Vânzători WHERE city IN ("Barcelona", "Londra");

      IN specifică un set de valori folosind numele membrilor setului încadrați în paranteze și despărțiți prin virgule, apoi testează diferitele valori ale celei specificate, încercând să se potrivească cu valorile din set. Dacă se întâmplă acest lucru, atunci predicatul este adevărat. Când setul conține valori numerice mai degrabă decât valori de caractere, ghilimelele simple sunt omise.

    • ÎNTRE.

      Operatorul BETWEEN este similar cu operatorul IN. Spre deosebire de definirea prin numere dintr-o mulțime, așa cum face IN, BETWEEN definește un interval ale cărui valori trebuie să scadă pentru a face predicatul adevărat. Trebuie să introduceți cuvântul cheie BETWEEN cu valoarea de început, cuvântul cheie AND și valoarea finală. Spre deosebire de IN, BETWEEN este sensibil la ordine, iar prima valoare din clauză trebuie să fie prima în ordine alfabetică sau numerică. De exemplu:

      SELECTAȚI * FROM Vânzători WHERE comm BETWETRE .10 AND .12;
      SELECTAȚI * FROM Vânzători WHERE oraș INTRE „Berlin” ȘI „Londra”;

    • CA.

      LIKE este aplicabil numai câmpurilor de tip CHAR sau VARCHAR, cu care este folosit pentru a potrivi subșiruri. Acestea. caută un câmp de caractere pentru a vedea dacă o parte din șirul său se potrivește cu condiția.Folosește caractere metalice ca condiție - caractere speciale care se potrivesc cu ceva. Există două tipuri de metacaractere utilizate cu LIKE:

        Caracterul de subliniere (_) înlocuiește orice caracter.

      • Semnul „%” înlocuiește orice număr de caractere.

      Dacă punem următoarele condiții:

      SELECTAȚI * FROM Clienți WHERE fname LIKE „J%”;

      atunci vor fi selectați toți clienții ale căror nume încep cu J: John, Jerry, James etc.

    • NUMARA.

      O funcție agregată numără valorile dintr-o coloană sau numărul de rânduri dintr-un tabel. Când lucrează cu o coloană, folosește DISTINCT ca argument:

      SELECTARE NUMĂR (SNUM DISTINCT) FROM Comenzi;

      La numărarea rândurilor, sintaxa este:

      SELECTARE NUMĂR (*) FROM Clienți;

    • A SE GRUPA CU.

      Clauza GROUP BY vă permite să definiți un subset de valori dintr-un anumit câmp în termenii unui alt câmp și să aplicați o funcție de agregare subsetului. Acest lucru face posibilă combinarea câmpurilor și a funcțiilor agregate într-o singură clauză SELECT. De exemplu, să presupunem că doriți să găsiți cea mai mare sumă de achiziție primită de fiecare vânzător. Puteți face o interogare separată pentru fiecare dintre ele selectând MAX() din tabel pentru fiecare valoare de câmp. GROUP BY vă va permite să le puneți pe toate într-o singură comandă:

      SELECT snum, MAX (amt) FROM Comenzi GROUP BY snum;

    • AVÂND.

      HAVING specifică criteriile folosite pentru a elimina anumite grupuri din rezultat, la fel ca clauza WHERE pentru rândurile individuale. De exemplu:

      SELECT cid,cname,price,max(price) //max() este, de asemenea, o funcție agregată FROM customers HAVING max(price)>500;

      HAVING funcții similare cu WHERE, dar funcțiile agregate nu pot fi utilizate cu WHERE.

    • COMANDA PENTRU.

      Această comandă ordonează ieșirea interogării în funcție de valorile dintr-un număr de coloane selectate. Mai multe coloane sunt ordonate unul în celălalt, la fel ca în cazul GROUP BY.

    • EXISTĂ.

      Folosit în subinterogări.

      SELECTAȚI cnum, cname, oraș FROM Clienți UNDE EXISTĂ (SELECT * FROM Clienți WHERE oraș = „San Jose”);

      Ea ia o subinterogare ca argument și o evaluează ca adevărată dacă produce vreo ieșire sau ca falsă dacă nu o face.Aceasta o diferențiază de alți operatori de predicat, în care nu poate fi necunoscut. De exemplu, am putea decide dacă să extragem anumite date dintr-un tabel Clienți dacă și numai dacă unul sau mai mulți clienți din acel tabel se află în San Jose.

    • UNIUNE.

      UNION diferă de subinterogări prin faptul că în ea nici două (sau mai multe) interogări nu sunt controlate de o altă interogare. Toate cererile sunt executate independent unele de altele, iar rezultatele lor sunt combinate. De exemplu:

      SELECT snum, sname FROM Vânzători WHERE oraș = "Londra" UNION SELECT cnum, cname FROM Clienți WHERE oraș = "Londra";

      Clauza UNION combină rezultatul a două sau mai multe interogări SQL într-un singur set de rânduri și coloane.

    • DESC,ASC.

      DESC-DESCEDENT, date de ieșire în ordine inversă (alfabetic și numeric). Implicit este ASC.

    Ei bine, asta e totul pe scurt.MySQL acceptă aproape toate comenzile de bază SQL Server, așa că puteți citi mai multe despre comanda SELECT în orice manual de limbaj SQL.

    Utilitare MySQL de bază.

    Distribuția MySQL include următoarele utilitare:

    Mysqladmin

    Un utilitar pentru administrarea serverului. Poate fi folosit de administrator, precum și de unii utilizatori cărora li se acordă anumite privilegii, de exemplu - Reload_priv,Shutdown_priv,Process_privȘi File_priv.Această comandă poate fi folosită pentru a crea baze de date, a schimba parola unui utilizator (un administrator poate schimba parola pentru orice utilizator, dar un utilizator obișnuit o poate schimba doar pe a sa), a reporni și a opri serverul, a vizualiza lista proceselor care rulează pe Server. Mysqladmin acceptă următoarele comenzi:

    Exemplu de utilizare a mysqladmin pentru a schimba parola:

    mysqladmin -u bob parola rawberry

    Trebuie remarcat faptul că, dacă utilizați mysqladmin pentru a seta parola, nu este nevoie să utilizați funcția password() Mysqladmin însuși se ocupă de criptarea parolei.

    mysqlaccess

    Folosit pentru a verifica privilegiile utilizatorului pentru a accesa o anumită bază de date. Sintaxa generala:

    opțiuni mysqlaccess

    Un utilitar util pentru verificarea drepturilor de acces ale unui utilizator dacă primesc un mesaj Acces refuzat atunci când încearcă să se conecteze la o bază de date.

    Opțiuni:

    mysqlshow

    Folosit pentru a arăta cu ce baze de date lucrează serverul, ce tabele conține fiecare bază de date și ce coloane are fiecare tabel. Sintaxă:

    mysqlshow [opțiuni] ]]

    Mysqlshow poate folosi următoarele opțiuni:

    Dacă introduceți mysqlshow fără argumente, toate bazele de date vor fi afișate, dacă specificați numele bazei de date, toate tabelele din aceasta vor fi afișate.

    Mysqldump

    Folosit pentru a crea un dump al conținutului bazei de date (backup). Puteți scrie conținutul bazei de date într-un fișier. Sintaxă:

    mysqldump [opțiuni] ]]

    Mysqldump poate folosi următoarele opțiuni:

    Isamchk

    Folosind acest utilitar, puteți restaura tabele, gestiona tabele și colecta statistici. Sintaxă:

    isamchk [-?adeiqrsvwzIV] [-k #] [-O xxxx=mărime] [-Si] [-Sr #] [-O keybuffer=#]
    [-O readbuffer=#] [-O writebuffer=#] [-O sort key blocks=#] fișiere

    Isamchk este folosit pentru a verifica consistența tabelelor și pentru a depana problemele pe care aceasta le poate cauza. Dacă utilizatorul șterge și adaugă adesea date în tabele, acest utilitar va fi foarte util. Isamchk poate folosi următoarele opțiuni:

    Când utilizați opțiunea -r, trebuie să opriți mysqld. Înainte de a începe, trebuie să mergeți la directorul în care se află tabelul care trebuie verificat sau reparat.

    Isamlog

    Jurnalul tranzacțiilor, utilizat cu opțiunea --log-isam=file_name a demonului mysqld. Fișierul înregistrează toate modificările care apar în baza de date. Poate fi folosit pentru a restaura baza de date. Dacă există o copie de rezervă a bazei de date înainte ca jurnalul isam să fie generat, atunci informațiile pot fi restaurate cu ușurință. Dacă nu există o copie, atunci trebuie să utilizați toate jurnalele de la începutul bazei de date.

    Safe_mysqld

    Script pentru pornirea demonului mysqld în versiunile Unix. Execut la pornirea sistemului. Pentru a porni automat, trebuie să adăugați o intrare la unul dintre fișierele de inițializare a sistemului.

    Creare site | |