Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • MySQL - naredbe Windows konzole. Osnove MySQL administracije pomoću naredbenog retka

MySQL - naredbe Windows konzole. Osnove MySQL administracije pomoću naredbenog retka

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 zadataka MySQL administracija iz naredbeni redak.

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 stvar 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 se ovom korisniku dopušta povezivanje, % - 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 jednostavnog korisnika ovaj 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, jasno ćemo mu oduzeti privilegije na tuđe baze podataka:

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

Zatim možemo postaviti prava po vlastitom nahođenju, na primjer, izdavanje puna prava na baze 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 zadanom kodnom stranicom i kodiranjem 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

Dok MySQL aktivno radi, baze podataka mogu postati fragmentirane 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 nije dobar pomagač, utječe na vrijeme izvršavanja skripti, veličinu preuzete datoteke, Dostupna memorija 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 nešto učiniti brzo sigurnosna kopija cijeli poslužitelj, 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 superkorisnička prava na operativni sustav. Prvo, zaustavimo DBMS uslugu:

Usluga mysql stop

Zatim ga pokrećemo u sigurnom načinu rada, preskačući tablice 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 novom MySQL verzije 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 početne vještine rada s MySQL-om iz naredbenog retka i da ćete se moći osjećati samopouzdano čak i kada phpMyAdmin nije dostupan, a možda ćete čak cijeniti praktičnost konzolnih naredbi i manje ćete ulaziti ploču, preferirajući izravno upravljanje poslužiteljem.

  • Oznake:

Omogućite JavaScript za pregled

Zadnja izmjena: 22.12.2017

Obično se baze podataka koriste kao pohrana podataka. PHP vam omogućuje korištenje drugačiji sustav upravljanje bazom podataka, no najpopularniji je danas u kombinaciji s PHP-om MySQL. MySQL predstavlja besplatno softver, koji vam omogućuje interakciju s bazama podataka pomoću SQL naredbi. O procesu instaliranja i konfiguriranja MySQL-a već je bilo riječi.

Kako bismo vam olakšali rad s bazama podataka MySQL podaci Instalirajmo poseban skup phpMyAdmin skripti. phpMyAdmin pruža intuitivno web sučelje za upravljanje MySQL bazama podataka. Korištenje ovaj alat, puno je lakše raditi s bazama podataka nego upravljati MySQL-om preko konzole.

Da biste instalirali phpMyAdmin, preuzmite arhivu i raspakirajte je u mapu C:\localhost gdje su dokumenti za php. Preimenujmo neraspakiranu mapu u phpMyAdmin radi kratkoće.

U raspakiranom direktoriju phpMyAdmin kreirajte datoteku config.inc.php sa sljedećim sadržajem:

A kako bismo bili sigurni da je sve ispravno konfigurirano, u pregledniku idemo na phpMyAdmin, na primjer, http://localhost:8080/phpmyadmin:

U lijevom stupcu možete vidjeti sve dostupne baze podataka na MySQL poslužitelju. Čak i ako još niste stvorili nijednu bazu podataka, poslužitelj već ima skup zadanih baza podataka.

Desna strana phpMyAdmin sučelja sadrži osnovne alate za upravljanje bazom podataka, kao i razne informacije o konfiguraciji.

Stvaranje MySQL baze podataka u phpMyAdmin

Za razmjenu podataka s MySQL poslužiteljem (spremanje, mijenjanje, brisanje, dohvaćanje podataka) potrebna nam je baza podataka. Bazu podataka možemo kreirati iz MySQL konzole, kao i iz phpMyAdmin vizualnog sučelja.

Otvorimo phpMyAdmin sučelje. Idemo na karticu Baze podataka. Ispod etikete Napravite bazu podataka Unesite neki naziv za novu bazu, na primjer, compstore i kliknite na gumb "Create".

A nakon toga ćemo dobiti poruku o uspješno stvaranje novu bazu podataka i ona će biti dodana na popise baza podataka.

Nova baza je još uvijek prazna i ne sadrži ništa. Dodajmo mu tablicu koja će pohraniti podatke. Da biste to učinili, kliknite na naziv baze podataka i bit ćemo odvedeni na karticu "Struktura", gdje će nam biti ponuđene opcije za novu tablicu. U polje "Naziv" unesite naziv nove tablice. Neka tablica pohranjuje podatke o modelima pametnih telefona, pa upišimo naziv "telefoni", a kao broj stupaca upišimo broj 3:

Za izradu tablice kliknite na gumb "Naprijed". Nakon toga, imat ćemo skup ćelija za postavljanje parametara stupca. Za nazive stupaca redom naznačimo sljedeće: ID, naziv, tvrtka. Kao tip, navest ćemo tip INT za stupce id, a tip VARCHAR za stupce imena i tvrtke. Za stupce s nazivom i tvrtkom u polje "Duljina/vrijednosti" unesite broj 200 - on će označavati maksimalnu duljinu retka u znakovima. Također, za stupac id, označite PRIMARY u polju "Index" i stavite kvačicu u polje "A_I" (AutoIncrement):

Tako će tablica imati stupce za jedinstveni ID, naziv telefona i naziv proizvođača. Zatim kliknite na gumb "Spremi" ispod.

Nakon izrade tablice, možemo vidjeti tablicu i njene stupce u stupcu baze podataka:

Nije jedini način stvaranje tablica u phpMyAdmin-u jer ovdje možemo upravljati bazom podataka pomoću SQL upita. Dakle, odaberite našu bazu podataka na popisu baza podataka i idite na karticu “SQL”. Prikazuje polje za unos naredbe u SQL upitnom jeziku. Unesite u njega sljedeću naredbu:

CREATE Table phones1 (id INT NOT NULL AUTO_INCREMENT GLAVNI KLJUČ, ime VARCHAR(200) NOT NULL, tvrtka VARCHAR(200) NOT NULL)

Ovo je standardna naredba za stvaranje SQL tablice. Nakon ključnih riječi CREATE Table dolazi naziv kreirana tablica, nakon čega slijede definicije stupaca odvojenih zarezima u zagradama.

Svaka definicija stupca sadrži naziv stupca, njegovu vrstu i niz dodatnih vrijednosti. Na primjer, definicija id stupca (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) označava naziv stupca, tip je INT, a također da stupac mora imati vrijednost - NOT NULL, da će se njegova vrijednost automatski povećati za jedan s dodatkom novog objekta - AUTO_INCREMENT, te da igra ulogu primarnog ključa - PRIMARY KEY.

Općenito, tablica stvorena na ovaj način bit će ekvivalentna onoj prethodno stvorenoj. Pritisnite gumb Naprijed i stvorit će se druga tablica, phones1.

