Primjeri Mysql naredbenog retka. Rad s MySQL iz naredbenog retka

Dolje je popis najkorisnijih i najčešće korištenih naredbi MySQL s primjerima.

mysql na početku retka znači da se naredba izvršava nakon prijave MySQL.

Simbol # ili $ na početku retka znači da se naredba izvršava iz naredbenog retka.

Za provjeru statusa poslužitelja MYSQLčini:

Za FreeBSD:

# service mysql-status poslužitelja

V CentOS/RHEL:

# service mysqld status

MySQL s konzole ako je poslužitelj MySQL je na istom hostu:

Za spajanje na poslužitelj MySQL s konzole ako je poslužitelj MySQL nalazi se na udaljenom hostu db1.example.com:

$ mysql -u korisničko ime -p -h db1.example.com

Rad s bazama podataka i tablicama - pregled, brisanje, uređivanje zapisa. Konzola

Stvorite bazu podataka na MySQL poslužitelj:

Mysql kreira bazu podataka

Prikaži popis svih baza podataka na poslužitelju MySQL:

korištenje mysql-a;

Prikaži sve tablice u bazi podataka:

Mysql prikazuje tablice;

Pogledajte format tablice u bazi podataka:

mysql opisati;

Brisanje baze podataka:

Mysql drop baza podataka;

Brisanje tablice iz baze podataka:

Mysql drop table ;

Prikaži sav sadržaj tablice:

Mysql SELECT * FROM ;

Prikaz stupaca i sadržaja stupaca u odabranoj tablici:

Mysql prikazuje stupce iz ;

Prikaži retke u određenoj tablici koji sadrže " bilo što ":

Mysql SELECT * FROM WHERE = "što god";

Prikaži sve zapise u određenoj tablici koja sadrži "Bob" i telefonski broj "3444444:

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

Prikaži sve unose, NE koji sadrži ime "Bob" i telefonski broj "3444444", poredano po polju phone_number:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " order by phone_number;

Prikaži sve unose koji počinju s "bob" i broj telefona"3444444" u određenoj tablici:

Mysql SELECT * FROM WHERE ime poput "Bob %" AND phone_number = "3444444";

Prikaži sve unose koji počinju slovima "bob" i telefonskim brojem "3444444", ograničavajući unose od 1 do 5:

Mysql SELECT * FROM WHERE ime poput "Bob %" AND phone_number = "3444444" limit 1.5;

Korištenje regularnih izraza ("REGEXP BINARY") za traženje zapisa. Na primjer, za pretraživanje koje ne razlikuje velika i mala slova, pronađite sve zapise koji počinju slovom A:

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

Prikaži sve jedinstvene unose:

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

Pokažite broj redaka u tablici:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Uklanjanje stupca:

Mysql mijenja stupac ispuštanja tablice;

Dodavanje stupca u bazu podataka:

Mysql alter tablica dodaj stupac varchar(20);

Promjena naziva stupca:

Mysql alter promjena tablice varchar(50);

Napravite stupac s jedinstvenim nazivom kako biste izbjegli dvostruka imena:

Mysql alter table add unique();

Promjena veličine stupca:

Mysql mijenja tablicu mijenja VARCHAR(3);

Uklanjanje stupca iz tablice:

Mysql mijenja indeks pada tablice;

Mysql UČITAJ PODATKE INFILE " /tmp/imedatoteke.csv " zamijeni U POLJA TABLICE KOJA ZAVRŠAVAJU "," REDOVI KOJI ZAVRŠAVAJU "n" (polje1,polje2,polje3);

Korisnici MySQL poslužitelja, lozinke - dodavanje, promjena korisnika i lozinki. Konzola

Stvaranje novog korisnika - spajanje na poslužitelj MySQL kao root, prijeđi na bazu podataka, dodaj korisnika, ažuriraj privilegije:

# mysql -u root -p mysql koristi mysql; mysql INSERT INTO korisnik (Host,User,Password) VALUES("%"," korisničko ime ", PASSWORD(" lozinka ")); mysql povlastice ispiranja;

Promjena korisničke lozinke s konzole na udaljenom hostu db1.example.org:

# mysqladmin -u korisničko ime -h db1.example.org -p lozinka " nova-lozinka "

Promjena korisničke lozinke iz konzole MySQL- spojite se kao root, ažurirajte lozinku, ažurirajte privilegije:

# mysql -u root -p mysql POSTAVITE LOZINKU ZA " korisnika "@" ime hosta " = LOZINKA(" lozinkaovdje "); mysql povlastice ispiranja;

