Instalarea manuală a MySQL pe Windows. Noțiuni de bază privind administrarea MySQL Utilizarea liniei de comandă Oprirea serverului mysql din linia de comandă




Pentru Win 32, selectați distribuția: Windows (x86, 32-bit), Arhivă zip.

Pentru Win 64: Windows (x86, 64 de biți), Arhivă zip.

După ce faceți clic pe butonul Descărcare, veți vedea un formular de înregistrare, îl puteți sări făcând clic pe linkul de mai jos - Nu, mulțumesc, du-mă doar la descărcări.

2. Creați un folder de instalare. De exemplu . Și despachetați conținutul arhivei în ea, astfel încât folderele bin, date, documente și altele erau în rădăcina folderului de instalare.

3. Să trecem la crearea unui fișier de configurare (my.ini). Luăm ca bază unul dintre fișierele tipice:

  • my-small.ini - potrivit pentru cei care folosesc MySQL din când în când și nu doresc ca serverul să ocupe o mulțime de resurse.
  • my-medium.ini este, de asemenea, o configurație ușoară, dar este potrivită pentru cei care folosesc MySQL în mod regulat (o alegere bună pentru un server web de acasă).
  • my-large.ini și my-huge.ini sunt pentru sistemele utilizate ca server MySQL dedicat. Cu toate acestea, my-large.ini poate fi folosit pentru un server de acasă dacă aveți nevoie de performanță MySQL suplimentară (512 MB de RAM nu este atât de mult în zilele noastre).
  • my-innodb-heavy-4G - pentru servere dedicate cu 4 GB RAM și folosind numai tabele InnoDB.

În acest exemplu, am ales my-medium.ini ca bază. Redenumiți-l în my.ini și plasați-l în rădăcina folderului de instalare ( C:\Program Files\MySQL\MySQL Server 5.5).

Deschideți pentru editare (în Notepad obișnuit) și imediat după linie adăugați doi parametri:

basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data

Rețineți că căile folosesc bare oblice înainte (/) și nu bare oblice inverse (\).

basedir este calea către folderul de instalare.

datadir - calea către folderul de date (unde sunt stocate toate bazele de date). Uneori este logic să puneți datele pe o unitate separată pentru a îmbunătăți performanța sau a asigura fiabilitatea.

Pentru orice eventualitate, iată un fragment din fișierul de configurare, după efectuarea modificărilor:

# Serverul MySQL basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K InnoDB_sort_buffer_size = 8M

4. Următorul pas este să adăugați calea C:\Program Files\MySQL\MySQL Server 5.5\bin la variabila de mediu PATH pentru a facilita pornirea MySQL din linia de comandă. Pentru a face acest lucru, deschideți Proprietăți sistem -> Setări avansate de sistem -> în fila Avansat din partea de jos, butonul „Variabile de mediu…”. În fereastra care se deschide, parcurgeți variabilele de sistem până găsim Calea. Evidențiați această linie și faceți clic pe „Editați...”. La sfârșitul liniei, adăugați calea, păstrând parametrii existenți:

Rețineți că căile sunt separate prin punct și virgulă. Asigurați-vă că includeți un punct și virgulă la începutul și la sfârșitul căii.

5. Înainte de a efectua un test de rulare, deschideți portul de intrare TCP 3306 în firewall-ul Windows:


Dacă aveți un firewall opțional instalat pe sistemul dvs., trebuie să deschideți și portul TCP 3306 pe acel firewall pentru conexiunile de intrare.

6. Acum facem un test de rulare. Într-un prompt de comandă care rulează ca administrator (acest lucru este necesar dacă UAC este activat pe Seven sau Vista), executăm:

mysqld --console

Pe ecran vor fi afișate mai multe rânduri. Dacă lansarea a avut succes, atunci ultima linie va arăta cam așa:

Versiune: "5.5.9-log" socket: "" port: 3306 MySQL Community Server (GPL)

Lăsați această fereastră deschisă și deschideți o altă fereastră de linie de comandă, în care introducem:

MySQL -u root

Dacă conexiunea a avut succes, veți vedea o linie de comandă promptă: mysql>

Să vedem ce baze avem:

arata baze de date;

Punctul și virgulă de la sfârșitul interogării SQL este OBLIGATORIE!

Răspunsul echipei:


Acum suntem în sfârșit convinși că serverul funcționează.

7. Trecând la pasul următor, trebuie să setați parola de administrator MySQL (utilizator rădăcină). În mod implicit, parola nu este setată, iar aceasta ar trebui corectată. În aceeași fereastră MySQL, introduceți următoarele comenzi:

Utilizați mysql UPDATE user SET password = PASSWORD("parola_dvs") WHERE user = "root";

Verificarea rezultatului:

SELECTARE utilizator, gazdă, parolă FROM utilizator;

După cum puteți vedea în captură de ecran, coloana parolei este completată, ceea ce înseamnă că parola a fost setată.

Înainte de a ieși, rulați comanda:

PRIVILEGII FLUSH;

Acum, atunci când vă conectați, trebuie să introduceți o parolă. Pentru a face acest lucru, utilizați comutatorul -p:

MySQL -u root -p

Pentru a opri MySQL, rulați:

mysqladmin -u root -p oprire

8. Ultimul pas este să porniți MySQL ca serviciu de sistem Windows.

Asigurați-vă că nu există procese MySQL active pe sistem.