Pozdrav, dragi čitatelji bloga, vrijeme je da promijenite uobičajeni phpMyAdmin, brutalnijim alatom za upravljanje bazom podataka. Danas ćemo steći osjećaj za MySQL konzolu i naučiti kako izvršavati standardne naredbe, kao i naredbe za oporavak baze podataka. MySQL konzola- ovo je standardni DBMS (Sustav za upravljanje bazom podataka) za MySQL, koji se isporučuje s proizvodom.

Kada vam MySQL konzola može dobro doći?

Sa stajališta web programera početnika, phpMyAdmin obavlja sve funkcije potrebne za normalan rad. Zamislite da niste samo web programer, već dijelom i administrator sustava koji je dužan obnoviti bazu podataka nakon kvara.

U ovom slučaju ne možete bez vještina rada s MySQL konzolom. Malo kasnije ćemo pogledati naredbe za vraćanje baze podataka pomoću konzole, ali za sada počnimo s osnovama.

Kako pokrenuti MySQL konzolu

Konzolu možete pokrenuti kroz Windows Explorer pronalaskom uslužnog programa mysql.exe u mapi MySQL. Obično se nalazi na: [put do mape]\mysql\bin\mysql.exe. Ako koristite Denver, MySQL konzola, trebali biste gledati u ovom smjeru:
C:\WebServer\usr\local\mysql\bin\mysql.exe

Osim Windows Explorera, možete koristiti naredbeni redak:

  • Pokrenite cmd.exe
  • Napišite puni put do datoteke mysql.exe
  • Pritisni enter

Trebali biste vidjeti nešto poput ovoga:

Pogreška označava da za pokretanje mysql konzole morate unijeti korisničku prijavu i lozinku. Kada radite s Denverom, standardni korisnik baze podataka je root s praznom lozinkom.
Izvršite istu naredbu s dodatnim parametrima koji pokazuju podatke o autorizaciji.

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

Ako je sve učinjeno kako treba, dobit ćete poruku " Dobro došli na MySQL konzolu..."

Možete provjeriti jeste li uspješno spojeni na poslužitelj baze podataka unosom naredbe show databases; . Kao rezultat njegovog izvođenja, prikazat će se popis baza podataka prisutnih na poslužitelju.

Pokušajmo odabrati jednu od baza podataka i pogledati popis tablica u njoj:

koristiti test; pokazati tablice;

U svom primjeru pozivam se na testnu bazu podataka; ako je nemate, pogledajte bilo koju drugu dostupnu.

Kao eksperiment, možete pokušati stvoriti probnu bazu podataka pomoću naredbe:

izraditi test baze podataka;

Na koju ćete dobiti poruku: " UPIT OK, zahvaćen je 1 redak", što pokazuje da je baza podataka pod nazivom test uspješno kreirana.

Kreirajmo sada tablicu narudžbi u testnoj bazi podataka.

kreiraj test tablice (`id` int(11),`content` varchar(255));

I ponovno pokrenite naredbu show tables; , koji će pokazati da je tablica stvarno kreirana i dostupna za rad s njom.

Također možete pokušati prikazati popis stupaca u tablici:

prikaži stupce iz test.order;

Pa, da zaključimo naše upoznavanje MySQL konzola, izvršimo neki upit:

SELECT * FROM test.order;

Dakle, dragi čitatelji, čestitam vam, sada možete raditi s MySQL u spartanskim uvjetima bez phpMyAdmina. Evo popisa svakodnevnih naredbi:

  • CREATE DATABASE DB_NAME; — stvoriti novu bazu podataka;
  • PRIKAŽI BAZE PODATAKA; — pregled dostupnih baza podataka;
  • USE DB_NAME; — odaberite bazu podataka;
  • POKAŽI TABLICE; — pregled svih tablica;
  • PRIKAŽI STUPCE IZ TABLE_NAME; — pregled stupaca i njihovih svojstava;
  • CREATE TABLE TABLE_NAME (`ID` INT(11),`NAME` VARCHAR(255));— stvaranje tablice;
  • ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT(11);— dodajte stupac u tablicu;
  • ALTER TABLE TABLE_NAME DROP COLUMN_NAME;— ukloniti stupac iz tablice;
  • MYSQL -UUSERNAME -PPASSWORD -HHOST DB_NAME — ispuni bazu podataka;
  • MYSQLDUMP -UUSERNAME -PPASSWORD -HHOST DB_NAME > FILE_NAME.SQL— napraviti dump baze podataka;
  • PRESTATI; — izađite iz MySQL konzole.

Naredbe za vraćanje tablica putem MySQL konzole

Kao što sam obećao na početku članka, objavljujem naredbe za vraćanje tablica. Ove naredbe mogu biti korisne nakon kvara poslužitelja.

Dobar dan kolege :)

Da, točno kolege, jer običnom smrtniku MySQL naredbeni redak (ili MySQL Shell, kako ga programeri također vole zvati), kao i rad s MySQL-om u konzoli, vjerojatno neće biti od koristi.

Da bi ova tema bila zanimljiva potrebno je minimalno biti sistemski administrator početnik koji načelno ne koristi phpMyAdmin i ostala sučelja.

Pokretanje konzole na drugom OS-u

Budući da ću demonstrirati kako se koristi naredbeni redak MySQL u konzoli poslužitelja, bilo bi dobro prvo početi s njim.

Radnja je jednostavna, poznata mnogima, za što je dovoljno poznavanje "vrućih tipki".

Pokretanje konzole u sustavu Windows:

  • Win+R za otvaranje naredbenog retka Windows žice s administratorskim pravima;
  • Unesite naredbu cmd
  • Klik Unesi na tipkovnici

Pokretanje konzole u Linux distribucijama (terminal): u Ubuntuu, s kojim sam radio, dovoljna je sistemska kombinacija tipki Ctrl+Alt+T. Ne mogu ništa reći o drugim operativnim sustavima temeljenim na Linuxu.

Pokretanje konzole na MacOS-u: Nisam to sam napravio, jer... Mac još nisam nabavio i teško da ću ga nabaviti jer mi ne treba, ali koliko sam uspio saznati, u ovom OS-u ne postoje "vruće tipke" za pozivanje terminala. Dakle, ako ste korisnik Appleovih proizvoda, pokrenite konzolu preko sučelja OS-a, srećom postoji mnogo priručnika na internetu.

Malo je neugodno čak i objaviti takve informacije u slučaju da neki profesionalni sistem administrator s velikim iskustvom slučajno naleti na ovaj članak, jer pomislit će: “Autor svoje čitatelje smatra programerima, ali u isto vrijeme podučava kako pokrenuti konzolu... Nekakav psihopat :-).”

Da, sasvim logično :) Ali samo uzimam u obzir situaciju da uz profesionalne programere ovdje mogu doći i početnici. Zato se trudim da informacije budu potpune i dostupne svim kategorijama korisnika, kao što sam već napomenuo.

Osnovne naredbe MySQL konzole