Oporavak/promjena lozinke korijenskog poslužitelja MySQL- stani MySQL, pokrenite bez tablica privilegija, povežite se kao root, postavite novu lozinku, izađite i ponovno pokrenite MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") where User="root"; mysql; povlastice ispiranja; mysql zatvori # /etc/init.d/mysql stop # /etc/init.d/mysql start

Postavite root lozinku ako postoji on root lozinka.

# mysqladmin -u root lozinka nova lozinka

Ažurirajte root lozinku:

# mysqladmin -u root -p stara lozinka nova lozinka

Postavljanje prava za spajanje na poslužitelj s hosta localhost s lozinkom "passwd" - povezivanje s podosnovom, prebacivanje na bazu podataka, postavljanje privilegija, ažuriranje privilegija:

# mysql -u root -p mysql koristi mysql; mysql dodijeli korištenje na *.* za bob @localhost identificiran s " passwd "; mysql povlastice ispiranja;

Postavljanje korisničkih privilegija za korištenje baze podataka - povezivanje kao root, prebacivanje na bazu podataka, postavljanje privilegija, ažuriranje privilegija:

# mysql -u root -p mysql koristi mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ("%","databasename","username","Y","Y","Y"," Y", "Y", "N"); mysql povlastice ispiranja;

Mysql dodjeljuje sve privilegije na databasename .* korisničkom imenu @localhost; mysql povlastice ispiranja;

Ažuriranje podataka u bazi podataka:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" where = user";

Brisanje retka u tablici:

Mysql DELETE from where = "što god";

Ažuriranje privilegija u bazi podataka:

Mysql povlastice ispiranja;

Sigurnosne kopije - stvaranje, vraćanje baza podataka. Konzola

Stvoriti sigurnosna kopija(dump) sve baze podataka u datoteku alldatabases.sql:

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

Sigurnosno kopirajte jednu bazu podataka u datoteku databasename.sql:

# mysql dump -u korisničko ime -p lozinka -baze podataka naziv baze podataka ; /tmp/imebaze podataka.sql

Izradite sigurnosnu kopiju jedne tablice u datoteku nazivbaze.imetablice.sql:

# mysql dump -c -u korisničko ime -p lozinka naziv baze podataka naziv tablice ; /tmp/imebaze podataka.imetablice.sql

Vraćanje baze podataka (ili tablice) iz sigurnosne kopije:

# mysql -u korisničko ime -p lozinka ime baze podataka< /tmp/databasename.sql

Izrada tablica baze podataka. Konzola

nazivi stupaca navedeni su malim slovima;
VELIKA slova - vrste i atributi stupaca;
u (zagradama) - vrijednost tipa stupca.

Napravite tablicu, primjer 1:

mysql CREATE TABLE (ime VARCHAR(20), srednje početno slovo VARCHAR(3), prezime VARCHAR(35), sufiks VARCHAR(3), officeid VARCHAR(10), ID korisnika VARCHAR(15), korisničko ime VARCHAR(8), e-pošta VARCHAR(35) ), telefon VARCHAR(25), grupe VARCHAR(15), datumska oznaka DATUM, vremenska oznaka VRIJEME, pgpemail VARCHAR(255));

Napravite tablicu, primjer 2:

Mysql kreira tablicu (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, ime VARCHAR(35), srednje ime VARCHAR(50), prezime VARCHAR(50) zadano "bato");

Moguće je ne samo kroz PHP. MySQL dolazi s konzolnim klijentom za povezivanje s MySQL poslužiteljem. Konzola - to znači da program nema prozorsko sučelje, već samo sučelje naredbenog retka u kojem se bazama podataka pristupa pomoću SQL upita.

Naredbe za spajanje na MySQL naredbeni redak, a još više oni sami SQL upiti identičan za . U nastavku ću napisati "MySQL" radi kratkoće, ali cijelo vrijeme mislim na "MySQL ili MariaDB", jer u u ovom slučaju nema razlike među njima.

Spajanjem putem naredbenog retka na MySQL DBMS možete obavljati razne zadatke: pregledavati baze podataka i njihove tablice, slati upite bazama podataka i primati rezultate izvršavanja tih upita.

Za spajanje na MySQL poslužitelj koristite naredbu klijentskog programa pod nazivom mysql.exe. Treba ga pokrenuti, ali to ne smije biti učinjeno dvostrukim klikom, kao obični program, već iz naredbenog retka.

Započnimo pritiskom na tipkovni prečac Win+r i učinimo to

Otvorit će se naredbeni redak.

Sada moramo ići u mapu s datotekom mysql.exe. Ova mapa kanta za smeće u direktoriju gdje je instaliran vaš MySQL DBMS. Na primjer, imam MariaDB, koji je instaliran u mapi C:\Poslužitelj\bin\mariadb\. Dakle, datoteka koja nas zanima nalazi se u direktoriju C:\Poslužitelj\bin\mariadb\bin\. Za odlazak u ovaj direktorij koristite naredbu CD na sljedeći način:

CD C:\Poslužitelj\bin\mariadb\bin\

U ovoj naredbi zamijenite C:\Server\bin\mariadb\bin\ ispravnim putem za vaš sustav

Sada pokrenimo datoteku mysql.exe. Nije potrebno navesti ekstenziju datoteke.exe - sustav će sam pogoditi što mislimo. Također trebamo koristiti opciju -u I -str. Nakon prve opcije potrebno je navesti korisničko ime - korijen. Nakon druge opcije je lozinka za korisnika. U mom slučaju lozinka nije postavljena, pa radim bez opcije -str:

Mysql -u root

Možda se čini da se nije puno promijenilo, ali novi naredbeni redak

MariaDB [(ništa)]>

označava da smo spojeni na MySQL poslužitelj. Točnije, u mom slučaju spojeni smo na MariaDB server.

Za pregled popisa baza podataka unesite naredbu:

PRIKAŽI BAZE PODATAKA;

Za slanje naknadnih upita u određenu bazu podataka (na primjer, test), upotrijebite naredbu KORISTITI:

USE test;

Za pregled tablica u odabranoj bazi podataka pokrenite naredbu:

POKAŽI TABLICE;

Kreirajmo neku tablicu:

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

Pogledajmo ponovno sadržaj testne baze podataka.


Mysqld poslužitelj može pokrenuti i njime upravljati svaki korisnik. Da konfigurirate mysqld za rad pod Unix korisnikom user_name, morate učiniti sljedeće:

    Ako poslužitelj radi, zaustavite ga (upotrijebite mysqladmin shutdown).

    Promijenite direktorije i datoteke baze podataka tako da user_name ima privilegije za čitanje i pisanje datoteka u tim direktorijima (to će se možda morati učiniti s Unix root računa):

    Školjka> chown -R korisničko_ime /path/to/mysql/datadir

    Ako među imenicima ili datotekama u imeniku MySQL podaci Ako postoje simboličke veze, morat ćete slijediti te veze i promijeniti direktorije i datoteke na koje upućuju. chown -R možda neće rukovati simboličkim vezama.

    Pokrenite poslužitelj kao user_name ili, ako imate MySQL 3.22 ili noviji, pokrenite mysqld kao root Unix račun i koristite opciju --user=user_name. mysqld će se prebaciti na izvođenje u kontekstu Unix korisnika user_name prije nego što počne servisirati zahtjeve za povezivanje.

    Za automatsko pokretanje poslužitelja kao određenog korisnika kada se sustav podigne, dodajte linijskog korisnika, navodeći korisničko ime, u /etc/my.cnf grupu datoteka opcija ili datoteku opcija my.cnf iz direktorija podataka poslužitelja. Na primjer:

    Korisnik=korisničko_ime

U ovom trenutku, mysqld proces bi trebao raditi glatko pod Unix korisnikom user_name. Međutim, sadržaj tablica privilegija se ne mijenja. Prema zadanim postavkama (odmah nakon izvođenja mysql_install_db instalacijske skripte tablice privilegija), MySQL korisnički root je jedini korisnik s pravima pristupa mysql bazi podataka, kao i prava kreiranja i brisanja baza podataka. Ako niste promijenili ove dozvole, one su još uvijek važeće. Prijava kao Unix korisnik koji nije root ne sprječava vas da pristupite MySQL-u kao MySQL root korisnik; samo dajte klijentskom programu opciju -u root.

Imajte na umu da rad s MySQL-om kao MySQL korisnik root navođenjem -u root na naredbenom retku nema ništa zajedničko pokrenuti MySQL pod korijenom Unix korisnika ili pod bilo kojim Unix korisnikom uopće. MySQL korisnička imena i privilegije pristupa nisu povezane s Unix korisničkim imenima. Jedina veza s Unix korisničkim imenima je ta da ako opcija -u nije navedena prilikom pokretanja klijentskog programa, klijent će se pokušati spojiti koristeći Unix korisničko ime kao MySQL korisničko ime.

Ako Unix poslužitelj nije baš dobro zaštićen ili ne treba pojačane sigurnosne mjere, trebali biste barem postaviti lozinku za MySQL root korisnika u tablicama privilegija. Inače, svaki korisnik s računom na ovom računalu može pokrenuti mysql -u root db_name i raditi što god želi u MySQL-u.