Pe un prompt de comandă, rulați ca administrator, rulați:

„C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld” --install

Calea către mysqld trebuie specificată în întregime (chiar dacă este în PATH)!

Pentru a porni serviciul, deschideți „Computer Management” și porniți manual serviciul MySQL:


Sau mai ușor prin linia de comandă:

net start mysql

Pentru a elimina un serviciu, mai întâi opriți-l:

net stop mysql

si executa:

„C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld” --remove

Prietenii îmi pun adesea anumite întrebări despre administrație și m-am gândit, de ce să nu scriu astfel de articole-note pe site în loc să explic același lucru de 100 de ori? În plus, aceasta este o oportunitate grozavă, caz în care, să folosești singur o astfel de notă, pentru că tu însuți știi că uneori nu este posibil să ții totul în cap și într-un fel sau altul uneori trebuie să apelezi la o carte de referință, așa că una dintre secțiunile acestui site să devină o astfel de carte. Astăzi vom vorbi despre cum să lucrați cu SGBD-ul MySQL din linia de comandă, da, cineva va spune - „Nakoy? La urma urmei, există phpMyAdmin, ”răspund eu - de ce să risipești resurse prețioase ale serverului instalând tot felul de gunoi precum WebMin, phpMyAdmin etc., dacă totul poate fi făcut cu ușurință cu instrumente de încredere și dovedite. Configurarea de la terminal printr-un tunel SSH este alegerea noastră!

Ei bine, să începem. Ne conectăm la server prin SSH, de exemplu, prin binecunoscutul PuTTY (A Free Telnet / SSH Client). Acum să trecem direct la descrierea comenzilor.

Conectați-vă la serverul MySQL cu programul mysql:

mysql -u root -h localhost -p

Opțiunea -u specifică utilizatorul care se va autentifica. Opțiunea -h specifică gazda. Acesta este de obicei localhost dacă configurați un server non-remot. În cele din urmă, -p îi spune programului client mysql să introducă o parolă pentru a accesa baza de date. Observați promptul mysql>. Aici vei introduce toate comenzile. Acum, fiind în mediul mysql ca utilizator root, putem începe configurarea bazei de date.

Suntem autentificati și promptul mysql este pe ecran. Mai întâi, să aruncăm o privire la lista bazelor de date existente. Pentru a face acest lucru, introduceți comanda SHOW DATABASES.

Răspunsul arată clar că comanda a fost finalizată fără erori. În acest caz, o linie s-a schimbat. Aceasta se referă la baza de date principală mysql care conține o listă a tuturor bazelor de date. Dar nu trebuie să vă faceți prea multe griji pentru detalii minore. Ultimul număr indică timpul de execuție a interogării. Putem verifica dacă baza de date a fost creată rulând din nou comanda SHOW DATABASES.

Pentru a începe să creați tabele în noua bază de date de testare, trebuie să o setăm ca cea curentă. Pentru a face acest lucru, utilizați comanda USE. Parametrul acestei comenzi specifică numele bazei de date care urmează să fie actualizată. De asemenea, puteți seta baza de date curentă pe linia de comandă specificând numele acesteia după parametrul -D. Să mergem mai departe și să trecem la baza de date de testare.
Comutarea bazei de date:

test USE;

Privilegii în MySQL

Acordați privilegii prin comandă ACORDA.
Privilegiile definesc modul în care utilizatorii pot accesa bazele de date, tabele... aproape orice. În prezent, numai superutilizatorul rădăcină MySQL poate accesa baza de date de testare, având în vedere permisiunile date. Să creăm un alt utilizator, de exemplu, admin (administrator), care va accesa baza de date de testare și va lucra cu informațiile din aceasta. Dar înainte de a începe, să aruncăm o privire la formatul ușor simplificat al comenzii GRANT.

Notă: Comanda GRANT este considerată o modalitate de a crea un utilizator. Versiunile ulterioare de MySQL, totuși, conțin și funcția CREATE_USER, deși GRANT este încă preferată.
Acum avem nevoie de privilegii care pot fi atribuite. Folosind toate cele de mai sus, puteți seta următoarele privilegii:

Notă: Dacă utilizați MySQL pentru a comunica cu o aplicație web, atunci privilegiile CREATE, SELECT, INSERT explicate aici, precum și privilegiile DELETE și UPDATE (descrise în manualul MySQL, secțiunea GRANT și REVOKE Syntax) sunt singurele care probabil că vor fi necesare. Mulți oameni fac greșeala de a oferi toate privilegiile atunci când chiar nu au nevoie. Verificați cu dezvoltatorii de aplicații pentru a vedea dacă astfel de permisiuni vor crea într-adevăr probleme de performanță.

Creați un utilizator admin:

Deci utilizatorii sunt creați; acum să le testăm. Mai întâi, ieșiți din mysql tastând ieșire la prompt:

Opțiunile sunt explicate în secțiunea de comandă GRANT. Și acum vom refuza utilizatorului orice fel de acces. Să presupunem că ne-am dat seama că contul de administrator cauzează probleme de securitate. Decidem să revocăm toate drepturile. Mergem ca root și facem ceea ce este necesar.
Revocați permisiunile pentru utilizatorul administrator:

REVOCA TOTUL PE test.* DE LA "admin" @"localhost" ;