Dakle, prije svega, moramo pristupiti MySQL naredbenom retku u konzoli. Da biste to učinili, otvorite konzolu poslužitelja i, ako imate MySQL instaliran globalno kao uslugu, tada za "provjeru veze" pišemo sljedeće:

Mysql -V

Naredba konzole mysql omogućuje nam pokretanje istoimenog uslužnog programa, koji je MySQL naredbeni redak.

To će nam omogućiti da saznamo verziju MySQL-a instaliranu na računalu i provjerimo je li uopće instaliran kao servis. Ako je to slučaj, tada ćete na konzoli vidjeti nešto poput sljedećeg teksta: .

Da, nisam "ludi koder", jer koristim Windows :) Ali nije u tome poanta. Na Unix sustavi postupak će biti isti.

Ako iznenada MySQL nije globalno instaliran na vašem računalu ili trebate raditi s nekoliko verzija MySQL-a, u kojima postoje samo direktoriji s MySQL datotekama i bibliotekama, tada će pokretanje MySQL-a kroz konzolu izgledati ovako.

U konzoli idite u direktorij u kojem se nalazi izvršna datoteka MySQL (u Windowsima je barem mysql.exe) sa sljedećom naredbom:

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

Naravno, vaš put do distribucije može biti drugačiji. Kao primjer, odlučio sam pokrenuti jednu od verzija MySQL-a uključenu u OpenServer.

I pokrećemo MySQL, usput provjeravajući njegovu verziju:

Mysql.exe -V

Kao rezultat, poruka slična prvom slučaju trebala bi se prikazati na konzoli mysql Verzija 14.14 Distrib 5.7.16, za Win64 (x86_64).

To je to, riješili smo pokretanje MySQL-a iz naredbenog retka kroz konzolu poslužitelja, sada ćemo se spojiti izravno na MySQL poslužitelj.

Spajanje na MySQL poslužitelj u konzoli

MySQL poslužitelj ne mora nužno biti na istom računalu na kojem mu pokušavate pristupiti u konzoli. Stoga, kako bi se spojili na na udaljeni poslužitelj MySQL putem konzole je bio moguć; uslužni program mysql ima mnogo parametara pomoću kojih možete odrediti potrebne postavke.

Kako bismo pokrenuli MySQL naredbeni redak u konzoli, samo trebamo napisati sljedeće u konzoli poslužitelja:

Međutim, u ovom slučaju dobit ćete sljedeću pogrešku: POGREŠKA 1045 (28000): Pristup odbijen za korisnika 'ODBC'@'localhost' (upotrebom lozinke: NE). Ovako izgleda poruka o pogrešci na mom Windowsu. Ako koristite Linux, tada će umjesto ODBC biti ime korisnika vašeg sustava pod kojim izvršavate radnje u sustavu.

Sve je to zato što prema zadanim postavkama, prilikom spajanja na MySQL poslužitelj, konzola koristi ODBC korisnika na Windowsima bez lozinke i korisnika sustava na Linuxu s istom lozinkom. Zadani host je localhost, tj. Ovaj se korisnik može spojiti samo s lokalnog računala.

Stoga imate dvije mogućnosti: ili koristiti drugog korisnika za prijavu u MySQL naredbeni redak ili stvoriti MySQL korisnika sa potrebnim računom. Ali za drugu metodu još uvijek ne možemo bez prve :) Stoga se prvo spajamo na MySQL poslužitelj pod standardnim korisnikom korijen, koji nastaje kada MySQL instalacija na računalo i za koje je prema zadanim postavkama dozvoljen pristup s lokalnog hosta:

Mysql -u root -p

Kada se od vas zatraži da unesete lozinku, jednostavno pritisnite Enter (ako je niste unijeli, naravno, prilikom instalacije MySQL-a). Zatim ćete se spojiti na MySQL poslužitelj, dodijelit će vam se ID veze i pristupiti MySQL naredbenom retku.

Ako se želite spojiti na MySQL poslužitelj koji ima određeno ime hosta ili IP ili se želite prijaviti kao drugi korisnik, upotrijebite sljedeći format naredbe:

Mysql -u korisničko_ime -p korisnička_lozinka -h MySQL_poslužitelj_host_ili_IP

Umjesto ćiriličnih znakova s ​​podvlakom, naravno, svoje podatke trebate unijeti latiničnim slovima. Usput, ako želite, ovu naredbu možete napisati u nešto drugačijem formatu:

Mysql --user=korisničko_ime --password=korisnička_lozinka --host=host_ili_IP_MySQL_poslužitelja

Ako iz nekog razloga ne želite da se vaša lozinka za MySQL vezu pojavi u konzoli (što je zapravo točno), možete koristiti sljedeću naredbu:

Mysql -u korisničko_ime -h MySQL_poslužitelj_host_ili_IP -p

Budući da lozinka nije izričito navedena, od vas će se tražiti da je unesete u sljedećem koraku. Štoviše, znakovi koje unesete neće biti prikazani čak ni u obliku zvjezdica (zamjenskih znakova), umjesto toga postojat će samo prazan redak.

osim navedene postavke vezu, moguće je koristiti sljedeće parametre, čije će vrijednosti biti navedene na isti način kao gore:

  1. --port ili -P - za određivanje porta za povezivanje s MySQL poslužiteljem;
  2. —protokol — protokol koji će se koristiti za povezivanje ( moguće opcije: TCP za Windows i Linux, SOCKET za Linux, PIPE i MEMORY za Windows);
  3. --socket ili -S - ovaj parametar je koristan ako se želite spojiti preko utičnica, stoga će vrijednost parametra biti utičnica;
  4. --pipe ili -W - parametar je potreban ako želite koristiti imenovane “cijevovode” ili “cijevi” za veze;
  5. --shared-memory-base-name - ovaj parametar će biti koristan za MEMORY veze putem zajedničke memorije na Windowsima;

Jasno je da popis svih parametara za povezivanje s MySQL poslužiteljem nije ograničen na ovo. U stvarnosti ih je mnogo više.

Ako iz nekog razloga standardna opcija naznaka hosta, korisnika i lozinke nije prikladna za vas, tada će vam sljedeće informacije biti korisne da biste saznali potpuni popis parametara veze - https://dev.mysql.com/doc/refman/5.7/en/ povezivanje.html

Kako napraviti bazu podataka u MySQL konzoli

Nakon što smo se spojili na MySQL poslužitelj i pokrenuli MySQL naredbeni redak, vrijeme je da počnemo životni ciklus našu bazu podataka web stranice, koja započinje njezinom izradom. Da biste kreirali MySQL bazu podataka putem naredbenog retka, morate unijeti sljedeću naredbu:

CREATE DATABASE database_name;