MySQL poslužitelj baze podataka vrlo se često koristi za izradu dinamičkih web rješenja. Jedan od razloga (a možda i posljedica) je taj što gotovo svi hosteri u tarifni planovi na UNIX platformi nude jednu ili više MySQL baza podataka. Ako koristite virtualni hosting, gotovo da nemate potrebe učiti administraciju poslužitelja, samo trebate implementirati svoje programe slijedeći sučelje koje podržava programski jezik po vašem izboru (PHP ima ugrađeno sučelje za komunikaciju s bazom podataka; u verziji 5.0, podrška za MySQL premještena je u zasebnu licenciranu knjižnicu. Sve ostale administrativne brige - pokretanje, zaustavljanje, ponovno pokretanje, upravljanje pravima i korisnicima, sigurnosno kopiranje i konfiguriranje poslužitelja - obavljaju administratori pružatelja usluga hostinga. Ali ako instalirate vlastiti poslužitelj ili VDS (Virtual Dedicated Server), sami ćete se morati pobrinuti za sve nijanse njegovog rada.

Konfiguriranje MySQL poslužitelja moguće je izvršiti na dva načina – postavljanjem opcija na naredbenom retku prilikom pokretanja poslužitelja i putem my.ini konfiguracijske datoteke. Također biste trebali razlikovati izborne parametre, koji se mogu postaviti za trenutnu sesiju poslužitelja i izgubiti nakon ponovnog pokretanja, i varijable okruženja, koje djeluju globalno za cijeli poslužitelj i sve baze podataka - mogu se promijeniti samo izravnim navođenjem novih vrijednosti.

Popis svih dostupnih naredbi i opcija može se dobiti unosom "mysqld --help" u konzolu. Treba reći da su gotovo sve naredbe univerzalne i podržane na svim platformama na kojima radi MySQL poslužitelj, ali postoji nekoliko specifičnih naredbi za Windows NT platformu. Za sve naredbe postoji potpuna sintaksa, kada naredba počinje s dvije crtice (minus) simbola "--", iza kojih odmah, bez razmaka, slijedi naziv naredbe (ili opcija, te će riječi u nastavku biti sinonimi). Ako trebate navesti vrijednost, iza naziva naredbe slijedi znak "=" i vrijednost koju treba navesti. Skraćeni oblik sadrži jednu crticu, naziv naredbe je skraćen na jedno slovo, a parametri su navedeni odvojeni razmakom. Samo opcija "--socket" nema kratki oblik (trebalo bi biti "-s"). Imajte na umu da pisanje naredbi razlikuje velika i mala slova, a naredbe "-l" i "-L" potpuno su različite. Možete odrediti komentare u konfiguracijskoj datoteci - oni su odvojeni znakom "#", a cijeli redak se potpuno zanemaruje.


Prvo, upoznajmo se s najvažnijim naredbama.

Naredba --help je najvažnija, ona prikazuje popis svih dostupnih naredbi

Pomoć ili -? (u poslužiteljima verzije 4.1 i novijim ne postoji kratka naredba "-h"; osim toga, za pokretanje naredbe prvo morate navesti naredbu "--verbose") - prikazuje pomoć za dostupne naredbe i opcije, sam poslužitelj ne početak.
--version ili -V - korisno ako trebate saznati točnu verziju MySQL poslužitelja i platformu na kojoj se izvodi.
--user= ili -u — navodi korisničko ime s čijim se pravima pokreće poslužitelj. Općenito se ne preporučuje pokretanje poslužitelja kao root. Primjer: "--user=vasya".
-p - koristi se zajedno s naredbom "-u" i postavlja lozinku račun korisnik. Ako nema lozinke (zadana instalacija ne daje lozinku za root korisnika), naredba se može izostaviti. Imajte na umu da je sintaksa naredbe drugačija - lozinka je navedena u retku odmah nakon naredbe, bez ikakvih graničnika. Primjer: "--user=vasya -pverygoodpassword", gdje je "verygoodpassword" lozinka korisnika "vasya".
-P ili --port= - specificira broj porta preko kojeg se uspostavlja veza s mysqld poslužiteljem. Prema zadanim postavkama, poslužitelj sluša TCP port 3306, ali možete postaviti bilo koji drugi. Napominjemo da se skraćena verzija naredbe piše velikim slovom P, jer se malim slovom p postavlja korisnička lozinka.
--bind-address= - koristi se za forsiranje IP adrese poslužitelja; prema zadanim postavkama uzima se trenutna adresa računala.
--skip-networking - naredba potpuno onemogućuje korištenje mrežne veze Za povezivanje s poslužiteljem možete raditi samo lokalno, s host hosta.

Sljedeća skupina naredbi dizajnirana je za rad s bazama podataka.

Prikaz poruka na ruskom - koristite --language=russian

Datadir= ili -h - omogućuje izričito navođenje direktorija u kojem su pohranjene baze podataka. Može biti potrebno ako želite pohraniti baze podataka na drugu particiju ili logički pogon, ili imate nekoliko poslužitelja koji koriste različite direktorije za pohranu baza podataka. Prihvatljivo je navesti i puni i relativni put. Primjer: "mysqld --datadir=\home\vasya\bases".
--basedir= ili -b — put do direktorija s instaliranim poslužiteljem.
--tmpdir= ili -t — put do direktorija za privremene datoteke.
--character-sets-dir=. Ova opcija navodi stazu do direktorija koji sadrži konfiguracijske datoteke za razna kodiranja. Ovi podaci su važni za ispravno sortiranje i pretraživanje u string poljima tablica.
--language= ili -L - omogućuje nadjačavanje jezika za prikaz poruka i pogrešaka. Zadano je Engleski jezik, ali podržani su i drugi - posebice ruski. Da biste postavili izlazni jezik, morate navesti njegov naziv latiničnim slovima (ruski - za ruski, engleski - za engleski). Da bi naredba radila, direktorij \share\ mora postojati, ali ako se put do njega razlikuje od standardnog, tada umjesto navođenja jezika trebate opisati puni put do direktorija - na primjer, "-- jezik=\korisnik\vasya\mysql\langv\ruski".
--default-character-set= - postavlja zadano kodiranje znakova. Među mogućim vrijednostima parametra skupa znakova su: koi8_ru, german1, cp1251, win1251, koi8_ukr, win1251ukr, win1250 i drugi - ukupno postoji više od 20 različitih kodiranja. Kodiranje je važno ako će tekstovi na različitim jezicima biti pohranjeni u tablicama, a važno je uzeti u obzir nacionalne karakteristike prilikom pretraživanja i sortiranja podataka.

Ovo su bile najvažnije opcije i naredbe koje bi vam mogle trebati prilikom postavljanja poslužitelja. Postoji mnogo naredbi, a kako biste ih u potpunosti proučili, koristite ugrađenu pomoć (poziv putem naredbe --help).

Neke su naredbe specifične i dostupne samo za Windows NT

Postoji nekoliko specifičnih naredbi za Windows NT platformu.
--console - naredba se pojavila u verziji 3.22.4 i dizajnirana je za prikaz svih poruka o pogreškama u prozoru konzole, što je korisno prilikom otklanjanja pogrešaka ili proučavanja utjecaja različitih parametara na poslužitelju.
--install - radi samo na Win2000/XP platformi i registrira MySQL server kao sistemsku uslugu koja se pokreće svaki put kad se sustav digne i stalno postoji u RAM memorija(ako trebate registrirati uslugu, ali će je korisnik sam pokrenuti, naredba će izgledati kao "--insatll-manual"). Naredba "--remove" uklanja poslužitelj s popisa usluga sustava.
--standalone — pokrenite poslužitelj pod Win2000/XP kao zaseban program, a ne usluga sustava.

Za ove radnje najprikladnije je koristiti grafički uslužni program WinMySQLAdmin, koji je uključen u distribucijski komplet.

Uz njegovu pomoć također možete kreirati izvješće o svim varijablama i parametrima s kojima poslužitelj radi, što može biti korisno prilikom detaljnog proučavanja poslužitelja i optimizacije performansi. ostalo grafički uslužni programi, poput MySQL Administratora, omogućuju vam ne samo pregled ovih podataka, već i njihovu promjenu pomoću prikladnog sučelja. Ali u slučaju udaljenog poslužitelja ili s ograničenim resursima, najbolje je koristiti upravljanje naredbenim retkom. Osim, GUI ne eliminira potrebu za poznavanjem i razumijevanjem svrhe opcija koje se mijenjaju.

Popularni sustav za upravljanje bazom podataka MySQL naširoko korišten za razne potrebe, prvenstveno kao de facto standard u području internet hostinga. Ništa manje raširen je paket za upravljanje ovim DBMS-om - phpMyAdmin. Bez sumnje, ovo je dobar, praktičan proizvod, ali vrlo često se događa da vještine rada s ovim proizvodom u potpunosti zamijene vještine rada sa samim DBMS-om. Stoga smo u ovom materijalu odlučili upoznati naše čitatelje s načinom obavljanja osnovnih MySQL administrativnih zadataka iz naredbenog retka.

Kao što su naši redoviti čitatelji mogli primijetiti, dosljedno se protivimo korištenju raznih vrsta kontrolnih ploča od strane početnika, bez obzira koliko one bile zgodne i raširene. Pritom ne poričemo njihovo postojanje i sami ih sa zadovoljstvom koristimo u svakodnevnim aktivnostima.

Ali postoji jedna velika razlika: stručnjak koji zna raditi s naredbenim redkom pomoću ploče ne zamjenjuje sposobnost rada s proizvodom, već samo olakšava sebi obavljanje svakodnevnih zadataka. A početnik, naviknut na obavljanje svih radnji na ploči, ako je nedostupna, pada u tihu paniku, jer sada treba unijeti neke "čarolije" u ovu nerazumljivu crnu konzolu ...

Zapravo, rad s DBMS-om na razini naredbenog retka nije nimalo težak, a neke administrativne zadatke lakše je i praktičnije obavljati u njemu. Odmah rezervirajmo: pod administracijom mislimo na administraciju DBMS poslužitelja, a ne na same baze podataka. Naravno, s njima možete raditi i iz naredbenog retka, ali za to je bolje koristiti prikladnije alate.

Upravljanje bazama podataka i korisnicima u MySQL-u

Ako biste trebali početi plesati od peći, onda bi rad sa DBMS-om trebao započeti stvaranjem baza podataka i korisnika tih baza podataka. Zadaci su u biti jednostavni i savršeno se rješavaju, što je najvažnije jednostavno, s konzole. Uslužni program istog naziva dizajniran je za rad s MySQL poslužiteljem mysql, s kojim se radi u interaktivnom načinu, pa ćemo se prvo spojiti na poslužitelj:

Mysql -u root -p

Tamo gdje sklopka -u navodi korisničko ime, a -p provjeru autentičnosti lozinke, sintaksa naredbe omogućuje vam da navedete lozinku unosom bez razmaka odmah nakon ključa, ali u ovom slučaju bit će spremljena u povijesti naredbi, što je nije sasvim dobro, pa je bolje unijeti lozinku interaktivno. Nakon izvršenja ove naredbe naći ćemo se u MySQL okruženju, na što ukazuje promjenjeni redak za naredbe.

Rad u ovom okruženju ima svoje karakteristike: svaka naredba mora završiti simbolom ; ili \g, o čemu, inače, piše u prvom retku čestitke. Iz ovog moda se izlazi naredbom:

Razgovarajmo o jednoj vrlo čestoj pogrešci: zaboravite staviti točku i zarez na kraju naredbe. Što uraditi? Ništa strašno, samo unesite znakove koji nedostaju u sljedećem retku.

Prvo, pogledajmo popis baza podataka:

Prikaži baze podataka;

Kako kažu, bez nepotrebnih detalja, ali za većinu administrativnih zadataka ovo je dovoljno:

Pronalaženje popisa korisnika malo je teže, on se pohranjuje u obliku tablice servisne baze podataka mysql, pa pišemo mali zahtjev:

Odaberite korisnik, domaćin iz mysql.user;

Tim Izaberi odabire navedene stupce korisnik, domaćin, opcija from označava odakle ih odabiremo, naime iz korisničke tablice baze podataka mysql.

Prvi stupac označava korisnika, drugi - host na kojem ovom korisniku veze su dopuštene, % - označava bilo koju vrijednost. Imajte na umu da ako ivanov ima u postavkama lokalni domaćin, a zatim kada je spojen na mysql po adresi 127.0.0.1 on neće moći dobiti pristup, to se mora uzeti u obzir kada u svojim aplikacijama navodite podatke o povezivanju s DBMS poslužiteljem.

Možete vidjeti vlasnike baze podataka pomoću sljedećeg upita:

Odaberite host,db,user iz mysql.db;

Ovdje nisu potrebni posebni komentari. Na primjer, ivanov ima prava na baze podataka s prefiksom ivanov_ kada je spojen putem lokalni domaćin, i andrey na osnove s prefiksom andrey_ na bilo kojem hostu. Korisničke privilegije možete vidjeti naredbom:

Prikaži potpore za "ivanov"@"localhost";

Korisničko ime i host stavljamo u jednostruke navodnike.

Prvi red javlja da navedeni korisnik nema privilegije ( UPOTREBA) u bilo koju tablicu bilo koje baze podataka ( *.* ), drugi redak govori o svim glavnim privilegijama za sve tablice svih baza podataka s prefiksom ivanov_.

Recimo samo da detaljna analiza sustava prava MySQL daleko nadilazi opseg ovog članka SVE POVLASTICE daje korisniku sva prava na njegove baze podataka, ali mu ne dopušta upravljanje pravima pristupa za druge korisnike. Da biste to učinili, koristi se skup prava SVE POVLASTICEUZ MOGUĆNOST DOPOVANJA, koji prema zadanim postavkama ima korijen. Za jednostavan korisnik takav skup prava je suvišan.

Pokušajmo stvoriti novog korisnika:

Kreirajte korisnika "petrov"@"localhost" identificiran pomoću "password";

Sintaksa naredbe je jednostavna, navodimo korisničko ime i host te identifikacijske podatke u obliku lozinke. Sve proslijeđene vrijednosti zamotane su u jednostruke navodnike. Nakon što ste kreirali korisnika, trebate mu dodijeliti prava, to se radi naredbom GRANT. Prvo, eksplicitno ćemo mu oduzeti privilegije na tuđe baze podataka:

Dodijeli korištenje na *.* "petrov"@"localhost";

Tada možemo postaviti prava po vlastitom nahođenju, na primjer, izdavanje punih prava bazama podataka s predloškom imena petrov_:

Dodijelite sve privilegije na `petrov\_%`.* "petrov"@"localhost";

Imajte na umu da uzorak treba biti omotan znakovima gravis (` ), koji se nalaze na ključu s ruskim slovom E.

Možete dodijeliti prava zasebnoj bazi podataka ovako:

Dodijelite sve privilegije na andrey_drupal8.* "petrov"@"localhost";

Za odabir prava koristite samo naredbu REVOKE koja ima sličnu sintaksu do (kome), zamijenite ga s iz (WHO). Na primjer:

Opozovi sve privilegije na andrey_drupal8.* od "petrov"@"localhost";

Da bi MySQL poslužitelj primijenio prava, morate ga prisiliti da ponovno učita predmemoriju privilegija naredbom:

Privilegije ispiranja;

Možda ćete morati promijeniti i korisničku lozinku:

Postavite lozinku za "petrov"@"localhost" = lozinka("nova lozinka");

Preimenujte ga, a preimenovanje ne znači nužno promjenu korisničkog imena; možete promijeniti i ime i host, u bilo kojoj kombinaciji:

Preimenuj korisnika "petrov"@"localhost" u "petr"@"127.0.0.1";

I na kraju, izbrišite račun:

Ispusti korisnika "petr"@"127.0.0.1";

Prijeđimo s korisnika na baze podataka, u najjednostavnijem slučaju za izradu nove baze dovoljna je naredba:

Kreirajte bazu petrov_newdb;

Ovo će stvoriti bazu podataka sa kodna stranica i zadano kodiranje za usporedbu. Ako DBMS poslužitelj nije konfiguriran zasebno, tada će ovo kodiranje najvjerojatnije biti latinski1_švedski_ci, što u nekim slučajevima može uzrokovati probleme, ako ne sada, onda u budućnosti, stoga je dobro pravilo eksplicitno navesti kodiranje prilikom izrade baze podataka. Za UTF-8 to bi bilo ovako:

Stvaranje baze podataka petrov_newdb zadani skup znakova utf8 razvrstavanje utf8_general_ci;

Za Windows-1251:

Kreiraj bazu podataka petrov_newdb zadani skup znakova cp1251 usporedi cp1251_general_ci;

Za uklanjanje baze podataka koristite:

Ispusti bazu petrov_newdb;

Provjera, optimizacija, popravljanje grešaka u MySQL bazama podataka

Kao aktivan rad MySQL baze podataka mogu postati fragmentirani i mogu sadržavati pogreške u podacima tablice. Sada ne govorimo o ozbiljnim kvarovima; takve situacije treba razmatrati pojedinačno, već o najjednostavnijim greškama koje se mogu uspješno ukloniti korištenjem samog DBMS-a. Za provjeru, popravak i optimizaciju prikladno je koristiti uslužni program mysqlcheck.

Za provjeru baze podataka učinite gdje andrey_drupal8- naziv baze podataka:

Mysqlcheck -u root -p --check andrey_drupal8

Sve baze podataka mogu se provjeriti odjednom naredbom:

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

A budući da cijeli izlaz najvjerojatnije neće stati na zaslon, ima smisla preusmjeriti ga na naredbu manje:

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

imajte na umu da manje omogućuje vam pomicanje izlaza prema dolje i gore pomoću strelica, pritisnite za izlaz q.

Ako su pronađene pogreške u bilo kojoj od baza podataka, trebali biste ih pokušati ispraviti, da biste to učinili, naznačite:

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

Za optimizaciju koristite ključ - - optimizirati, možete optimizirati jednu bazu podataka ili nekoliko, da biste to učinili, navedite ih nakon ključa --baze podataka:

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

i sve odjednom:

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

Prijenos i učitavanje ispisa MySQL baze podataka

Još jedan uobičajeni zadatak pri administriranju bilo kojeg DBMS-a, ispisi baze podataka koriste se i za sigurnosno kopiranje i za prijenos ili stvaranje kopija. Ako sigurnosna kopija- proces je automatiziran, te se kreiranje kopija za prijenos na drugi poslužitelj ili prije bilo kakvih značajnijih intervencija u strukturi baze podataka mora raditi ručno.

A ako se radi o velikim bazama podataka, onda ovdje phpMyAdmin loš pomagač, utječe na vrijeme izvršavanja skripti, veličinu preuzete datoteke, dostupnu memoriju itd. I dok pomoću njega još uvijek možete prenijeti veliki dump, možda ga nećete moći prenijeti natrag.

Počnimo sa stvaranjem odlagališta; uslužni program se koristi za te svrhe mysqldump, čija sintaksa slijedi sintaksu mysqlcheck. Za preuzimanje dumpa upotrijebite naredbu:

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

Za istovar nekoliko baza podataka odjednom koristite ključ --baze podataka ili --sve-baze podataka za stvaranje dumpa svih baza podataka odjednom. Izlaz naredbe treba poslati u datoteku i navesti njezinu lokaciju, u našem slučaju to je datoteka drupal8.sql u vašem matičnom imeniku. Također možete prenijeti izlaz u arhiver i odmah primiti arhivu:

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

Općenito, ne preporučujemo korištenje jednog dumpa za nekoliko baza podataka odjednom, najbolja opcija postojat će dump za svaku bazu podataka, istovremeno koristeći ključ --sve-baze podataka opravdano u slučajevima kada morate brzo napraviti sigurnosnu kopiju cijelog poslužitelja, na primjer, kada ažurirate ili ponovno instalirate DBMS, tako da možete brzo vratiti informacije ako nešto pođe po zlu.

Kako biste obnovili bazu podataka, trebate poslati dump na ulaz uslužnog programa mysql; za pojedinačne dumpove uvijek trebate navesti odredišnu bazu podataka, na primjer:

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

Odredište ne mora nužno biti izvorna baza podataka, ali imajte na umu da će, ako baza podataka već postoji, sav njen sadržaj biti zamijenjen sadržajem dumpa.

Za ispise koji sadrže više od jedne baze podataka jednostavno navedite:

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

U tom će slučaju svaka baza podataka biti učitana u svoj izvor; ako izvorna baza podataka ne postoji, bit će kreirana.

Kao što možete vidjeti, stvaranje i vraćanje dumpova pomoću naredbenog retka događa se doslovno u jednom retku i puno je lakše i brže od korištenja phpMyAdmin-a ili sličnih alata.

Oporavak zaboravljene root lozinke za MySQL

Još jedan vrlo popularan zadatak. Recimo odmah da je nemoguće oporaviti MySQL superuser lozinku, kao i bilo koji drugi korisnik, ali je možete promijeniti. Da biste to učinili, morate imati prava superkorisnika. operacijski sustav. Prvo, zaustavimo DBMS uslugu:

Usluga mysql stop

Zatim ga pokrećemo siguran način s preskakanjem tablica privilegija:

Mysqld_safe --skip-grant-tables &

Imajte na umu da će nakon izvršavanja ove naredbe, prompt naredbenog retka nestati, ostavljajući samo trepćući kursor. Pišemo izravno tamo:

Mysql -u root

i ulazimo u mysql okruženje s root prava bez unosa lozinke.

Čini nam se da su mnogi već pogodili što dalje, ali Postavi lozinku neće raditi u ovom načinu rada, pa morate ići drugim putem. Ne zaboravite da su podaci o korisnicima pohranjeni u tablici korisnik servisna baza podataka mysql. Zatim pokrećemo sljedeći upit:

Ažurirajte mysql.user set password = password ("nova lozinka") gdje je korisnik="root";

Važno! U novim verzijama MySQL-a umjesto stupca lozinka stolovi korisnik koristi se stupac autentifikacijski niz, pa umjesto toga Postavi lozinku treba naznačiti postaviti autentifikacijski niz.

Ovaj zahtjev će se instalirati Nova lozinka Nova lozinka za sve retke u stupcu korisnik koji su navedeni korijen.

Ažurirajmo predmemoriju privilegija:

Privilegije ispiranja;

Izađimo iz moda:

Zaustavimo uslugu i pokrenimo je u normalnom načinu rada:

Usluga mysql stop
servis mysql start

Nadamo se da ćete nakon čitanja ovog članka steći osnovne vještine rada s MySQL-om iz naredbenog retka i da ćete se moći osjećati sigurni čak i kada phpMyAdmin nije dostupan, a možda čak i cijeniti pogodnost naredbe konzole i sve ćete se rjeđe prijavljivati ​​na panel, radije izravno upravljati poslužiteljem.