Notă: În acest caz, accesul utilizatorului este simplu, deci revocarea drepturilor asupra unei baze de date nu este o problemă. Dar, de obicei, cel mai probabil va trebui să utilizați *.* în loc de test.* pentru a revoca și accesul utilizatorului la toate celelalte baze de date.

Acum să aruncăm o privire la cum să ștergeți complet un cont cu comanda DELETE și să aruncăm o privire la tabelul de utilizatori MySQL.

Ștergerea conturilor cu o comandă ȘTERGE.
Tabelul de utilizatori MySQL este o listă de utilizatori și informații despre aceștia. Asigurați-vă că sunteți autentificat ca root. Utilizați baza de date principală MySQL.

Folosind baza de date principală mysql:

Tabelul de utilizatori este cel de care aveți nevoie. Are 30 de câmpuri diferite și este greu de citit. Pentru ușurință de citire, folosim a treia formă a comenzii SELECT. Câmpurile obligatorii sunt Gazdă (gazdă) și Utilizator (utilizator).
Găsirea utilizatorului admin în tabelul de utilizatori:

Acum că avem informațiile, putem scăpa de utilizatorul admin. Acest lucru se face cu comanda DELETE; iată sintaxa ei:

Poate ați observat că formatul DELETE este oarecum similar cu formatul SELECT. Specificați câmpul Utilizator și valoarea admin. Aceasta va elimina intrarea din tabelul de utilizatori în care utilizatorul este administrator, ștergându-ne contul. Să o facem:
Eliminarea utilizatorului administrator:

Comanda FLUSH PRIVILEGES este necesară pentru a actualiza permisiunile.

Asta e tot pentru azi. De acord, totul este simplu! ;)

O zi bună, colegi 🙂

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

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

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. Pentru prima dată, am întâlnit lucru în consola MySQL când am avut nevoie să import un dump mare de bază de date. Prin phpMyAdmin, nu a fost încărcat în întregime, deoarece. a scăzut undeva la mijloc în ceea ce privește timpul de expirare, în ciuda modificării setărilor pentru timpul de execuție a operațiunii și dimensiunea fișierelor descărcate. În principiu, a fost posibilă selectarea valorilor dorite, dar mi s-a părut că acesta este 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 externe atunci când era necesar să șterg datele dintr-un tabel care era asociat cu altele folosind chei. În phpMyAdmin, pur și simplu nu am găsit cum să fac asta.
  3. În companiile serioase, doar consola este folosită pentru a lucra cu MySQL fără niciun phpMyAdmins. Nu știu de ce anume, dar oamenii cunoscători au spus că are ceva de-a face cu securitatea. Drept urmare, 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 baza de date încă funcționează pe baza comenzilor consolei MySQL. Prin urmare, cui îi place 🙂

Rularea consolei pe un sistem de operare diferit

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

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

Lansarea unei console pe Windows:

  • Win+R pentru a deschide un prompt de comandă Windows cu drepturi de administrator;
  • Introducem 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 în MacOS: Eu însumi nu am făcut asta, pentru că. Nu am încă un Mac și este puțin probabil să-l primesc ca fiind inutil, dar din câte am putut afla, nu există „taste rapide” pentru a apela terminalul în acest sistem de operare. Deci, dacă sunteți un utilizator de produse „mere”, atunci lansați consola prin interfața OS, din fericire, există o mulțime de manuale în rețea.

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

Da, este destul de logic 🙂 Dar țin doar cont de situațiile în care, alături de dezvoltatorii profesioniști, pot ajunge aici și începătorii. Prin urmare, încerc să fac informațiile complete și accesibile tuturor categoriilor de utilizatori, 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ă rulăm utilitarul cu același nume, care este linia 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ă da, atunci, ca răspuns la consolă, veți vedea ceva de genul următor text: .

Da, nu sunt un „coder cu adevărat”, pentru că stau sub Windows 🙂 Dar nu asta este ideea. Pe sistemele Unix, procedura este aceeași.

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

În consolă, 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

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

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

Mysql.exe -V

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

Totul, odată cu lansarea liniei de comandă MySQL prin consola serverului, ne-am dat seama, acum ne vom conecta direct la serverul MySQL.

Conectarea la serverul MySQL în consolă

Este posibil ca serverul MySQL să nu fie neapărat pe aceeași mașină pe care încercați să-l accesați din 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 rula linia de comandă MySQL în consolă, trebuie doar să scriem următoarele în consola serverului:

Cu toate acestea, în acest caz, veți obține 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 sistemului dvs., sub care efectuați acțiuni în sistem.

Toate acestea se datorează faptului că, în mod implicit, la conectarea la serverul MySQL, consola folosește utilizatorul ODBC de pe Windows fără parolă și utilizatorul de sistem pe Linux cu propria sa parolă. Gazda implicită este localhost, adică acest utilizator se poate conecta numai de la mașina locală.

Prin urmare, aveți două opțiuni: fie utilizați un alt utilizator pentru a introduce linia de comandă MySQL, fie creați un utilizator MySQL cu contul dorit. Dar pentru a doua metodă, încă nu ne putem lipsi de prima 🙂 Prin urmare, mai întâi ne conectăm la serverul MySQL sub utilizatorul standard rădăcină, care este creat atunci când MySQL este instalat 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). După aceea, vi se va conecta la serverul MySQL, vi se va atribui un ID de conexiune și veți avea 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 comanda în următorul format:

MySQL -u nume de utilizator -p parola utilizator -h MySQL_server_host_or_IP

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

Mysql --user=nume_utilizator --parola=parola_utilizator --host=host_sau_IP_server_MySQL

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

MySQL -u nume de utilizator -h MySQL_server_host_or_IP -p

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

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

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

Este clar că lista tuturor parametrilor de conectare la serverul MySQL nu se limitează la aceasta. În realitate, sunt multe altele.

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

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

Odată ce ne-am conectat la serverul MySQL și am lansat linia de comandă MySQL, este timpul să începem 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ă, 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 folosi, 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, puteți nu numai să creați și să ștergeți baze de date fără a intra în consola MySQL, ci și să gestionați configurația serverului, procesele MySQL, să gestionați replicările, serverele ping și să faceți o mulțime de alte lucruri interesante.

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

Nu des, dar uneori este necesar să creați un nou utilizator MySQL. Și în modul consolă.

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

CREAȚI UTILIZATOR „nume utilizator”@”host_or_machine_ip” IDENTIFICAT DE „user_parola”;

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 o gazdă pentru a se 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 socket UNIX în loc de TCP/IP standard. Acestea. dacă utilizatorul MySQL creat se conectează la server nu folosind socket-uri, ci folosind un alt protocol specificat la conectarea la serverul MySQL în consolă, atunci va trebui să creeze două conturi de utilizator:

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

Ne-am dat seama cum să creăm un utilizator MySQL în consolă. Acum să setăm drepturile utilizatorului pentru a efectua orice acțiune cu baza noastră de date nou creată cu următoarea comandă:

ACORDAȚI TOATE PRIVILEGIILE PE numele_bază de date.* CĂTRE „nume utilizator”@”host_or_machine_ip”;

Opțiune TOATE, după cum înțelegeți, indică doar că utilizatorului i se permite să efectueze orice acțiune cu o anumită bază de date. O listă completă de drepturi care pot fi acordate utilizatorilor folosind comanda ACORDA, poate fi găsit aici (deși descrierea parametrilor este în 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 atunci când apelați comanda, separați prin virgule.

Dacă doriți să creați un superutilizator, de ex. având 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”@”gazdă_sau_mașină_IP”;

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

PRIVILEGII FLUSH;

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

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

Și apoi instalați-l cu ACORDA, așa cum este descris mai devreme.

Dacă trebuie să schimbați parola de utilizator MySQL în viitor, atunci rulați următoarele comenzi în MySQL Shell:

SETĂ PAROLA PENTRU "nume utilizator"@"host_or_machine_IP" = PAROLA ("nouă_parolă"); 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”. Cauza sa a fost 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. Să mergem mai departe.

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 pe 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 serverul MySQL, puteți specifica inițial baza de date cu care va trebui să lucrați. Pentru a face acest lucru, 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 la fel, cerând doar parola utilizatorului MySQL:

mysql -u nume de utilizator -h host_or_ip_mysql_server_database_name -p

Asta e tot. Cred că acum nu veți avea dificultăți cu conectarea la baza de date MySQL prin consolă 🙂

Lucrul cu tabele MySQL prin consola MySQL

Deci, am creat baza 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 singurul mijloc de accesare a datelor stocate pe server (cum a fost și la mine, despre care am vorbit la începutul articolului). ).

După cum știți, este format din tabele, în interiorul cărora informațiile sunt deja stocate sub formă de înregistrări cu mai multe câmpuri. Prin urmare, urmând ierarhia de plasare a informațiilor, 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 de creare, citire, actualizare și ștergere a datelor din engleză. „Creați, citiți, actualizați, ștergeți” (s-ar putea să aveți nevoie de acest lucru în interviuri).

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, prima de pe agenda noastră este comanda de a crea un tabel MySQL în baza de date prin linia de comandă, care arată astfel:

CREATE TABLE nume_tabel (nume_câmp_1 tip_câmp_1, nume_câmp_2 tip_câmp_2(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 este opțională.

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

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

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

CREATE TABLE nume_tabel_nou AS SELECT * FROM nume_tabel_vechi;

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

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

Prima furnizează 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 folosiți cuvântul cheie DEPLIN puteți obține informații extinse, inclusiv privilegii pentru fiecare dintre câmpuri 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 necesar să le produc - nici nu îmi pot imagina ... Este posibil să fi fost ceva de cerut la interviuri atunci când aplici pentru un loc de muncă? 🙂

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 este o modificare a structurii acestora, adică. diverse acțiuni cu câmpuri de tabel MySQL:

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

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

Același lucru se poate face cu indecșii tabelului folosind aproape aceleași comenzi:

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

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

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

Comenzile de mai sus sunt echivalente cu prima și ultima din blocul anterior. Din păcate, nu există o comandă separată pentru a redenumi un index. Și pentru a schimba tipul de index, din păcate, nu există nicio posibilitate în MySQL. Singura cale de ieșire 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 - de ștergere. Eliminarea tabelelor MySQL dintr-o bază de date este foarte ușoară. Este suficient să executați următoarea comandă în consola MySQL:

DROP TABLE nume_tabel;

Uneori, în practică, există situații din cauza cărora nu este posibilă ș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 structurii unui tabel sau a datelor acestuia, MySQL 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 planurile, trebuie să dezactivăm temporar verificarea existenței cheilor străine, să efectuăm operația necesară și apoi să reactivăm verificarea, deoarece este cu adevărat necesar și vă permite să vă protejați de încălcările integrității datelor în majoritatea cazurilor.

De fapt, cheile externe 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 este aceeași ca 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 acum familiară AFIȚI CREATE TABLE.

Lucrul cu datele din tabelul MySQL prin linia de comandă

Pentru tabele, operațiunile CRUD din consola MySQL, am luat în considerare. Pentru o imagine completă, acestei foi de cheat îi lipsesc doar comenzile pentru a lucra cu datele în sine stocate în tabelele bazei de date. Cred că mulți cunosc aceste comenzi și le-au folosit în practică, dar totuși le voi aminti 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 se utilizează SELECT și UPDATE, este posibil să se utilizeze și o clauză WHERE de calificare, care poate fi utilizată pentru a specifica selecția datelor în modul descris în cazul utilizării DELETE.

De asemenea, atunci când preluați date din baza 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, în aceste operațiuni pot fi folosiți și alți operatori în afară de WHERE. Există mai ales multe dintre ele atunci când selectați date folosind SELECT: există un UNION pentru combinarea rezultatelor mai multor interogări și diferite tipuri de JOIN. Toate listarea este foarte lungă și obositoare atât pentru mine și veți citi asta.

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

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

Dacă trebuie să eliminați toate datele dintr-un tabel, puteți utiliza următoarea comandă MySQL:

TRUNCATE nume_tabel;

Înainte de a-l apela, așa cum sa menționat deja, 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 luat în considerare 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 seteze manual.

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

Adică dacă înainte de a șterge datele din tabel folosind TRUNCHIA valoarea maximă a contorului a fost 1200, apoi prima înregistrare după această procedură va avea valoarea identificatorului 1201. În principiu, e în regulă. Dacă setați o dimensiune suficientă pentru acest câmp, atunci nu vă veți confrunta cu valori debordante în curând.

Cu toate acestea, în unele cazuri, când există un fel de legare la valoarea câmpului din codul aplicației, acest comportament poate fi incomod.

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

TRUNCATE TABLE someTable RESTART IDENTITY;

Această opțiune 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 baza de date MySQL prin linia de comandă

Ciclul de viață al lucrului cu baza 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ă executați următoarea comandă (în acest caz, este posibil ca baza de date de ștearsă 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 bazei de date:

mysqladmin drop database_name;

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

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

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

Pe scurt, acesta este un avertisment că ștergerea unei baze de date MySQL este o idee foarte proastă. De asemenea, solicită 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ă

Așa 🙂

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

Acum aceeași soartă va avea și utilizatorul MySQL pe care îl creăm pentru a vă arăta cum se face. Dar, pentru început, ar fi bine să verificați dacă utilizatorul necesar există într-adevăr î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:

Acordați UTILIZARE PE *.* LA „nume de utilizator”@”gazdă_sau_adresă_IP”; DROP USER "nume utilizator"@"gazdă_sau_adresă_ip";

Din păcate, în acest caz, mesajul despre finalizarea operațiunii în consola MySQL este în mod tradițional neinformativ 🙁 Prin urmare, pentru a afla că ștergerea utilizatorului MySQL a avut loc, puteți folosi următoarea comandă, care afișează o listă de toți utilizatorii existenți pe serverul MySQL actual:

SELECTează utilizatorul din mysql.user;

Această versiune a comenzii 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;

Există, de asemenea, multe alte câmpuri în tabelul mysql.user 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-table/

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

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

Ieșirea 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 utilizând 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ă părăsiți linia de comandă MySQL pur și simplu închide consola serverului și deschide-o din nou. Poți, desigur, să acționezi astfel, dar este nevoie de câteva secunde suplimentare de timp de lucru și te enervează de fiecare dată când trebuie să o faci.

Comportamentul corect în această situație ar fi să apelați doar comanda Ieșire pe linia de comandă MySQL, după care serviciul ne va lua la revedere politicos 🙂

Și doar ceva 🙂 Așa că data viitoare nu mai trebuie să deschizi console și să le redeschizi de fiecare dată când trebuie să ieși din MySQL din consolă și să-l accesezi 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ă construcțiile 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ă astfel de o oportunitate.

Dacă îl folosești sau nu, depinde de tine. Dar, așa cum am spus chiar la începutul articolului, există situații în care utilizarea consolei MySQL vă poate economisi timp și nervi. Și dacă să folosiți linia de comandă în fiecare zi sau nu este 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 cu restul și păstrează conversația în comentariile altor utilizatori.

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

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

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

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

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ă intrare MySQL.

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

Pentru a verifica starea serverului MySQL alerga:

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 situat pe gazda la distanță db1.example.com:

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

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

Creați baza 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ți baza:

baza de date mysql drop;

Ștergeți tabelul din baza de date:

tabel de drop mysql;

Afișați tot conținutul tabelului:

MySQL SELECT * FROM ;

Afișați coloanele și conținutul coloanelor din 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 anumit tabel 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 conținând 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”, limitate la intrările de la 1 la 5:

Mysql SELECT * FROM WHERE nume precum " Bob %" AND phone_number = " 3444444 " limit 1.5;

Folosind expresii regulate ("REGEXP BINARY") pentru a căuta intrări. De exemplu, pentru o căutare fără majuscule, găsiți toate intră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);

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

Schimbați parola utilizatorului din consolă pe gazda la distanță db1.example.org:

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

Schimbați parola 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;

Restaurarea/Modificarea parolei serverului rădăcină MySQL- Stop MySQL, porniț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 subrădăcină, trecerea la baza de date, setarea privilegiilor, privilegiile de actualizare:

# 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 pentru ca un utilizator să utilizeze 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;

Actualizați informațiile 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 bazei 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ă

literele mici indică numele coloanelor;
Litere majuscule - tipuri și atribute ale coloanelor;
în (paranteze) - valoarea tipului de coloană.

Creați tabelul exemplu 1:

mysql CREATE TABLE (prenume VARCHAR(20), middleinitial VARCHAR(3), nume de familie VARCHAR(35), sufixul 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 exemplul 2 de tabel:

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");

Utilitarul mysql de linie de comandă este un simplu wrapper SQL (cu capabilitățile bibliotecii readline a proiectului GNU). Acceptă modurile interactive și non-interactive. În modul interactiv, rezultatele interogării sunt prezentate în format ASCII. Când este utilizat în modul non-interactiv (de exemplu, ca filtru), rezultatul este prezentat în format text cu un caracter tabulator ca separator (formatul de ieșire poate fi modificat folosind opțiunile din linia de comandă). Scripturile pot fi executate după cum se arată mai jos:

Shell > baza de date mysql output.tab

Dacă întâmpinați probleme din cauza lipsei de memorie pe un anumit client, utilizați opțiunea --quick! Acest lucru va face ca mysql să folosească funcția mysql_use_result() în loc de funcția mysql_store_result() pentru a obține preluarea datelor rezultate.

Utilizarea mysql este foarte ușoară. Rulați baza de date mysql sau mysql --user=user_name --password=your_password database e. Tastați comanda SQL direct pe linia de comandă, terminând-o cu unul dintre următoarele caractere: `;" , `\g" , sau `\G" , apoi apăsați tasta ``Enter"'.

Utilitarul mysql pentru linia de comandă acceptă următoarele opțiuni:

Ajutor Afișează informații de ajutor despre utilizarea programului și părăsește-l. -A, --no-auto-rehash Dezactivează rehasharea automată. rehash ar trebui folosit pentru a obține hash-ul tabelelor și câmpurilor. Acest lucru face ca mysql să pornească mai repede. --prompt=... Setează un prompt de comandă în formatul dat. -b, --no-beep Oprește bipul de eroare. -B, --batch Ieșire lot cu un delimitator de tabulatori, fiecare linie pe o linie nouă. Fișierul istoric nu este utilizat. --character-sets-dir=... Director în care se află seturile de caractere. -C, --compress Utilizați comprimarea datelor protocolului server/client. -#, --debug[=...] Jurnal de depanare. Valoarea implicită este „d:t:o,/tmp/mysql.trace”. -D, --database=... Numele bazei de date de utilizat. Folosit în principal în fișierul de configurare „my.cnf”. --default-character-set=... Setați setul de caractere implicit. -e, --execute=... --batch) -E, --vertical Print rezultatele interogării (șiruri) pe verticală.Puteți produce astfel de rezultate fără această opțiune prin încheierea comenzilor cu caractere \G. -f, --force Continuați procesarea chiar dacă se întâlnește o eroare SQL. -g, --no-named-commands Dezactivați comenzile numite Utilizați numai comenzi \* sau utilizați comenzile numite numai la începutul unei linii care se termină în `;" . Din versiunea 10.9, clientul este pornit cu această opțiune, inclus Mod implicit! Cu opțiunea -g, totuși, comenzile lungi încă funcționează din prima linie. -G, --enable-named-commands Activează comenzile cu nume. Sunt permise comenzi lungi, precum și comenzi scurte precum \*. -i, --ignore-space Ignoră spațiul după numele funcțiilor. -h, --host=... Conectați-vă la o bază de date pe gazda specificată. -H, --html Imprimați rezultatul ca HTML. -L, --skip-line-numbers Omite numerele de rând pentru erori. Util pentru compararea fișierelor rezultate care includ mesaje de eroare. --no-pager Dezactivează paginatorul și scrie rezultatul în stdout (pe Unix). Vezi și comanda \h (ajutor online). --no-tee Blocează fișierul de ieșire. Vezi și comanda \h (ajutor online). -n, --unbuffered Goliți tamponul după fiecare cerere. -N, --skip-column-names Omite numele coloanelor în rezultate. -O, --set-variable var=opțiune Setează valoarea unei variabile. Lista variabilelor utilizate este afișată prin --help. -o, --one-database Actualizați numai baza de date implicită. Vă permite să săriți peste alte actualizări ale bazei de date din jurnalul de actualizări. --pager[=...] Setează tipul de date de ieșire. În mod implicit, aceasta este variabila de mediu PAGER. Valorile sale posibile sunt less, more, cat [> filename] etc. Vezi și comanda \h (ajutor online). Această opțiune nu funcționează în modul lot. Paginatorul funcționează numai sub Unix. -p, --password[=...] Parola folosită la conectarea la serverul bazei de date. Dacă parola nu este specificată pe linia de comandă, atunci aceasta este solicitată de la utilizator. Când utilizați forma scurtă -p, nu lăsați un spațiu între parametru și valoarea parolei. -P --port=... Numărul portului TCP/IP de utilizat pentru conexiune. -q, --quick Nu păstrați rezultatul în cache. Ieșiți-l linie cu linie așa cum vine de la server. Acest lucru poate încetini serverul dacă ieșirea este întreruptă. Fișierul istoric nu este utilizat. -r, --raw Afișează valorile coloanei fără nicio transformare. Folosit cu --batch . -s, --silent Mod silențios. Afișează numai mesajele de eroare. -S --socket=... Fișier socket folosit pentru conexiune. -t --table Afișează rezultatul într-un format de tabel. Setat implicit pentru modul non-batch. -T, --debug-info Imprimă câteva informații de depanare când programul se închide. --tee=... Atașați ceva la fișierul de ieșire. Vezi și comanda \h (ajutor online). Această opțiune nu funcționează în modul lot. -u, --user=# nume de utilizator MySQL dacă acest utilizator nu este activ în prezent. -U, --safe-updates[=#], --i-am-a-dummy[=#] Permiteți numai operațiunile UPDATE și DELETE folosind taste. Consultați mai jos pentru mai multe informații despre această setare. Puteți reseta această opțiune setând argumentul --safe-updates=0 în fișierul de configurare „my.cnf”. -v, --verbose Mod de ieșire mai detaliat (-v -v -v oferă formatul de ieșire al tabelului). - V , --version Afișează informații despre versiune și ieși din program -w, --wait Dacă conexiunea la server a întrerupt, așteptați și încercați să o restaurați în loc să o anulați.

De asemenea, puteți seta următoarele variabile prin opțiunile de linie de comandă -O sau --set-variable:

Dacă tastați ajutor pe linia de comandă, programul mysql va lista comenzile pe care le acceptă:

MySQL> help MySQL Commands help (\h) Afișează textul dat. ? (\h) Sinonim pentru ajutor. clear (\c) Clear command. conectați (\r) Reconectați-vă la server. Argumente suplimentare sunt db și host. edit (\e) Editați comanda curentă cu $EDITOR. ego (\G) Trimiteți comanda MySQL curentă către server și afișați rezultatul pe verticală. ieșire (\q) Ieșiți din program. La fel ca renunță. go (\g) Trimite comanda MySQL curentă către server. nopager (\n) Blocați paginatorul, imprimați în stdout. notee (\t) Nu adăugați intrări în fișierul de ieșire. pager (\P) Setați PAGER . Afișați rezultatele interogării prin PAGER. print (\p) Imprimă comanda curentă. prompt (\R) Schimbați formatul promptului pentru comenzile mysql. ieșire (\q) Părăsiți programul. rehash (\#) Restaurați tabelul hash. sursă (\.) Executați fișierul script SQL. Furnizați un nume de fișier ca argument. stare (\s) Obține informații despre starea serverului. tee (\T) Setați opțiunea de ieșire. Adăugați ceva la fișierul de ieșire dat. folosește (\u) Folosește o altă bază de date. Specificați numele bazei de date ca argument.

Comanda pager funcționează numai sub Unix.

Rezultatul acestui lucru este următorul:

  • Nu este permisă executarea comenzilor UPDATE sau DELETE decât dacă sunt specificate restricții de cheie în clauza WHERE. Cu toate acestea, puteți forța executarea comenzilor UPDATE / DELETE folosind instrucțiunea LIMIT: UPDATE table_name SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • Toate rezultatele supradimensionate sunt limitate la #select_limit# linii.
  • SELECT-urile care pot necesita mai mult de #max_join_size# combinații de rând pentru a fi executate vor fi anulate.

Câteva sfaturi utile pentru utilizarea clientului mysql:

Unele date sunt mai lizibile atunci când sunt afișate vertical în loc de fereastra de ieșire orizontală utilizată în mod obișnuit. De exemplu, textul care este mai lung decât lat și conține multe linii noi este adesea mult mai ușor de citit pe verticală.

Mysql> SELECT * FROM mail-uri WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith scrie: Thimble> Salut. Cred că aceasta este o idee bună. Este cineva familiarizat cu UTF-8 Thimble> sau Unicode? În caz contrar, „voi pune asta pe lista mea de TODO și voi vedea ce se întâmplă Thimble>. Da, te rog fă asta. Cu respect, fișier Monty: inbox-jani-1 hash: 190402944 1 rând în set (0,09 sec)

  • Puteți utiliza opțiunile de comandă tee pentru a vă autentifica. Poate fi rulat cu opțiunea --tee=... la mysql sau interactiv din linia de comandă cu comanda tee. Toate datele prezentate pe ecran vor fi adăugate și la fișierul specificat. Acest lucru poate fi foarte util în scopuri de depanare a programelor. Utilitarul tee poate fi blocat din linia de comandă cu comanda notee. Rularea din nou a comenzii tee va activa din nou înregistrarea. Dacă parametrul pentru comanda tee nu este specificat, atunci fișierul anterior va fi utilizat. Rețineți că comanda tee va scrie rezultatele într-un fișier după fiecare comandă executată, chiar înainte ca promptul de comandă să apară pentru următoarea comandă.
  • Opțiunea --pager[=...] a făcut posibilă vizualizarea sau căutarea rezultatelor în mod interactiv cu programele Unix less , more , sau similare. Dacă nu specificați în mod explicit un argument în acest parametru, clientul mysql va căuta variabila de mediu PAGER și va seta valoarea la pager . Programul pager poate fi de asemenea pornit din linia de comandă interactivă cu comanda pager și oprit cu comanda nopager. Comanda poate lua un argument, care este opțional; pager va fi setat la valoarea acestui argument. Comanda pager poate fi apelată fără un argument, dar aceasta necesită utilizarea opțiunii --pager sau o setare implicită corespunzătoare a stdout . Comanda pager funcționează numai pe Unix, deoarece folosește funcția popen(), care nu este disponibilă pe Windows. În schimb, pe Windows, puteți utiliza opțiunea tee, deși în unele situații acest lucru este mai puțin convenabil decât folosirea comenzii pager.
  • Câteva sfaturi despre comanda pager: Poate fi folosită pentru a scrie într-un fișier: mysql> pager cat > /tmp/log.txt și rezultatele vor fi trimise doar într-un fișier. Programele apelate de comanda pager pot accepta orice opțiune validă: mysql> pager less -n -i -S Acordați o atenție deosebită opțiunii -S din exemplul de mai sus. Poate fi foarte util atunci când vizualizați rezultatele. Încercați-l cu ieșire orizontală (terminați comenzile cu „\g” sau „;”) și ieșire verticală (la sfârșitul comenzilor cu „\G”). Rezultatele de ieșire foarte greoaie sunt uneori dificil de citit de pe ecran, în acest caz comanda mai puțin cu opțiunea -S vă va permite să vizualizați rezultatele în mod interactiv de la stânga la dreapta, în timp ce liniile cu o lungime mai mare decât lățimea ecranului apar, ieșirea lor va continua pe o linie nouă. Ieșirea datelor în astfel de cazuri este mai lizibilă. Când invocați interactiv comanda less cu opțiunea „-S”, puteți comuta modul de funcționare al acesteia (activat/dezactivat) din linia de comandă. Pentru mai multe informații despre less, consultați descrierea comenzii „h”.
  • În concluzie, observăm (dacă nu ați înțeles deja acest lucru din exemplele anterioare) că este posibil să combinați modalități foarte complexe de procesare a rezultatelor. Deci, în exemplul următor, rezultatele vor fi trimise în două directoare diferite montate pe două hard disk-uri diferite sub /dr1 și /dr2, și totuși rezultatele pot fi văzute pe ecran cu comanda less: mysql> pager cat | tee /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | mai puțin -n -i -S
  • Funcțiile de mai sus pot fi, de asemenea, combinate: rulând tee și setând pager la less , puteți vizualiza rezultatele cu comanda Less Unix în timp ce scrieți simultan într-un fișier. Diferența dintre utilitarul Unix folosit de programul pager și comanda încorporată tee în clientul mysql este că comanda încorporată tee funcționează chiar dacă utilitarul tee nu este disponibil pe Unix. Tee-ul încorporat înregistrează, de asemenea, tot ceea ce este afișat pe ecran, în timp ce utilitarul Unix tee folosit cu pager nu face prea mult din asta. Nu în ultimul rând, comanda interactivă tee este mai convenabilă pentru activarea/dezactivarea modurilor de operare dacă uneori trebuie să dezactivați această caracteristică atunci când scrieți într-un fișier.

Puteți schimba formatul promptului pe linia de comandă a clientului mysql.

Sunt disponibile următoarele opțiuni de prompt:

Opțiune Descriere
\vversiunea mysql
\dnumele bazei de date de utilizat
\hnumele gazdă la care să vă conectați
\pnumărul portului prin care se realizează conexiunea
\uNume de utilizator
\Uadresa completă nume utilizator@gazdă
\\ bară oblică inversă `\"
\ncaracter newline
\tintabulare
\ spaţiu
\_ spațiu cu subliniere
\Rfus orar militar (0-23)
\rora conform fusului orar standard (1-12)
\mminute
\ydouă cifre ale anului
\Ypatru cifre ale anului
\Dformat de dată completă
\ssecunde
\wziua săptămânii în format de trei litere (luni, marți, ...)
\PAM/PM (am/pm)
\oluna în format numeric
\Olună în format de trei litere (ian, februarie, ...)
\cUn contor care numără numărul de comenzi introduse

Un `\" urmat de orice altă literă completează pur și simplu acea litera.

Puteți seta opțiunile de solicitare în următoarele moduri:

În variabilele de mediu Puteți seta variabila de mediu MYSQL_PS1 pentru șirul prompt. De exemplu: shell> export MYSQL_PS1="(\u@\h) [\d]> " „my.cnf” `.my.cnf" Puteți seta opțiunea prompt în orice fișier de configurare MySQL din grupul mysql. De exemplu: prompt=(\u@\h) [\d]>\_ Pe linia de comandă Puteți seta opțiunea --prompt din linia de comandă mysql. De exemplu: shell> mysql --prompt="(\u@\h) [\d]> " (utilizator@gazdă) > Interactiv De asemenea, puteți utiliza comanda prompt (sau \R) pentru a modifica setările promptului în mod interactiv. De exemplu: mysql> prompt (\u@\h) [\d]>\_ PROMPT setat la „(\u@\h) [\d]>\_” (utilizator@gazdă) > (utilizator@gazdă) > prompt Reveniți la setările originale (implicite) PROMPT în utilitarul mysql> mysql>