Ista se radnja može učiniti pomoću posebnog uslužnog programa MySQL mysqladmin. Pokreće se izolirano od MySQL naredbenog retka, tj. da biste ga koristili morat ćete izaći iz njega ili otvoriti nova konzola poslužitelj.

Zatim pozovite sljedeću naredbu:

Mysqladmin create database_name;

Usput, pomoću uslužnog programa mysqladmin ne možete samo stvarati i brisati baze podataka bez prijave na MySQL konzolu, već i upravljati konfiguracijom poslužitelja, MySQL procesima, upravljati replikacijama, pingati poslužitelje i raditi mnoge druge zanimljive stvari.

Kako stvoriti MySQL korisnika na naredbenom retku

Ne često, ali ponekad morate stvoriti novog MySQL korisnika. Štoviše, u konzolnom načinu rada.

Na MySQL naredbenom retku to se radi na sljedeći način:

CREATE USER "user_name"@"host_or_machine_IP" IDENTIFICIRAN PREMA "user_password";

Korisnik je kreiran. Parametar host_ili_IP_stroj znači da kada kreirate korisnika morate navesti IP s kojeg se može spojiti na poslužitelj ili naziv hosta (naziv domene poslužit će radni stroj na liniji).

Usput, kada navedete host za povezivanje s MySQL poslužiteljem, možete koristiti simbol postotka - % , što znači da korisnik se stvara može se spojiti na MySQL poslužitelj s bilo koje IP adrese ili hosta.

Mora se uzeti u obzir da u u ovom slučaju localhost nije uključen u popis adresa navedenih pomoću %, jer localhost označava vezu putem UNIX utičnice umjesto standardnog TCP/IP-a. Oni. Ako će se kreirani MySQL korisnik spojiti na poslužitelj ne koristeći utičnice, već koristeći drugačiji protokol naveden prilikom povezivanja na MySQL poslužitelj u konzoli, tada će morati kreirati dva korisnička računa:

STVARAJ KORISNIKA "korisničko ime"@"%" IDENTIFICIRAN PO "lozinkom"; CREATE USER "username"@"localhost" IDENTIFICIRAN PO "password";

Shvatili smo kako stvoriti MySQL korisnika u konzoli. Postavimo sada korisnička prava za izvođenje bilo kakvih radnji s našom novostvorenom bazom podataka sljedećom naredbom:

DODIJELI SVE PRIVILEGIJE ZA database_name.* TO "user_name"@"host_or_machine_IP";

Opcija SVI, kao što razumijete, samo označava da su korisniku dopuštene bilo kakve radnje s određenom bazom podataka. Kompletan popis prava koja se mogu dodijeliti korisnicima pomoću naredbe GRANT, možete pronaći ovdje (iako je opis parametara na engleskom) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Usput, možete koristiti nekoliko parametara privilegija, navodeći ih prilikom pozivanja naredbe, odvojene zarezima.

Ako želite kreirati superkorisnika, tj. ima globalne privilegije za izvođenje raznih radnji sa svim bazama podataka na poslužitelju, zatim upotrijebite sljedeći poziv naredbe:

GRANT ALL ON *.* TO "user_name"@"host_or_machine_IP";

Usput, bilo bi dobro očistiti predmemoriju MySQL poslužitelja nakon postavljanja privilegija. Ako ih promijenite, nemojte zaboraviti to učiniti pozivom sljedeće naredbe:

PRIVILEGIJE ISPIRANJA;

A ako želite promijeniti korisnička prava, prvo upotrijebite sljedeću naredbu za resetiranje svih prava:

OPOZIV SVE PRIVILEGIJE NA *.* OD "user_name"@"host_or_machine_IP";

A zatim instalirajte one koje treba koristiti GRANT, kao što je ranije opisano.

Ako u budućnosti budete trebali promijeniti MySQL korisničku lozinku, da biste to učinili, samo pokrenite sljedeće naredbe u MySQL Shell-u:

POSTAVITE LOZINKU ZA "user_name"@"host_or_machine_IP" = PASSWORD("nova_lozinka"); PRIVILEGIJE ISPIRANJA;

Poništavanje predmemorije privilegija MySQL poslužitelja potrebno je za istu svrhu kao i kod promjene prava - bez ove radnje promjena MySQL korisničke lozinke možda se neće računati, stoga nemojte biti lijeni koristiti je :)

Usput, internet je pun primjera korištenja sljedeće naredbe za resetiranje MySQL lozinke korisnika:

UPDATE mysql.user SET Password=PASSWORD("password") WHERE User="username";

Ali ova opcija mi nije radila na MySQL 5.7, dajući pogrešku POGREŠKA 1054 (42S22): Nepoznati stupac 'Zaporka' u 'popisu polja'. Ispostavilo se da je razlog nepostojanje polja Password u tablici mysql.user.

Iz čega možemo pretpostaviti da ova opcija radi samo za starije verzije MySQL-a, gdje je ovo polje postojalo u korisničkoj tablici. Stoga, da budete sigurni, koristite moju prvu opciju, osim ako, naravno, niste prisiljeni raditi s pretpotopnim softverom bez mogućnosti ažuriranja verzija :)

Time je dovršeno stvaranje novog MySQL korisnika i pregled radnji s njegovim pravima i lozinkama. Idemo dalje.

Odabir baze podataka pri radu s MySQL putem naredbenog retka

Sada, nakon što kreiramo korisnika u MySQL Shell-u i dodijelimo mu prava za rad s bazom podataka, trebamo odabrati upravo tu bazu podataka kako bismo mogli raditi sa samom bazom podataka i podacima koji su u njoj pohranjeni.

Da biste to učinili, koristite sljedeću naredbu u MySQL konzoli:

USE database_name;

Ako je sve prošlo u redu, na konzoli će se prikazati poruka Baza podataka promijenjena, što će signalizirati da smo se preko konzole prijavili u MySQL bazu podataka. Usput, kada se povezujete s MySQL poslužiteljem, u početku možete odrediti bazu podataka s kojom ćete morati raditi. Da biste to učinili, morate unijeti sljedeću naredbu u konzolu poslužitelja:

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

Ili ista stvar, samo se traži korisnička lozinka za MySQL:

Mysql -u korisničko_ime -h host_ili_IP_MySQL_poslužitelj_baza_podataka -p

To je sve. Mislim da sada nećete imati problema sa spajanjem na MySQL bazu preko konzole :)

Rad s MySQL tablicama preko MySQL konzole

Dakle, kreirali smo MySQL bazu podataka preko konzole. Sada bi bilo lijepo naučiti raditi s njim za slučaj kada će MySQL naredbeni redak biti jedini način pristupa podacima pohranjenim na poslužitelju (kao što je bio slučaj kod mene, o čemu sam govorio na početku članak).

Kao što znate, sastoji se od tablica unutar kojih su informacije već pohranjene u obliku zapisa s nekoliko polja. Stoga, slijedeći hijerarhiju smještaja informacija, prvo ćemo naučiti kako izvoditi tipične CRUD operacije s tablicama.

CRUD operacije, ako netko nije upućen, su operacije kreiranja, čitanja, ažuriranja i brisanja podataka s engleskog. “Stvori, pročitaj, ažuriraj, izbriši” (ovo će vam možda trebati tijekom intervjua).

Dopustite mi da vas podsjetim da se za izvođenje radnji s tablicama prvo morate povezati s MySQL bazom podataka pomoću naredbe KORISTITI.

Dakle, prva stvar na našem dnevnom redu je naredba za kreiranje MySQL tablice u bazi putem naredbenog retka, koja izgleda ovako:

CREATE TABLE table_name (field_name_1 field_type_1, field_name_2 field_type_2(field_size_2), INDEX(field_name_1), ...);

Kao što razumijete, može postojati onoliko polja koliko želite, njihove vrste mogu biti različite, kao i prisutnost indeksa i ključeva su izborni.

Usput, ako želite kopirati tablicu u drugu bazu podataka ili jednostavno stvoriti kopiju u trenutnoj, sljedeće naredbe će vam pomoći:

CREATE TABLE new_table_name LIKE old_table_name; INSERT new_table_name SELECT * FROM old_table_name;

Ove vam naredbe omogućuju kopiranje strukture tablice i njenih podataka zajedno s indeksima tablice i okidačima. Ako trebate samo podatke i strukturu (imena polja i njihove vrste podataka), onda možete proći pozivom jedne naredbe:

CREATE TABLE new_table_name AS SELECT * FROM old_table_name;

Sljedeća operacija iz CRUD bloka je čitanje. U slučaju tablica, čitanje će biti prikaz njihove strukture. Da biste to učinili, postoje sljedeće četiri naredbe:

PRIKAŽI CIJENE STUPCE IZ table_name; DESCRIBE table_name; OBJASNITE table_name; SHOW CREATE TABLE table_name;

Prvi prikazuje informacije o poljima tablice baze podataka u tablični oblik na MySQL konzolu navodeći naziv polja, vrstu podataka, prisutnost ključeva, zadanu vrijednost itd. Kada koristite ključnu riječ PUNO možete dobiti proširene informacije, uključujući privilegije za svako od polja za trenutni korisnik, komentari za svaki od njih i značenje kodiranja.

Druga i treća naredba jednostavno su skraćeni oblici prve naredbe bez proširenih informacija. Zašto ih je bilo potrebno proizvoditi - ne mogu ni zamisliti... Da li da bi se imalo što pitati na razgovorima za posao? 🙂

Četvrta naredba, osim naziva, tipova polja i njihovih zadanih vrijednosti, omogućuje dobivanje vrijednosti ključeva tablice, mehanizama tablice (InnoDB, MyISAM), kodiranja itd.

Operacija ažuriranja u slučaju tablica predstavlja promjenu njihove strukture, tj. razne akcije s poljima tablice MySQL:

ALTER TABLE table_name DROP COLUMN field_name; ALTER TABLE naziv_tablice ADD COLUMN naziv_polja VARCHAR(20); ALTER TABLE table_name CHANGE old_field_name new_field_name VARCHAR(50); ALTER TABLE table_name MODIFY field_name VARCHAR(3);

Prva naredba omogućuje brisanje određenog polja tablice, druga vam omogućuje da ga dodate, treća vam omogućuje preimenovanje polja i istovremeno promjenu vrste podataka pohranjenih u njemu, a četvrta vam omogućuje promjenu samo vrste podataka .

Isto se može učiniti s indeksima tablica koristeći uglavnom slične naredbe:

ALTER TABLE table_name ADD UNIQUE INDEX index_name (field_name_1, ...); ALTER TABLE table_name preimenuj INDEX stari index_name TO novi index_name; ALTER TABLE table_name DROP INDEX index_name;

Sljedeće naredbe vam omogućuju dodavanje, preimenovanje i uklanjanje indeksa iz MySQL tablica putem naredbenog retka. Za dodavanje i uklanjanje indeksa, usput, postoji još jedna alternativna opcija za korištenje neovisnih naredbi, umjesto da to radite putem PROMIJENI STOL. Stoga, ako želite, možete ih koristiti:

CREATE UNIQUE INDEX index_name (field_name_1, ...) ON table_name; DROP INDEX index_name ON table_name;

Zadane naredbe su ekvivalentne prvoj i posljednjoj iz prethodnog bloka. Nažalost, ne postoji posebna naredba za preimenovanje indeksa. A za promjenu vrste indeksa, nažalost, u MySQL-u uopće ne postoji način. Jedino rješenje je brisanje indeksa i ponovno kreiranje sa željenim tipom.

Pa, konačno dolazimo k sebi zadnja operacija iz bloka CRUD - za brisanje. Uklanjanje MySQL tablica iz baze podataka vrlo je jednostavno. Samo pokrenite sljedeću naredbu u MySQL konzoli:

DROP TABLE ime_tablice;

Ponekad se u praksi pojavljuju situacije koje onemogućuju brisanje tablice ili promjenu njezine strukture. U pravilu je to zbog upotrebe stranih ključeva u bazi podataka za međusobno povezivanje tablica. Osobno sam se više puta susreo s ovom situacijom, o čemu sam govorio na početku članka.

Stoga, ako vam je MySQL prilikom brisanja ili ažuriranja strukture tablice ili njenih podataka vratio pogrešku s tekstom Nije moguće izbrisati ili ažurirati nadređeni redak: ograničenje stranog ključa ne uspijeva, onda će vam sljedeće informacije dobro doći.

Kako bismo proveli naš plan, moramo privremeno onemogućiti provjeru postojanja stranih ključeva, izvedi potrebna operacija, a zatim ponovno uključite provjeru, jer to je stvarno neophodno i omogućuje vam zaštitu od kršenja integriteta podataka u većini slučajeva.

Zapravo, MySQL strani ključevi su potrebni za ovu svrhu.

Dakle, da biste izbrisali podatke koji su ometani stranim ključevima, trebate izvršiti sljedeće korake u MySQL konzoli:

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

Usput, ako želite izbrisati strani ključ, postupak će biti isti kao kod brisanja indeksa:

ALTER TABLE ime_tablice DROP FOREIGN KEY ime_stranog_ključa;

Kako biste saznali naziv MySQL stranog ključa tablice, koristite već poznatu naredbu MySQL konzole PRIKAŽI STVARANJE TABLICE.

Rad s podacima MySQL tablice putem naredbenog retka

Za CRUD tablice, pogledali smo operacije u MySQL konzoli. Za potpunu sliku, ovoj varalici nedostaju samo naredbe za rad sa samim podacima pohranjenim u tablicama baze podataka. Mislim da mnogi ljudi znaju ove naredbe i da su ih koristili u praksi, ali ipak ću vas opet podsjetiti na njih.

CRUD operacije za rad s podacima MySQL tablice izgledat će ovako:

INSERT INTO table_name (field1, field2, ...) VALUES (field_1 value, field_2 value, ...); SELECT field1, field2, ... FROM table_name; UPDATE table_name SET polje1 = vrijednost polja_1, polje2 = vrijednost polja_2; DELETE FROM table_name WHERE field1 = field_1 value;

Gore navedene naredbe odgovaraju operacijama kreiranja, čitanja, ažuriranja i brisanja podataka iz tablica MySQL baze podataka. Na koristeći SELECT i UPDATE, također je moguće koristiti kvalificirajuću naredbu WHERE, s kojom možete specificirati odabir podataka na isti način kao što je opisano u slučaju korištenja DELETE.

Također, kada dohvaćate podatke iz baze podataka koristeći SELECT, možete koristiti sljedeću opciju za dobivanje vrijednosti svih polja tablice:

SELECT * FROM table_name;

Naravno, ove operacije mogu koristiti i druge operatore osim WHERE. Osobito ih je mnogo kod dohvaćanja podataka pomoću SELECT-a: ovdje postoji UNION za kombiniranje rezultata nekoliko upita, te razne vrste JOIN-a. Nabrajanje svega je jako dugo i bit će zamorno i meni i vama ovo čitati.

Stoga, dogovorimo se: ako želite znati više o nečemu, samo napišite o tome u komentarima, a ja ću vam pokušati odgovoriti. Ili će to učiniti drugi upućeni članovi naše zajednice. U REDU? 😉

Stoga se za sada nećemo zadržavati na ovom bloku.

Ako trebate izbrisati sve podatke iz tablice, možete koristiti sljedeću MySQL naredbu:

TRUNCATE table_name;

Prije nego što ga pozovete, kao što je ranije spomenuto, možda ćete morati onemogućiti provjeru stranog ključa u slučaju da postoje povezane MySQL tablice, što može spriječiti izvođenje potrebne radnje.

Još jedna zanimljiva točka koju ovdje treba razmotriti je ta ovu naredbu ne poništava brojač AUTO_INCREMENT, za koji je poznato da se koristi za automatsko generiranje vrijednosti polja bez potrebe za ručnim postavljanjem.

Polja ovog tipa najčešće se koriste za generiranje vrijednosti za id polja glavnog ključa, koji se koristi za uspostavljanje odnosa između podataka iz različitih tablica.

To jest, ako prije brisanja podataka tablice pomoću SKRATITI maksimalna vrijednost brojača bila je 1200, tada će prvi zapis nakon ove procedure imati vrijednost identifikatora 1201. U principu, to je u redu. Ako ste naveli veličinu dovoljnu za ovog polja, tada nećete biti u opasnosti od prekoračenja vrijednosti u skorije vrijeme.

Međutim, u nekim slučajevima, kada aplikacijski kod ima neku vrstu vezanja na vrijednost polja, ovo ponašanje može uzrokovati neugodnosti.

Da biste to izbjegli, koristite ovu opciju umjesto gornje naredbe:

TRUNCATE TABLE someTable RESTART IDENTITY;

Ova opcija pozivna naredba SKRATITIće vam omogućiti da poništite vrijednost brojača polja iz AUTOMATSKO_POVEĆANJE. Stoga će vrijednost polja prvog dodanog zapisa nakon ovog brisanja biti 1 umjesto 1201, kao u gornjem primjeru.

Kako izbrisati MySQL bazu podataka putem naredbenog retka

Životni ciklus rada s bazom podataka bliži se kraju i završava sasvim logično – njezinim brisanjem. Kako bi se ovu operaciju u MySQL konzoli morate pokrenuti sljedeću naredbu (u ovom slučaju baza podataka za brisanje možda neće biti odabrana naredbom KORISTITI):

DELETE DATABASE database_name;

Ista se radnja može učiniti pomoću uslužnog programa MySQL mysqladmin, koji sam već spomenuo na početku članka prilikom stvaranja baze podataka:

Mysqladmin drop database_name;

Kada pozovete naredbu, sljedeća poruka se pojavljuje na konzoli poslužitelja:

Ispuštanje baze podataka potencijalno je vrlo loša stvar.
Svi podaci pohranjeni u bazi podataka bit će uništeni.

Želite li stvarno ispustiti bazu podataka 'database_name'

Ukratko, ovo je upozorenje da je brisanje MySQL baze podataka vrlo loša ideja. Također se traži potvrda radnje. Ako se slažete, pišite g i pritisnite Unesi na tipkovnici, nakon čega će se na ekranu (ako je sve u redu, naravno) prikazati sljedeća poruka:

Baza podataka "database_name" je ispuštena

To je to :)

Kako izbrisati MySQL korisnika u konzoli

Sada će ista sudbina zadesiti MySQL korisnika kojeg smo stvorili da vam pokažemo kako se to radi. Ali prvo bi bilo dobro provjeriti postoji li traženi korisnik prije nego što ga izbrišete.

Od MySQL 5.7, postoji jedna naredba za obje ove radnje:

DROP USER IF EXISTS korisničko ime;

Ranije verzije MySQL-a zahtijevale su dvije odvojene naredbe:

GRANT USAGE ON *.* TO "user_name"@"host_or_IP_address"; DROP USER "user_name"@"host_or_IP_address";

Nažalost, u ovom slučaju, poruka o izvršenju operacije u MySQL konzoli tradicionalno je neinformativna 🙁 Stoga, da biste saznali da je korisnik MySQL korisnika izbrisan, možete koristiti sljedeću naredbu, koja prikazuje popis svih korisnika postoje na trenutnom MySQL poslužitelju:

SELECT Korisnik FROM mysql.user;

Ova opcija naredbe će prikazati samo korisnička imena. Ako trebate vidjeti hostove s kojih se korisnici mogu spojiti na poslužitelj i popis privilegija, možete pozvati naredbu u sljedećem obliku:

SELECT Korisnik, Host, Grant_priv FROM mysql.user;

Također u tablici mysql.user postoji puno drugih polja koja pohranjuju druge vrste privilegija i druge informacije, čiji se potpuni popis može pronaći ovdje - https://mariadb.com/kb/en/library/mysqluser- stol/

Neka vas ne zbuni da je ovo dokumentacija za MariaDB DBMS. Tehnički ovo je isto što i MySQL, jer... MariaDB je samo njegova grana ili fork od engleskog “fork” - grana, vilica.

Zašto je to učinjeno – opet, nemam pojma 🙂 Možda da svima ponosno izjavim da “imam svoj DBMS”?.. Ali, da budem iskren, nisam baš svjestan točnih motiva i razlika između MySQL-a i MariaDB. Stoga, ako znate nešto o ovome, bilo bi zanimljivo pročitati o tome u komentarima.

Izlaz iz MySQL konzole

To je sve, životni ciklus baze i korisnika koji je započeo njihovim stvaranjem, a završio njihovim brisanjem je došao kraju. Dakle, naredbeni redak MySQL, s kojim smo radili u konzoli poslužitelja pomoću uslužnog programa mysql, ne treba nam više.

Ostaje samo da se izvučemo iz toga...

Čini se da je radnja trivijalna, ali mnogi u situaciji kada trebaju izaći iz MySQL naredbenog retka jednostavno zatvaraju konzolu poslužitelja i ponovno je otvaraju. Možete se, naravno, tako ponašati, ali to oduzima dodatne sekunde radnog vremena i čini vas iritiranima svaki put kada to trebate učiniti.

Ispravno ponašanje u ovoj situaciji je jednostavno pozvati naredbu Izlaz u MySQL komandnoj liniji, nakon čega će se servis ljubazno pozdraviti s nama :)

I to je sve 🙂 Dakle, sljedeći put ne morate stvarati više konzola i ponovno ih otvarati svaki put kada trebate izaći iz MySQL-a u konzoli i ponovno mu pristupiti kako biste upravljali poslužiteljem.

To je sve što sam ti danas htio reći. Nadam se da će moja varalica za rad s MySQL naredbenim redkom putem konzole biti korisna ne samo meni, već i vama.

Govoreći o praktičnoj primjeni informacija predstavljenih u članku, želio bih vas podsjetiti da se gore navedene konstrukcije mogu koristiti ne samo u naredbenom retku MySQL i konzoli poslužitelja, već iu konzoli phpMyAdmin i drugom softveru koji pruža takva prilika.

Hoćete li ga koristiti ili ne, vaša je stvar. Ali, kao što sam rekao na samom početku članka, postoje situacije kada vam korištenje MySQL konzole može uštedjeti vrijeme i stres. Hoćete li koristiti naredbeni redak svaki dan ili ne čisto je stvar ukusa i osobnih preferencija.

U komentarima napišite koje naredbe najčešće koristite. Ili možda znate neke druge trikove. U svakom slučaju, podijelite svoje mišljenje s drugima i nastavite razgovor u komentarima drugih korisnika.

Obećavam da ćete u tom procesu naučiti puno novih stvari, baš kao što ja radim kad pišem svaki svoj članak :)

To je sve! Sretno i vidimo se opet :)

p.s.: ako trebate web stranicu ili trebate napraviti izmjene na postojećoj, ali nemate vremena ili želje za to, mogu ponuditi svoje usluge.

Više od 5 godina iskustva profesionalni razvoj web stranice. Raditi sa PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagirati, Kutni i druge tehnologije web razvoja.

Razvoj informacijske tehnologije jedno je od najnaprednijih područja ljudskog djelovanja. Stoga se u ovo područje ulaže ogroman novac. Od trenutka kada je započela do danas, riješeni su mnogi različiti problemi koji su uvelike pojednostavili svakodnevni život mnogih ljudi. No, razvojem tehnologije pojavili su se brojni problemi, a jedan od njih je prevelika količina informacija koje treba pohraniti. Baze podataka osmišljene su kako bi se riješila situacija.

Kratki pregled sustava za upravljanje bazama podataka

Budući da je problem pohranjivanja velikih količina informacija danas aktualan, postoji nekoliko rješenja. Svaki od njih usmjeren je na zadatke određenog smjera. Međutim, zajedno čine cjelovit kompleks koji pojednostavljuje problem pohrane podataka.

Postoji određena klasifikacija koja određuje potrebu korištenja određene baze podataka i DBMS-a (sustava za upravljanje bazom podataka). Trenutno se smatra najčešćim klijent-poslužitelj tehnologije pohrane podataka. To uključuje sljedeće vrste: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, Linter, MySQL. Zanimat će nas zadnja opcija- MySQL, čije naredbe u potpunosti zadovoljavaju SQL standarde. Ova je tehnologija jedna od popularnih i često se koristi za rješavanje lokalnih aplikacija i proizvodne zadatke mala razmjera.

Prethodnici klijent-poslužitelj tehnologija su file-poslužitelj DBMS, koji su izgubili svoje pozicije zbog niza postojećih nedostataka, među kojima su potreba za distribucijom jezgre DBMS na svakom računalu i značajno opterećenje na lokalna mreža, što dovodi do povećanja troškova vremena. Ova skupina uključuje Borland Paradox.

Nove tehnologije dobivaju na popularnosti

Međutim, prije nekoliko godina bilo je Napredna tehnologija, koji dobiva na popularnosti i tražen je pri rješavanju malih lokalnih problema. Ovdje se radi o ugrađeni sustavi za upravljanje bazama podataka. Glavna značajka DBMS-a koji se razmatra je odsutnost poslužiteljskog dijela. Sam sustav je biblioteka koja vam omogućuje jedinstveni rad s velikim količinama informacija koje se nalaze na njemu lokalno računalo. Ova metoda otklanja nedostatke file-poslužitelj znači, a također značajno premašuje brzinu klijent-poslužitelj tehnologije.

Primjeri uključuju OpenEdge, SQLite, BerkeleyDB, jednu od varijanti Firebird-a, Sav Zigzag, Compact, LINTER, kao i jednu od varijanti MySQL-a čije se naredbe ne razlikuju od onih koje se koriste u klijent-poslužiteljskim DBMS-ovima. Međutim ugrađeni sustavi mogu lako izgubiti svoju važnost ako zadatak prestane biti lokalne prirode.

Glavne prednosti MySQL DBMS-a

MySQL sustav za upravljanje bazom podataka jedna je od najpopularnijih tehnologija jer se može koristiti za rješavanje veliki iznos zadaci. Ako ga usporedimo s modernim analogima, možemo istaknuti niz glavnih prednosti.

Glavna prednost od rusko tržište njegova dostupnost se uzima u obzir budući da je u većini slučajeva besplatan. Druga značajka je brzina. Jedan od naj popularni sustavi je MySQL. Naredbe u njemu se izvršavaju brzo, uz minimalno vrijeme odziva. Povezivanje nekoliko klijenata na poslužitelj u višenitnom načinu rada ne utječe na brzinu obrade naredbi zbog upotrebe InnoDB mehanizma za brza podrška transakcije.

Prisutnost ODBC upravljačkog programa programerima olakšava rješavanje mnogih problema. Prednosti također uključuju mogućnost izrade zapisa fiksne i promjenjive duljine. Ali glavna funkcija, koja je visoko cijenjena među programerima, je sučelje s jezicima C i PHP. Mogućnosti koje pruža MySQL omogućile su korištenje ovaj DBMS za veliki broj pružatelja usluga internetskog hostinga.

I za običnog čovjeka kojeg zanima moderne tehnologije pohranjujući informacije, potrebno je proučavati MySQL i njihovu sintaksu jer su stručnjaci u ovom području vrlo traženi i visoko plaćeni svugdje u svijetu. Stoga, ako je netko zainteresiran za ovaj smjer, ne oklijevajte. Morate odmah početi učiti.

Što trebate učiti

Na prvi pogled može se činiti da ovo područje teško samostalno istraživanje te zahtijeva stalnu komunikaciju sa specijalistom. Međutim, nije tako. Arhitekturu i značajke MySQL-a, osnovne naredbe upitnog jezika i sve što je povezano s njim možete proučiti sami, bez pomoći konzultanta. Da biste to učinili, dovoljno je imati želju i uložiti napor da krenete dalje. Samo samorazvoj i proučavanje ovog područja omogućit će vam stjecanje novih znanja, učvršćivanje stečenih vještina i, eventualno, početi graditi karijeru i krenuti naprijed u tom smjeru.

Za studiranje glavne naredbe Prije svega, morate imati pri ruci besplatno verzija uslužni program konzole MySQL. Tu počinje proces učenja. Možete ga preuzeti sa službene MySQL web stranice. Može se lako instalirati na bilo koji operativni sustav, formirajući server i klijent na jednom računalu, što je vrlo zgodno.

Zatim trebate potražiti vodič koji sadrži osnovne informacije o MySQL okruženju. za temeljni studij u pravilu sadrže i. Postoji mnogo informacija o ovom pitanju. Međutim, izbor se mora shvatiti ozbiljno. Informacije moraju biti prezentirane dosljedno i jasno strukturirane.

U slučaju da imate osnovno znanje na engleskom, možete koristiti podršku ugrađenu u konzolu. Za to postoji posebna naredba Pomozite, koji vam pomaže razumjeti kako koristiti uslužni program MySQL.

Osnovne naredbe konzole

Glatko se krećući od glavnih značajki, mogućnosti i prednosti, dolazimo do popisa glavnih naredbi. Uslužni program MySQL u početku sadrži samo jednog korisnika, koji se koristi za učenje. Ovo je korisnik pod imenom korijen, lozinka za koju je potpuno identična imenu.

Prvo i sljedeće pokretanje MySQL konzole zahtijevat će od korisnika unos lozinke. korijen Za daljnji rad s MySQL DBMS-om. Naredbe konzole bit će dostupne tek nakon provjere autentičnosti.

Nakon uspješne provjere, radi praktičnosti, možete prikazati postojeće naredbe pomoću naredbe Pomozite. Nakon toga, sve postojeće naredbe bit će prikazane na konzoli i Kratki opis njima.

i prikaz

Sada morate ići na sljedeći korak. Da biste to učinili, morate odabrati postojeći ili ga izraditi nova baza podaci. Za odabir postojeće baze podataka morate koristiti koristiti naredbu. I unesite naziv baze podataka odvojen razmakom. U početku postoji samo jedan u uslužnom programu - s imenom test. Stoga će zahtjev izgledati ovako: koristiti test.

Za izradu baze podataka potrebno je koristiti naredbu stvoriti dajući joj ključnu riječ baza podataka i navođenje odgovarajućeg imena. Struktura će imati sljedeći oblik: stvoriti bazu podataka Naziv_baze_podataka. Za rad s stvorenom bazom podataka morate joj pristupiti pomoću naredbe koristiti.

Okolina ima funkciju dizajniranu za prikaz postojeće baze podatke, tablice, primarne ključeve ili vanjske odnose i ispisati informacije dostupne o njima na MySQL konzolu. Naredbe u ovom slučaju uvijek moraju započeti rečenicom pokazati. Na primjer, kako biste prikazali popis dostupnih baza podataka za trenutnog korisnika, samo unesite sljedeći upit: pokazati baze podataka. Za prikaz tablice dovoljno je upisom promijeniti prikazni objekt iza ključne riječi stolovi.

Kontrolne naredbe tablice

Prije nego krenemo dalje, potrebno je još jednom podsjetiti da usklađenost sa standardima SQL jezika pruža široke mogućnosti programerima, bez obzira na DBMS i operativne sustave koji se koriste. Upiti razvijeni u bilo kojem okruženju koje podržava SQL standard će se uspješno izvoditi (ako postoji baza podataka i tablice) u MySQL okruženju. Timovi Windows konzola ne razlikuju se od onih koji se koriste u drugim operativnim sustavima.

Postoji niz specifičnih naredbi za rad s tablicama koje, prevedene s engleskog, govore same za sebe. O ekipi stvoriti je gore spomenuto. Također se može koristiti za dodavanje tablica u prethodno stvorenu bazu podataka. Za brisanje objekata baze podataka, posebno tablica, koristite naredbu pad, kojemu se dodaje naziv predmeta koji se uništava. Primjer: pad Ime_ od_ tvoje_ stol.

Sintaksa poziva poslužitelju baze podataka uvijek ima opća struktura. Stoga će upit razvijen u sustavu Windows također uspješno raditi u konzoli MySQL Linux. Naredbe koje server obrađuje bez grešaka u jednoj operacijski sustav, ne može uzrokovati pogreške kod drugih.

Odaberite naredbu

Ali najvažnija naredba za rad s tablicama, čija je sintaksa prilično jednostavna, je naredba Izaberi. Koristi se za odabir podataka iz baze podataka. Početna sintaksa ima sljedeću strukturu: Izaberi * iz stol_ Ime. Slanjem takvog zahtjeva poslužitelju baze podataka, klijent mora dohvatiti sve zapise pohranjene u tablici.

Mnogi ljudi nikad ne razmišljaju o tome, ali prilikom pregledavanja internetskih resursa stalno se koriste MySQL naredbe.PHP upiti koriste SQL sintaksu za prikaz sadržaja kataloga online trgovine ili vijesti na društvenim mrežama. Umjesto znaka “*” iza rečenice Izaberi, u pravilu se daje popis glavnih polja tablice ili nekoliko tablica, podaci iz kojih se moraju obraditi. U slučaju uzorkovanja iz više tablica koristi se posebna poveznica pridružiti, koji služi za njihovo povezivanje postojećim vanjskim vezama. Međutim, ovaj se uvjet može promijeniti neovisnim označavanjem polja koja se trebaju koristiti za vezu.

Postavljanje granica uzorkovanja

Ponekad se dogodi situacija u kojoj odgovor primljen od poslužitelja baze podataka sadrži duple podatke. Kako bi se osiguralo da su samo jedinstveni zapisi vidljivi korisniku, koristi se klauzula distinct. Nalazi se ispred popisa traženih polja i služi kao pomoćni alat za skrivanje duplikata.

Najbolji članci na temu