Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • MySQL - Windows konzolne komande. Osnove MySQL administracije pomoću komandne linije

MySQL - Windows konzolne komande. Osnove MySQL administracije pomoću komandne linije

Popularan sistem upravljanja bazom podataka MySQLširoko se koristi u razne svrhe, prvenstveno kao de facto standard u oblasti internet hostinga. Ništa manje rasprostranjen je paket za upravljanje ovim DBMS-om - phpMyAdmin. Bez sumnje, ovo je dobar, zgodan proizvod, ali vrlo često se dešava da vještine rada sa ovim proizvodom u potpunosti zamjene vještine rada sa samim DBMS-om. Stoga smo u ovom članku odlučili upoznati naše čitatelje s načinom obavljanja glavnih zadataka MySQL administracija od komandna linija.

Kao što su naši redovni čitatelji mogli primijetiti, mi se dosljedno protivimo upotrebi raznih vrsta kontrolnih ploča od strane početnika, ma koliko one bile zgodne i uobičajene. Istovremeno, ne poričemo njihovo postojanje i sa zadovoljstvom ih koristimo u našim svakodnevnim aktivnostima.

Ali postoji jedan velika razlika: stručnjak koji zna raditi s komandnom linijom pomoću panela ne zamjenjuje sposobnost rada s proizvodom, već mu samo olakšava svakodnevne zadatke. A početnik, koji je navikao da izvodi sve radnje na panelu, pada u tihu paniku ako je nedostupan, jer sada treba da unesete neku vrstu "čarolije" u ovu neshvatljivu crnu konzolu...

U stvari, rad sa DBMS-om na nivou komandne linije uopšte nije težak, a neke administrativne zadatke je lakše i praktičnije obavljati u njemu. Odmah da rezervišemo, pod administracijom podrazumevamo administraciju DBMS servera, a ne same baze podataka. Naravno, s njima možete raditi i iz komandne linije, ali je bolje koristiti prikladnije alate za to.

Upravljanje bazom podataka i korisnicima u MySQL

Ako treba da počnete da plešete sa štednjaka, onda bi rad sa DBMS-om trebao početi kreiranjem baza podataka i korisnika ovih baza podataka. Zadaci su sami po sebi jednostavni i lijepi, a što je najvažnije - jednostavni, rješavaju se s konzole. Uslužni program istog imena je dizajniran za rad sa MySQL serverom. mysql, rad sa kojim se odvija u interaktivnom režimu, pa ćemo se prvo povezati na server:

MySQL -u korijen -p

Tamo gdje prekidač -u specificira korisničko ime, a -p označava autentifikaciju lozinke, sintaksa naredbe vam omogućava da navedete lozinku tako što ćete je upisati bez razmaka odmah iza ključa, ali u ovom slučaju će biti sačuvana u historiji komandi, koja je nije baš dobro, pa je bolje da lozinku unesete interaktivno. Nakon izvršenja ove naredbe, naći ćemo se u MySQL okruženju, kao što pokazuje izmijenjeni prompt komandne linije.

Rad u ovom okruženju ima svoje karakteristike: svaka naredba mora završiti simbolom ; ili \g, što je, inače, napisano u prvom redu pozdrava. Izlazak iz ovog moda se vrši naredbom:

Odmah o jednoj vrlo čestoj grešci: zaboravili su da stave tačku i zarez na kraju komande. šta da radim? U redu je, samo dovršite znakove koji nedostaju u sljedećem redu.

Prvo, pogledajmo listu baza:

show baze podataka;

Kako kažu, bez daljnjeg, ali za većinu administrativnih poslova dovoljno je i ovo:

Pronalaženje liste korisnika je malo teže, ona se pohranjuje kao tabela baze usluga mysql, pa pišemo mali upit:

odaberite korisnika,host iz mysql.user;

Zapovjedi izaberite bira navedene kolone korisnik, domaćin, opcija from određuje odakle ih biramo, odnosno iz korisničke tablice baze podataka mysql.

Prva kolona označava korisnika, druga - host na kojem je ovom korisniku dozvoljeno da se poveže, % - označava bilo koju vrijednost. Imajte na umu da ako Ivanov ima u podešavanjima localhost, zatim kada je povezan na mysql po adresi 127.0.0.1 on neće moći pristupiti, to se mora uzeti u obzir kada navedete podatke o vezi sa DBMS serverom u vašim aplikacijama.

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 sa prefiksom ivanov_ kada je povezan preko localhost, andrey na osnove s prefiksom andrey_ na bilo kom hostu. Privilegije korisnika možete pogledati naredbom:

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

Korisničko ime i host su umotani u jednostruke navodnike.

Prvi red kaže da navedeni korisnik nema privilegije ( UPOTREBA) na bilo koji sto bilo koje baze ( *.* ), drugi red govori o svim osnovnim privilegijama za sve tabele svih baza podataka sa prefiksom ivanov_.

Detaljna analiza sistema MySQL prava daleko prevazilazi okvire ovog članka, recimo SVE PRIVATNO daje korisniku sva prava na njihove baze podataka, ali vam ne dozvoljava da upravljate pravima pristupa za druge korisnike. Za to se koristi skup prava SVE PRIVATNOSA OPCIJOM GRANT, koji podrazumevano ima root. Za jednostavnog korisnika, takav skup prava je suvišan.

Pokušajmo kreirati novog korisnika:

Kreirajte korisnika "petrov"@"localhost" identifikovanog sa "lozinkom";

Sintaksa naredbe je jednostavna, navodimo korisničko ime i ime hosta, kao i vjerodajnice u obliku lozinke. Sve proslijeđene vrijednosti su umotane u jednostruke navodnike. Nakon kreiranja korisnika potrebno je postaviti njegova prava, to se radi naredbom GRANT. Prvo, eksplicitno ćemo mu oduzeti privilegije prema tuđim bazama:

Odobre korištenje na *.* za "petrov"@"localhost";

Tada možemo postaviti prava po vlastitom nahođenju, na primjer, izdavanje puna prava na osnovama sa uzorkom imena petrov_:

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

Imajte na umu da predložak treba biti omotan znakovima gravitacija (` ), koji se nalaze na ključu sa ruskim slovom Y.

Možete dodijeliti prava na zasebnu bazu podataka ovako:

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

Za odabir prava koristi se samo naredba REVOKE, koja ima sličnu sintaksu to (kome), zamjenjujemo sa od (SZO). Na primjer:

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

Da bi MySQL server primijenio prava, morate ga prisiliti da ponovo učita keš privilegija naredbom:

flush privilegije;

Možda ćete također morati promijeniti korisničku lozinku:

Postavite lozinku za "petrov"@"localhost" = password("newpassword");

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

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

I na kraju, izbrišite račun:

Ispusti korisnika "petr"@"127.0.0.1";

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

Kreirajte bazu podataka petrov_newdb;

Ovo će kreirati bazu podataka sa zadanom diff kodnom stranicom i skupom znakova. Ako DBMS server nije posebno konfigurisan, onda će ovo kodiranje najvjerovatnije biti latin1_swedish_ci, što u nekim slučajevima može uzrokovati probleme, ako ne sada, onda u budućnosti, pa će biti dobra praksa eksplicitno naznačiti kodiranje prilikom kreiranja baze podataka. Za UTF-8 bi to bilo ovako:

Kreirajte bazu podataka petrov_newdb default skup znakova utf8 collate utf8_general_ci;

Za Windows-1251:

Kreirajte bazu podataka petrov_newdb default skup znakova cp1251 collate cp1251_general_ci;

Za uklanjanje baze koristite:

Ispusti bazu podataka petrov_newdb;

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

Kako MySQL aktivno radi, baze podataka mogu postati fragmentirane i sadržavati greške u podacima tablice. Ne govorimo sada o ozbiljnim kvarovima, takve situacije treba razmatrati pojedinačno, već o najjednostavnijim greškama koje se uspješno otklanjaju pomoću samog DBMS-a. Za provjeru, popravku i optimizaciju, zgodno je koristiti uslužni program mysqlcheck.

Za provjeru baze podataka pokrenite gdje andrey_drupal8- osnovno ime:

mysqlcheck -u root -p --check andrey_drupal8

Sve baze podataka se mogu provjeriti odjednom naredbom:

mysqlcheck -u root -p --check --sve-baze podataka

A pošto ceo izlaz najverovatnije neće stati na ekran, ima smisla da ga preusmerite na komandu manje:

mysqlcheck -u root -p --check --sve-baze podataka | manje

Zapiši to manje omogućava vam da pomerate izlaz i gore i dole pomoću strelica, pritisnite za izlaz q.

Ako su greške pronađene u bilo kojoj od baza podataka, vrijedi pokušati ih popraviti, da biste to učinili, navedite:

mysqlcheck -u root -p --auto-popravak andrey_drupal8

Za optimizaciju koristite ključ - -optimizovati, možete optimizirati zasebnu bazu podataka ili nekoliko, za to ih navedite nakon ključa --baze podataka:

mysqlcheck -u root -p --optimiziraj --baze podataka andrey_drupal8 petrov_newdb

i sve odjednom:

mysqlcheck -u root -p --optimiziraj --sve-baze podataka

Učitavanje i učitavanje MySQL dumpova baze podataka

Još jedan uobičajen zadatak u administraciji bilo kojeg DBMS-a, dumpovi baze podataka se koriste i za sigurnosno kopiranje i za prijenos ili kreiranje kopija. Ako backup- proces je automatizovan, zatim kreiranje kopija za prenos na drugi server ili pre bilo kakve značajnije intervencije u strukturi baze podataka mora da se uradi ručno.

A kada su u pitanju velike baze, onda ovdje phpMyAdmin loš pomoćnik, ograničenja u vremenu izvršavanja skripti, veličina učitanog fajla, raspoloživa memorija itd. A ako i dalje možete da otpremite veliki dump sa njim, onda ga možda nećete moći da otpremite nazad.

Počnimo s kreiranjem dumpova, u ove svrhe se koristi uslužni program mysqldump, čija je sintaksa ista kao mysqlcheck. Za dump dump koristite naredbu:

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

Za istovar nekoliko baza podataka odjednom, koristite ključ --baze podataka ili --sve-baze podataka da kreirate dump svih baza podataka odjednom. Izlaz naredbe treba biti usmjeren na datoteku i naznačiti njenu lokaciju, u našem slučaju to je datoteka drupal8.sql u matičnom imeniku. Također možete poslati izlaz do arhivatora i odmah dobiti arhivu:

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

Općenito, ne preporučujemo korištenje jednog dump-a za nekoliko baza podataka odjednom, najbolja opcijaće imati svoj vlastiti dump za svaku bazu podataka, istovremeno koristeći ključ --sve-baze podataka opravdano u slučajevima kada je potrebno brzo napraviti backup cijeli server, na primjer, prilikom ažuriranja ili ponovnog instaliranja DBMS-a, tako da možete brzo vratiti informacije ako nešto krene po zlu.

Da biste vratili bazu podataka, morate poslati dump na ulaz uslužnog programa mysql; za pojedinačne dumpove uvijek treba navesti odredišnu bazu podataka, na primjer:

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

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

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

MySQL -u korijen -p< ~/all.sql

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

Kao što vidite, kreiranje i vraćanje dumpova pomoću komandne linije odvija se doslovno u jednom redu i mnogo je lakše i brže nego korištenjem phpMyAdmin ili sličnih alata.

Oporavak zaboravljene root lozinke za MySQL

Još jedan veoma popularan zadatak. Recimo odmah da je nemoguće povratiti lozinku MySQL superkorisnika, kao i bilo kojeg drugog korisnika, ali je možete promijeniti. Da biste to učinili, morate imati prava superkorisnika operativnog sistema. Prvo zaustavite DBMS uslugu:

servis mysql stop

Zatim ga pokrećemo u sigurnom načinu rada, preskačući tabele privilegija:

mysqld_safe --skip-grant-tables &

Imajte na umu da će nakon izvršenja ove naredbe prompt komandne linije nestati, a jedan kursor će treptati. Pišemo upravo tamo:

MySQL -u root

i uđite u mysql okruženje sa kao root bez unosa lozinke.

Čini nam se da su mnogi već pogodili šta dalje, ali postavite lozinku u ovom načinu rada neće raditi, pa morate ići drugim putem. Podsjetimo da su korisničke informacije pohranjene u tabeli korisnik servisna baza podataka mysql. Zatim izvršavamo sljedeći upit:

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

Bitan! U novom MySQL verzije umjesto kolone lozinka stolovi korisnik kolona se koristi authentication_string, dakle umjesto postavite lozinku treba naznačiti set authentication_string.

Ovaj zahtjev će se postaviti Nova šifra Nova šifra za sve redove u koloni korisnik koji je naveden root.

Ažurirajte keš privilegija:

flush privilegije;

Izađimo iz moda:

Zaustavite uslugu i pokrenite je normalno:

servis mysql stop
servis mysql start

Nadamo se da ćete nakon čitanja ovog članka steći osnovne vještine rada sa MySQL-om iz komandne linije i moći ćete se osjećati samopouzdano čak i kada phpMyAdmin nije dostupan, a možda čak i cijeniti praktičnost komandi konzole i otići na panel sve manje, preferirajući direktno upravljanje serverom.

  • Tagovi:

Molimo omogućite JavaScript da vidite

Posljednje ažuriranje: 22.12.2017

Obično se baze podataka koriste kao skladište podataka. PHP vam omogućava da koristite razni sistem upravljanje bazom podataka, ali danas je najpopularniji u sprezi sa PHP-om MySQL. MySQL predstavlja besplatno softvera, koji vam omogućava interakciju s bazama podataka pomoću SQL naredbi. Prethodno je proces instaliranja i konfiguracije MySQL-a već razmatran.

Da vam olakšam rad sa bazama podataka MySQL podaci instalirajte poseban skup phpMyAdmin skripti. phpMyAdmin pruža intuitivan web interfejs za upravljanje MySQL bazama podataka. Koristeći ovaj alat, mnogo je lakše raditi sa bazama podataka nego upravljati MySQL-om preko konzole.

Da biste instalirali phpMyAdmin, preuzmite arhivu i raspakujte je u fasciklu c:\localhost gdje su dokumenti za php. Preimenujmo raspakovanu fasciklu ukratko u phpMyAdmin.

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

A da bismo bili sigurni da je sve ispravno podešeno, u pretraživaču, idemo na phpMyAdmin, na primjer, http://localhost:8080/phpmyadmin:

U lijevoj koloni možete vidjeti sve dostupne baze podataka na MySQL serveru. Čak i ako još niste kreirali nijednu bazu podataka, server već ima neki skup zadanih baza podataka.

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

Kreiranje MySQL baze podataka u phpMyAdmin

Za komunikaciju sa MySQL serverom (čuvanje, modifikovanje, brisanje, preuzimanje podataka), naravno potrebna nam je baza podataka. Bazu podataka možemo kreirati iz MySQL konzole, kao i iz phpMyAdmin vizuelnog interfejsa.

Otvorimo phpMyAdmin interfejs. Idemo na karticu Baze podataka. Ispod etikete Kreirajte bazu podataka unesite neko ime za novu bazu podataka, na primjer, compstore i kliknite na dugme "Kreiraj".

I nakon toga ćemo dobiti poruku o tome uspješno kreiranje novu bazu podataka i ona će biti dodana na liste baza podataka.

Nova baza podataka je trenutno prazna i ne sadrži ništa. Dodajmo mu tabelu koja će pohraniti podatke. Da biste to učinili, kliknite na naziv baze podataka i doći ćemo do kartice "Struktura", gdje će nam biti ponuđene opcije za novu tablicu. Unesite naziv nove tabele u polje "Naziv". Neka tabela pohranjuje podatke o modelima pametnih telefona, pa unesite naziv "telefoni", a kao broj kolona unesite broj 3:

Da biste kreirali tabelu, kliknite na dugme "Prosledi". Nakon toga, imat ćemo skup ćelija za postavljanje parametara stupca. Navedite sljedeće za nazive stupaca u nizu: id, ime, kompanija. Za id kolone navodimo tip INT kao tip, a tip VARCHAR za stupce imena i kompanije. Za kolone imena i kompanije, u polju "Dužina / vrijednosti" navedite broj 200 - on će označavati maksimalnu dužinu niza u znakovima. Također, za kolonu id, navedite PRIMARY u polju "Index" i potvrdite okvir u polju "A_I" (AutoIncrement):

Dakle, tabela će imati kolone za jedinstveni ID, naziv telefona i naziv proizvođača. Zatim kliknite na dugme "Sačuvaj" ispod.

Nakon kreiranja tabele, možemo videti tabelu i njene kolone u koloni baze podataka:

Nije jedini način kreiranje tabela u phpMyAdmin-u, jer ovdje možemo upravljati bazom podataka pomoću SQL upita. Dakle, izaberite našu bazu podataka na listi baza podataka i idite na karticu "SQL". Prikazuje polje za unos naredbe u jeziku SQL upita. Unesite sljedeću naredbu u njega:

CREATE Table phones1 (id INT NOT NULL AUTO_INCREMENT PRIMARNI KLJUČ, naziv VARCHAR(200) NOT NULL, firma VARCHAR(200) NOT NULL)

Ovo je standardna SQL naredba za kreiranje tablice. Ključne riječi CREATE Table su praćene imenom kreirana tabela, nakon čega slijede definicije stupaca odvojenih zarezima u zagradama.

Svaka definicija stupca sadrži ime kolone, njen tip i niz dodatnih vrijednosti. Na primjer, u definiciji id kolone (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY), naziv stupca je specificiran, tip je INT i da kolona mora imati vrijednost - NE NULL, da će se njena vrijednost automatski povećati za jedan sa dodatkom novog objekta - AUTO_INCREMENT, i da igra ulogu primarnog ključa - PRIMARY KEY.

Općenito, tablica kreirana na ovaj način bit će ekvivalentna onoj koja je ranije kreirana. Kliknite na dugme "Idi" i drugi stoni telefoni1 će biti kreirani.

Zdravo, dragi čitaoci blogova, vrijeme je da promijenite uobičajeni phpMyAdmin, sa brutalnijim alatom za upravljanje bazom podataka. Danas ćemo opipati MySQL konzolu i naučiti kako se izvršavaju standardne komande, kao i komande za vraćanje baza podataka. MySQL konzola je standardni DBMS (Sistem upravljanja bazom podataka) za MySQL, koji se isporučuje s proizvodom.

Kada MySQL konzola može dobro doći

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

U ovom slučaju ne možete bez vještina rada sa MySQL konzolom. Malo kasnije ćemo pogledati komande za vraćanje baze podataka pomoću konzole, ali za sada krenimo od osnova.

Kako pokrenuti MySQL konzolu

Možete pokrenuti konzolu kroz Windows Explorer tako što ćete pronaći uslužni program mysql.exe u MySQL folderu. Obično se nalazi na: [putanja fascikle]\mysql\bin\mysql.exe. U slučaju korištenja denvera, MySQL konzola, vrijedi pogledati u ovom smjeru:
C:\WebServer\usr\local\mysql\bin\mysql.exe

Pored Windows Explorera, možete koristiti komandnu liniju:

  • Pokrenite cmd.exe
  • Napišite punu putanju do datoteke mysql.exe
  • Pritisnite enter

Trebali biste vidjeti ovu sliku:

Greška kaže da za pokretanje mysql konzole morate unijeti korisničko ime i lozinku korisnika. Kada radite sa Denverom, podrazumevani osnovni korisnik je root sa praznom lozinkom.
Pokrenite istu naredbu s dodatnim parametrima koji specificiraju autorizacijske podatke.

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

Ako je sve ispravno, dobićete poruku " Dobrodošli na MySQL konzolu..."

Možete potvrditi da ste uspješno povezani na poslužitelj baze podataka izdavanjem naredbe show databases; . Kao rezultat njegovog izvršenja, biće prikazana lista baza podataka prisutnih na serveru.

Pokušajmo odabrati jednu od baza podataka i vidjeti listu tabela u njoj:

test upotrebe; pokazati tablice;

U mom primjeru, pristupam testnoj bazi podataka, ako je nemate, koristite neku od drugih dostupnih.

Kao eksperiment, možete pokušati kreirati testnu bazu podataka naredbom:

kreirati test baze podataka;

Na koji ćete dobiti poruku: " QUERY OK, pogođen je 1 red" što ukazuje da je baza podataka pod nazivom test uspješno kreirana.

Sada kreirajmo tabelu narudžbi u test bazi podataka.

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

I ponovo pokrenite naredbu show tables; , koji će pokazati da je tabela zaista kreirana i da je dostupna za rad.

Također možete pokušati prikazati listu kolona u tabeli:

prikaži kolone iz test.order;

Pa, na kraju upoznavanja sa MySQL konzola, hajde da izvršimo neki upit:

SELECT * FROM test.order;

Dakle, dragi čitaoci, čestitam vam, sada možete raditi sa MySQL-om u spartanskim uslovima bez phpMyAdmin-a. Evo liste svakodnevnih komandi:

  • CREATE DATABASE DB_NAME; - kreiranje nove baze podataka;
  • PRIKAŽI BAZE PODATAKA; - pregled dostupnih baza podataka;
  • USE DB_NAME; - izaberite bazu podataka;
  • SHOW TABLES; — pregled svih tabela;
  • PRIKAŽI KOLONE IZ TABLE_NAME; — pregledati kolone i njihova svojstva;
  • CREATE TABLE TABLE_NAME (`ID` INT(11),`NAME` VARCHAR(255));- kreiranje tabele;
  • ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT(11);- dodati kolonu u tabelu;
  • ALTER TABLE TABLE_NAME DROP COLUMN_NAME;— obrisati kolonu iz tabele;
  • MYSQL -KORISNIČKO IME -PPASSWORD -HHOST DB_NAME - popuniti bazu podataka;
  • MYSQLDUMP -KORISNIČKO IME -PPASSWORD -HHOST DB_NAME > FILE_NAME.SQL- napraviti dump baze podataka;
  • QUIT; izađite iz MySQL konzole.

Komande za vraćanje tabela preko MySQL konzole

Kao što sam obećao na početku članka, postavljam komande za vraćanje tabela. Ove komande mogu biti korisne nakon pada servera.

Dobar dan, kolege 🙂

Da, upravo kolege, jer MySQL komandna linija (ili MySQL Shell, kako je programeri vole da zovu), kao i rad sa MySQL-om u konzoli, malo je verovatno da će biti od koristi običnom smrtniku.

Da bi ova tema bila zanimljiva, morate biti barem početnik sistem administrator koji u principu ne koristi phpMyAdmin i druga sučelja.

Pokretanje konzole na drugom OS-u

Pošto ću demonstrirati MySQL komandnu liniju u konzoli servera, bilo bi dobro da je prvo pokrenete.

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

Pokretanje konzole na Windows-u:

  • Win+R za otvaranje komande Windows strings sa administratorskim pravima;
  • Unosimo komandu cmd
  • Kliknite Enter na tastaturi

Pokretanje konzole u Linux distribucijama (terminal): u Ubuntu-u sa kojim sam radio, kombinacija sistemskih tastera je dovoljna Ctrl+Alt+T. Ne mogu ništa reći o drugim operativnim sistemima baziranim na Linuxu.

Pokretanje konzole u MacOS-u: Ja to nisam uradio, jer. Još nemam Mac i malo je vjerovatno da će mi biti nepotreban, ali, koliko sam uspio saznati, u ovom OS-u ne postoje "vrući tasteri" za pozivanje terminala. Dakle, ako ste korisnik "apple" proizvoda, onda pokrenite konzolu preko OS sučelja, srećom, na mreži postoji puno priručnika.

Pomalo je neugodno čak i objaviti takve informacije u slučaju da neki profesionalni sistem administrator s bradatim iskustvom slučajno naiđe na ovaj članak. pomisliće: „Autor svoje čitaoce smatra programerima, ali u isto vreme uči kako da pokreću konzolu... Neki ludi :-)“.

Da, sasvim je logično 🙂 Ali samo uzimam u obzir situacije do kojih, uz profesionalne programere, mogu doći i početnici. Stoga se trudim da informacije budu potpune i dostupne svim kategorijama korisnika, kao što sam već naveo.

Osnovne naredbe MySQL konzole

Dakle, prije svega, moramo pristupiti MySQL komandnoj liniji u konzoli. Da biste to uradili, otvorite konzolu servera i, ako imate MySQL instaliran globalno kao servis, onda za “provjeru veze” pišemo sljedeće:

MySQL -V

Konzola komanda mysql omogućava nam da pokrenemo uslužni program istog imena, a to je MySQL komandna linija.

Ovo će nam omogućiti da saznamo koja je verzija MySQL-a instalirana na računaru i da se uverimo da je uopšte instaliran kao servis. Ako je tako, tada ćete u odgovoru na konzoli vidjeti nešto poput sljedećeg teksta: .

Da, nisam "zaista koder", jer sjedim pod Windowsom 🙂 Ali nije to poenta. Na Unix sistemi procedura će biti ista.

Ako odjednom MySQL nije instaliran globalno na vašem računaru ili morate da radite sa nekoliko verzija MySQL-a, u kojima postoje samo direktorijumi sa MySQL fajlovima i bibliotekama, tada će pokretanje MySQL-a preko konzole izgledati ovako.

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

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

Put do distributivnog kompleta, naravno, može se razlikovati za vas. Kao primjer, odlučio sam pokrenuti jednu od MySQL verzija uključenih u OpenServer.

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

Mysql.exe -V

Kao rezultat toga, poruka slična onoj u prvom slučaju trebala je biti prikazana na konzoli mysql Ver 14.14 Distrib 5.7.16, za Win64 (x86_64).

Sve, pokretanjem MySQL komandne linije kroz serversku konzolu, shvatili smo, sada ćemo se direktno povezati na MySQL server.

Povezivanje na MySQL server u konzoli

MySQL server ne mora nužno biti na istoj mašini na kojoj pokušavate da mu pristupite sa konzole. Stoga, da biste se povezali na udaljeni server MySQL preko konzole je bio moguć, mysql uslužni program ima mnogo opcija pomoću kojih možete odrediti potrebna podešavanja.

Da bismo pokrenuli MySQL komandnu liniju u konzoli, samo trebamo napisati sljedeće u konzolu servera:

Međutim, u ovom slučaju dobit ćete sljedeću grešku: GREŠKA 1045 (28000): Pristup odbijen za korisnika 'ODBC'@'localhost' (koristeći lozinku: NE). Ovako izgleda poruka o grešci na mom Windows-u. Ako koristite Linux, tada će umjesto ODBC-a biti ime korisnika vašeg sistema, pod kojim izvodite radnje u sistemu.

Sve je to zato što po defaultu, kada se povezuje na MySQL server, konzola koristi ODBC korisnika na Windows-u bez lozinke i sistemskog korisnika na Linux-u sa vlastitom lozinkom. Zadani host je localhost, tj. ovaj korisnik se može povezati samo s lokalnog stroja.

Stoga imate dvije opcije: ili koristiti drugog korisnika za ulazak u MySQL komandnu liniju ili kreirati MySQL korisnika sa željenim nalogom. Ali za drugu metodu, još uvijek ne možemo bez prve 🙂 Stoga se prvo povezujemo na MySQL server pod standardnim korisnikom root, koji se kreira kada instaliranje MySQL na računar i za koji je pristup s lokalnog hosta po defaultu dozvoljen:

MySQL -u korijen -p

Kada se od vas zatraži da unesete lozinku, jednostavno pritisnite Enter (ako je niste unijeli, naravno, prilikom instaliranja MySQL-a). Nakon toga, bićete povezani na MySQL server, dodijelit ćete ID veze i dobiti pristup MySQL komandnoj liniji.

Ako želite da se povežete na MySQL server koji ima određeno ime hosta ili IP, ili želite da se prijavite kao drugi korisnik, koristite naredbu u sledećem formatu:

Mysql -u korisničko ime -p korisnička lozinka -h MySQL_server_host_ili_IP

Umjesto ćiriličkih znakova sa podvlačenjem, naravno, trebate unijeti svoje podatke latinicom. Usput, ako želite, ovu naredbu možete napisati u malo drugačijem formatu:

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

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

Mysql -u korisničko ime -h MySQL_server_host_ili_IP -p

Pošto lozinka nije eksplicitno navedena, od vas će se tražiti da je unesete u sljedećem koraku. Štaviše, znakovi koje ste unijeli neće biti prikazani čak ni u obliku zvjezdica (wildcards), već će to biti samo prazan niz.

Osim specificirane postavke veze, moguće je koristiti sljedeće parametre, čije će vrijednosti biti naznačene na isti način kao i gore navedene:

  1. --port ili -P - da navedete port za povezivanje sa MySQL serverom;
  2. --protocol - protokol po kojem će se veza uspostaviti ( 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 želite da se povežete preko utičnica, stoga će vrednost parametra biti socket;
  4. -pipe ili -W - parametar je potreban ako želite da koristite imenovane "cevovode" ili "cevi" za povezivanje;
  5. --shared-memory-base-name - ovaj parametar je koristan za MEMORY konekcije preko zajedničke memorije na Windows-u;

Jasno je da lista svih parametara povezivanja MySQL servera nije ograničena na ovo. U stvarnosti, ima ih mnogo više.

Ako iz nekog razloga standardna verzija navođenje hosta, korisnika i lozinke nije prikladno za vas, tada će vam sljedeće informacije biti korisne da saznate potpunu listu parametara veze - https://dev.mysql.com/doc/refman/5.7/en/ povezivanje.html

Kako kreirati bazu podataka u MySQL konzoli

Nakon što smo se povezali na MySQL server i pokrenuli MySQL komandnu liniju, vrijeme je da počnemo životni ciklus našu bazu podataka, koja počinje od njenog kreiranja. Da kreirate MySQL bazu podataka putem komandne linije, unesite sljedeću naredbu:

CREATE DATABASE ime_baze;

Ista radnja se može učiniti pomoću posebnog MySQL uslužnog programa mysqladmin. Radi izolovano od MySQL komandne linije, tj. da biste ga koristili, morat ćete ga izaći ili otvoriti nova konzola server.

A zatim pozovite sljedeću naredbu:

mysqladmin kreiranje baze_name;

Inače, pomoću uslužnog programa mysqladmin ne možete samo kreirati i brisati baze podataka bez ulaska u MySQL konzolu, već i upravljati konfiguracijom servera, MySQL procesima, upravljati replikacijama, ping serverima i raditi puno drugih zanimljivih stvari.

Kako kreirati MySQL korisnika na komandnoj liniji

Ne često, ali ponekad je potrebno kreirati novog MySQL korisnika. I to u konzolnom modu.

Na komandnoj liniji MySQL to se radi na sljedeći način:

CREATE USER "username"@"host_or_machine_ip" IDENTIFIKOVANO OD "user_password";

Korisnik je kreiran. Parametar host_or_IP_machine znači da prilikom kreiranja korisnika morate navesti IP sa kojeg se može povezati na server, odnosno ime hosta (ime domene je prikladno radna mašina online).

Usput, kada specificirate host za povezivanje na MySQL server, možete koristiti simbol postotka - % , što znači da kreiranog korisnika može se povezati na MySQL server sa bilo koje IP adrese ili hosta.

U isto vrijeme, mora se uzeti u obzir da ovaj slučaj localhost nije uključen u listu adresa navedenih sa %, jer localhost označava UNIX socket vezu umjesto standardnog TCP/IP. One. ako se kreirani MySQL korisnik poveže sa serverom ne koristeći utičnice, već koristeći drugačiji protokol naveden prilikom povezivanja na MySQL server u konzoli, tada će morati da kreira dva korisnička naloga:

CREATE USER "username"@"%" IDENTIFICIRANO "password"; CREATE USER "username"@"localhost" IDENTIFICIRANO JE "password";

Shvatili smo kako da kreiramo MySQL korisnika u konzoli. Sada podesimo korisnička prava za obavljanje bilo koje radnje s našom novokreiranom bazom podataka sa sljedećom naredbom:

DODAJTE SVE PRIVILEGIJE NA ime_baze.* U "korisničko ime"@"host_or_machine_ip";

Opcija SVE, kao što razumete, samo označava da je korisniku dozvoljeno da izvodi bilo kakve radnje sa određenom bazom podataka. Potpuna lista prava koja se mogu dodijeliti korisnicima korištenjem 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 tako što ćete ih navesti prilikom pozivanja naredbe, odvojenih zarezima.

Ako želite da kreirate superkorisnika, tj. imaju globalne privilegije za izvođenje različitih radnji sa svim bazama podataka na serveru, a zatim upotrijebite sljedeću naredbu:

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

Usput, neće biti suvišno očistiti keš MySQL servera nakon postavljanja privilegija. Ako ih promijenite, ne zaboravite to učiniti tako što ćete pozvati sljedeću naredbu:

FLUSH PRIVILEGES;

A ako želite promijeniti korisničke dozvole, prvo upotrijebite sljedeću naredbu za resetiranje svih dozvola:

OPOZOVI SVE PRIVILEGIJE NA *.* IZ "korisničko ime"@"host_or_machine_IP";

A zatim ga instalirajte sa GRANT, kao što je ranije opisano.

Ako u budućnosti trebate promijeniti korisničku lozinku za MySQL, samo pokrenite sljedeće naredbe u MySQL Shell-u:

SET PASSWORD FOR "username"@"host_or_machine_IP" = PASSWORD("new_password"); FLUSH PRIVILEGES;

Poništavanje keša privilegija MySQL servera je potrebno za istu svrhu kao i prilikom promjene prava - bez ove radnje, promjena MySQL korisničke lozinke se možda neće računati, pa nemojte biti lijeni da je koristite 🙂

Inače, internet je pun primjera korištenja sljedeće naredbe za resetovanje korisničke MySQL lozinke:

UPDATE mysql.user SET Password=PASSWORD("password") WHERE User="korisničko ime";

Ali ova opcija mi nije radila na MySQL 5.7, dajući grešku GREŠKA 1054 (42S22): Nepoznata kolona 'Lozinka' u 'listi polja'. Njegov uzrok je odsustvo polja Password u tabeli 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 tabeli. Stoga, da budete sigurni, koristite moju prvu opciju, osim ako, naravno, niste prisiljeni raditi s pretpotopnim softverom bez mogućnosti ažuriranja verzija :)

Ovim je završeno kreiranje novog MySQL korisnika i pregled akcija sa njegovim pravima i lozinkama. Idemo dalje.

Odabir baze podataka pri radu sa MySQL-om preko komandne linije

Sada, nakon što kreiramo korisnika u MySQL Shell-u i dodijelimo mu prava za rad sa bazom podataka, trebamo odabrati baš ovu 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 kako treba, 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 na MySQL server, u početku možete odrediti bazu podataka s kojom ćete morati raditi. Da biste to učinili, unesite sljedeću naredbu u konzolu servera:

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

Ili isto, samo tražeći MySQL korisničku lozinku:

Mysql -u korisničko ime -h host_ili_IP_MySQL_ime_servera -p

To je sve. Mislim da sada nećete imati poteškoća sa povezivanjem na MySQL bazu podataka preko konzole 🙂

Rad sa MySQL tabelama preko MySQL konzole

Dakle, kreirali smo MySQL bazu podataka preko konzole. Sada bi bilo lijepo naučiti kako raditi s njim za slučaj kada će MySQL komandna linija biti jedino sredstvo za pristup podacima pohranjenim na serveru (kao što je to bilo kod mene, o čemu sam govorio na početku članka ).

Kao što znate, sastoji se od tabela, unutar kojih su informacije već pohranjene u obliku zapisa sa nekoliko polja. Stoga, prateći hijerarhiju postavljanja informacija, prvo ćemo naučiti kako izvoditi tipične CRUD operacije sa tabelama.

CRUD operacije, ako neko nije upoznat, su operacije za kreiranje, čitanje, ažuriranje i brisanje podataka sa engleskog. "Kreiraj, čitaj, ažuriraj, izbriši" (ovo će vam možda trebati na intervjuima).

Podsjećam vas da se za izvršavanje radnji s tabelama prvo morate povezati na MySQL bazu podataka pomoću naredbe KORISTI.

Dakle, prva na našem dnevnom redu je naredba za kreiranje MySQL tabele u bazi podataka preko komandne linije, koja izgleda ovako:

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

Kao što razumijete, polja može biti koliko god želite, njihovi tipovi mogu biti različiti, kao i prisustvo indeksa i ključeva nije obavezno.

Usput, ako želite da kopirate tabelu u drugu bazu podataka ili samo kreirate kopiju u trenutnoj, sledeć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 komande vam omogućavaju da kopirate strukturu tabele i njene podatke zajedno sa indeksima i okidačima tabele. Ako su vam potrebni samo podaci i struktura (nazivi polja i njihovi tipovi podataka), onda možete proći s jednim pozivom naredbe:

CREATE TABLE new_table_name KAO SELECT * FROM old_table_name;

Sljedeća operacija iz CRUD bloka je čitanje. U slučaju tabela, čitanje će prikazati njihovu strukturu. Za ovo postoje četiri komande:

PRIKAŽI PUNE KOLONE IZ table_name; DESCRIBE table_name; EXPLAIN table_name; SHOW CREATE TABLE ime_tablice;

Prvi prikazuje informacije o poljima tabele baze podataka u tabelarni oblik na MySQL konzolu navodeći naziv polja, tip podataka, prisustvo ključeva, zadanu vrijednost itd. Kada koristite ključnu riječ PUN možete dobiti proširene informacije, uključujući privilegije na svakom od polja za trenutni korisnik, komentari za svaki od njih i vrijednost kodiranja.

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

Četvrta naredba, pored imena, tipova polja i njihovih zadanih vrijednosti, omogućava vam da dobijete vrijednosti ključeva tablice, mehanizama tablice (InnoDB, MyISAM), kodiranja itd.

Operacija ažuriranja u slučaju tabela je promjena njihove strukture, tj. razne akcije sa poljima MySQL tabele:

ALTER TABLE table_name DROP COLUMN field_name; ALTER TABLE ime_tablice ADD COLUMN ime_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 komanda vam omogućava da izbrišete određeno polje tabele, druga - da ga dodate, treća vam omogućava da preimenujete polje i promenite tip podataka koji su u njemu pohranjeni, a četvrta - da promenite samo tip podataka .

Isto se može učiniti s indeksima tablica koristeći gotovo iste komande:

ALTER TABLE table_name DODAJTE UNIQUE INDEX index_name (field_name_1, ...); ALTER TABLE ime_tablice preimenuj INDEX old_index_name TO new_index_name; ALTER TABLE table_name DROP INDEX index_name;

Gore navedene naredbe vam omogućavaju dodavanje, preimenovanje i uklanjanje indeksa iz MySQL tabela putem komandne linije. Za dodavanje i uklanjanje indeksa, postoji, inače, još jedna alternativna opcija za korištenje nezavisnih naredbi, a ne preko ALTER TABLE. Stoga, ako želite, možete ih koristiti:

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

Gore navedene naredbe su ekvivalentne prvoj i posljednjoj iz prethodnog bloka. Nažalost, ne postoji posebna naredba za preimenovanje indeksa. A za promjenu tipa indeksa, nažalost, u MySQL-u uopće nema mogućnosti. Jedini izlaz je da izbrišete indeks i ponovo ga kreirate sa željenim tipom.

Pa, konačno smo stigli poslednja operacija iz CRUD bloka - za brisanje. Uklanjanje MySQL tabela iz baze podataka je vrlo jednostavno. Dovoljno je izvršiti sljedeću naredbu u MySQL konzoli:

DROP TABLE ime_tablice;

Ponekad se u praksi dešavaju situacije zbog kojih nije moguće obrisati tabelu ili promeniti njenu strukturu. Po pravilu, to je zbog upotrebe stranih ključeva u bazi podataka za međusobno povezivanje tabela. Lično sam se više puta susreo sa ovom situacijom, o čemu sam govorio na početku članka.

Stoga, ako je prilikom brisanja ili ažuriranja strukture tabele ili njenih podataka, MySQL vratio grešku sa tekstom Ne može se izbrisati ili ažurirati roditeljski red: ograničenje stranog ključa ne uspijeva, tada će vam sljedeće informacije dobro doći.

Da bismo realizirali naše planove, moramo privremeno onemogućiti provjeru postojanja stranih ključeva, izvršiti neophodna operacija, a zatim ponovo omogućite provjeru valjanosti, kao zaista je potreban i omogućava vam da se zaštitite od kršenja integriteta podataka u većini slučajeva.

U stvari, za tu svrhu su potrebni MySQL strani ključevi.

Dakle, da biste izbrisali podatke koje ometaju strani ključevi, morate izvršiti sljedeće korake u MySQL konzoli:

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

Inače, ako želite da izbrišete strani ključ, postupak je isti kao kada izbrišete indeks:

ALTER TABLE table_name DROP FOREIGN KEY external_key_name;

Da biste saznali ime MySQL stranog ključa za tablicu, koristite sada već poznatu MySQL konzolnu komandu PRIKAŽI CREATE TABLE.

Rad sa podacima MySQL tablice preko komandne linije

Za tabele smo razmotrili CRUD operacije u MySQL konzoli. Za potpunu sliku, ovoj cheat sheet nedostaju samo komande za rad sa samim podacima pohranjenim u tabelama baze podataka. Mislim da mnogi znaju ove komande i koriste ih u praksi, ali ipak ću ih ponovo podsjetiti.

CRUD operacije za rad sa podacima MySQL tabele će izgledati ovako:

INSERT INTO table_name (polje1, polje2, ...) VRIJEDNOSTI (vrijednost polja_1, vrijednost polja_2, ...); SELECT field1, field2, ... FROM table_name; UPDATE table_name SET polje1 = vrijednost_1 polja, polje2 = vrijednost_2 polja; DELETE FROM table_name WHERE polje1 = vrijednost polja_1;

Gore navedene komande odgovaraju operacijama kreiranja, čitanja, ažuriranja i brisanja podataka iz MySQL tablica baze podataka. At koristeći SELECT i UPDATE također je moguće koristiti kvalifikacionu klauzulu WHERE, koja se može koristiti za specificiranje odabira podataka na način opisan u slučaju korištenja DELETE.

Također, kada dohvaćate podatke iz baze podataka pomoću SELECT, možete koristiti sljedeću opciju da dobijete vrijednosti svih polja tabele:

SELECT * FROM ime_tablice;

Naravno, u ovim operacijama mogu se koristiti i drugi operatori osim WHERE. Posebno ih ima mnogo pri odabiru podataka pomoću SELECT: postoji UNION za kombiniranje rezultata nekoliko upita i različite vrste JOIN. Sav popis je veoma dugačak i zamoran i za mene, a vi ćete ovo pročitati.

Stoga, hajde da se složimo: ako želite da saznate više o nečemu, samo napišite o tome u komentarima, a ja ću pokušati da vam odgovorim. Ili će to učiniti drugi upućeni članovi naše zajednice. UREDU? 😉

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

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

TRUNCATE ime_tablice;

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 tabele, što može spriječiti izvođenje potrebne radnje.

Još jedna zanimljiva stvar koju ovdje treba razmotriti je to data komanda ne resetuje brojač AUTO_INCREMENT, za koji se zna da se koristi za automatsko generisanje vrednosti polja bez potrebe za ručnim podešavanjem.

Polja ovog tipa najčešće se koriste za generiranje vrijednosti za ID glavnog ključnog polja, koje se koristi za uspostavljanje veza između podataka iz različitih tabela.

To jest, ako prije brisanja podataka tablice koristite TRUNCATE maksimalna vrijednost brojača je bila 1200, tada će prvi zapis nakon ove procedure imati vrijednost identifikatora 1201. U principu, sve je u redu. Ako postavite dovoljnu veličinu za dato polje, onda vam prelivanje vrijednosti ne prijeti uskoro.

Međutim, u nekim slučajevima, kada postoji neka vrsta vezivanja za vrijednost polja u kodu aplikacije, ovo ponašanje može biti nezgodno.

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

TRUNCATE TABLE someTable RESTART IDENTITY;

Ova opcija komandni poziv TRUNCATEće vam omogućiti da resetujete vrijednost brojača polja iz AUTO_INCREMENT. Stoga će vrijednost polja prvog zapisa dodanog nakon ovog brisanja biti 1 umjesto 1201, kao u primjeru iznad.

Kako izbrisati MySQL bazu podataka putem komandne linije

Životni ciklus rada sa bazom podataka se bliži kraju i završava se sasvim logično – brisanjem. Napraviti ovu operaciju u MySQL konzoli, potrebno je izvršiti sljedeću naredbu (u ovom slučaju, baza podataka koja se briše možda neće biti odabrana naredbom KORISTI):

DELETE DATABASE ime_baze;

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

mysqladmin ispusti database_name;

Kada se naredba pozove, na konzoli servera će se pojaviti sljedeća poruka:

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

Da li zaista želite da ispustite bazu podataka 'database_name'

Ukratko, ovo je upozorenje da je brisanje MySQL baze podataka vrlo loša ideja. Također traži potvrdu akcije. Ako se slažete, pišite y i pritisnite Enter na tastaturi, nakon čega će se na ekranu prikazati sljedeća poruka (ako je sve prošlo kako treba, naravno):

Baza podataka "database_name" je ispuštena

Ovako 🙂

Kako izbrisati MySQL korisnika u konzoli

Sada će ista sudbina zadesiti korisnika MySQL kojeg kreiramo da vam pokažemo kako se to radi. Ali za početak, bilo bi lijepo provjeriti postoji li potreban korisnik prije nego što ga izbrišete.

Počevši od MySQL 5.7, postoji jedna naredba za obje ove radnje:

ISPUSTI KORISNIKA AKO POSTOJI korisničko ime;

Ranije verzije MySQL-a zahtijevale su dvije odvojene komande:

ODOBRITE KORIŠTENJE NA *.* TO "username"@"host_or_IP_address"; DROP USER "username"@"host_or_ip_address";

Nažalost, u ovom slučaju, poruka o operaciji u MySQL konzoli je tradicionalno neinformativna 🙁 Stoga, da biste saznali da je došlo do brisanja korisnika MySQL korisnika, možete koristiti sljedeću naredbu koja prikazuje listu svih postojećih korisnika na trenutnom MySQL serveru:

SELECT User FROM mysql.user;

Ova verzija naredbe će prikazati samo korisnička imena. Ako trebate vidjeti hostove sa kojih se korisnici mogu povezati na server i listu privilegija, možete pozvati naredbu u sljedećem obliku:

SELECT User, Host, Grant_priv FROM mysql.user;

U tabeli mysql.user postoje i mnoga druga polja koja pohranjuju druge vrste privilegija i druge informacije, čiju kompletnu listu možete pronaći ovdje - https://mariadb.com/kb/en/library/mysqluser-table/

Neka vas ne zbuni što je ovo dokumentacija za MariaDB DBMS. Tehnički, ovo je isto što i MySQL, jer MariaDB je samo njegov izdanak ili fork od engleskog "fork" - grana, račva.

Zašto je to moralo da se uradi – opet bez pojma 🙂 Da li je moguće svima ponosno izjaviti da “imam svoj DBMS”? .. Ali, iskreno, nisam baš svestan tač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.

Izlazak iz MySQL konzole

To je sve, završio se životni ciklus baze podataka i korisnika, koji je započeo njihovim stvaranjem, a završio se njihovim brisanjem. Dakle, MySQL komandna linija sa kojom smo radili u konzoli servera koristeći uslužni program mysql više nam ne treba.

Ostaje samo izaći iz toga...

Čini se da je radnja trivijalna, ali mnogi u situaciji kada morate izaći iz MySQL komandne linije jednostavno zatvore serversku konzolu i ponovo je otvore. Naravno, možete se ponašati i na ovaj način, ali to oduzima dodatne sekunde radnog vremena i iznervira vas svaki put kada to treba da uradite.

Ispravno ponašanje u ovoj situaciji bilo bi samo pozivanje komande Izlaz na MySQL komandnoj liniji, nakon čega će se servis ljubazno oprostiti od nas 🙂

I to je sve 🙂 Dakle, sljedeći put ne morate pokretati konzole i ponovo ih otvarati svaki put kada trebate izaći iz MySQL-a u konzoli i ponovo mu pristupiti da biste upravljali serverom.

To je sve što sam ti htio reći danas. Nadam se da će moj cheat sheet o radu sa MySQL komandnom linijom kroz konzolu biti od koristi ne samo meni, već i vama.

Govoreći o praktičnoj primeni informacija predstavljenih u članku, želim da vas podsetim da se gore navedene konstrukcije mogu koristiti ne samo u MySQL komandnoj liniji i konzoli servera, već iu phpMyAdmin konzoli i drugom softveru koji to omogućava prilika.

Na vama je da li ćete ga koristiti ili ne. Ali, kao što sam rekao na samom početku članka, postoje situacije kada korištenje MySQL konzole može uštedjeti vrijeme i živce. A da li koristiti komandnu liniju svaki dan ili ne, stvar je ukusa i individualnih preferencija.

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

Obećavam da ćete u tom procesu naučiti puno novih stvari, baš kao i ja kada pišem svaki moj članak 🙂

To je sve! Sretno i vidimo se uskoro 🙂

P.S.: ako vam je potrebna web stranica ili trebate napraviti izmjene na postojećoj, a za to nema vremena i želje, mogu vam ponuditi svoje usluge.

Preko 5 godina iskustva profesionalni razvoj web stranica. Radite sa PHP, opencart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reaguj, Ugaoni i druge tehnologije za web razvoj.

Razvoj informacionih tehnologija jedno je od naprednih područja ljudske aktivnosti. Stoga se u ovu oblast ulaže ogroman novac. Od početka do danas riješeni su mnogi različiti zadaci, koji su mnogima uvelike olakšali svakodnevni život. Međutim, razvojem tehnologije pojavio se niz problema, od kojih je jedan prevelika količina informacija koje treba pohraniti. Baze podataka su dizajnirane da riješe situaciju.

Kratak pregled sistema upravljanja bazama podataka

Budući da je problem skladištenja velike količine informacija danas aktuelan, postoji nekoliko načina za njegovo rješavanje. Svaki od njih je fokusiran na zadatke određene orijentacije. Međutim, zajedno čine potpuni kompleks koji pojednostavljuje problem skladištenja podataka.

Postoji određena klasifikacija koja određuje potrebu za korištenjem određene baze podataka i DBMS-a (sistema za upravljanje bazom podataka). Najčešćim se trenutno smatra klijent-server tehnologije skladištenja podataka. To uključuje sljedeće tipove: Firebird, Interbase, IBM DB2, Sybase, Oracle, PostgreSQL, Linter, MySQL. Bićemo zainteresovani zadnja opcija- MySQL, čije su komande u potpunosti usklađene sa SQL standardima. Ova tehnologija je jedna od najpopularnijih i često se koristi za rješavanje i lokalnih aplikacija i proizvodni zadaci male skale.

Prethodnici klijent-server tehnologija su fajl-server DBMS koji su izgubili svoje pozicije zbog niza postojećih nedostataka, među kojima su potreba za distribucijom DBMS kernela na svakom računaru i značajno opterećenje na lokalna mrežašto dovodi do povećanja vremenskih troškova. Ova grupa uključuje Borland Paradox.

Nove tehnologije postaju sve popularnije

Međutim, prije nekoliko godina bilo je napredna tehnologija, koji postaje sve popularniji i tražen pri rješavanju malih lokalnih problema. Ovo je otprilike embedded sistemi za upravljanje bazama podataka. Glavna karakteristika razmatranog DBMS-a je odsustvo serverskog dijela. Sam sistem je biblioteka koja vam omogućava da radite na objedinjeni način sa velikim količinama informacija koje se nalaze na njemu lokalni računar. Ova metoda otklanja nedostatke fajl-server sredstava, a također značajno premašuje brzinu klijent-server tehnologije.

Kao primjere možemo uzeti u obzir OpenEdge, SQLite, BerkeleyDB, jednu od varijanti Firebird-a, Sav Zigzag, Compact, Linter, kao i jednu od MySQL varijanti, čije se komande ne razlikuju od onih koje se koriste u klijent-server DBMS-u. ali ugrađen sistemi mogu lako izgubiti svoju relevantnost ako zadatak prestane biti lokalni.

Glavne prednosti MySQL DBMS

MySQL sistem upravljanja bazom podataka jedna je od najtraženijih tehnologija, jer se može koristiti za rješavanje veliki iznos zadataka. Ako ga uporedimo sa modernim analozima, možemo razlikovati niz glavnih prednosti.

Glavna prednost za Rusko tržište razmatra se njegova dostupnost, jer je u većini slučajeva besplatna. Druga karakteristika je brzina. Jedan od mnogih popularni sistemi je MySQL. Naredbe u njemu se izvršavaju brzo, uz minimalno vrijeme odgovora. Povezivanje nekoliko klijenata na server u višenitnom modu ne utiče na brzinu obrade naredbi zbog korištenja mehanizma InnoDB za brza podrška transakcije.

Prisustvo ODBC drajvera olakšava programerima rješavanje mnogih problema. Prednosti su i mogućnost izrade zapisa fiksne i promjenjive dužine. Ali glavna funkcija, koja je veoma cenjena u krugu programera, jeste interfejs sa C i PHP jezicima. Mogućnosti koje pruža MySQL omogućile su korištenje dati DBMS za ogroman broj provajdera Internet hosting usluga.

I za običnog laika koga zanima moderne tehnologije Za pohranjivanje informacija potrebno je proučiti MySQL i njihovu sintaksu, jer su stručnjaci u ovoj oblasti traženi i visoko plaćeni svuda u svijetu. Stoga, ako nekoga zanima ovaj pravac, ne oklijevajte. Morate početi učiti odmah.

Šta je potrebno za učenje

Na prvi pogled, moglo bi izgledati da je tako datoj površini teško u samostalno učenje i zahtijeva stalnu komunikaciju sa specijalistom. Međutim, to nije slučaj. Možete naučiti arhitekturu i karakteristike MySQL-a, osnovne komande jezika upita i sve što je s tim povezano, bez pribjegavanja pomoći konsultanta. Da biste to učinili, dovoljno je imati želju i uložiti napore kako biste krenuli dalje. Samo samorazvoj i proučavanje ovog područja omogućit će vam stjecanje novih znanja, konsolidaciju stečenih vještina i, eventualno, početak izgradnje karijere i kretanje u tom smjeru.

Za studiranje osnovne komande Prije svega, morate imati pri ruci besplatno verzija uslužni program za konzolu MySQL. Ovdje počinje proces učenja. Možete ga preuzeti sa službene MySQL web stranice. Lako se instalira na bilo koji operativni sistem, formirajući server i klijent na jednom računaru, što je vrlo zgodno.

Zatim morate pribjeći traženju priručnika za obuku koji sadrži osnovne informacije o MySQL okruženju. za osnovne studije, po pravilu, sadrže i. Postoji mnogo informacija o tome. Međutim, izbor se mora shvatiti ozbiljno. Informacije treba da budu predstavljene dosljedno i jasno strukturirane.

U slučaju da jesi osnovno znanje na engleskom, možete koristiti podršku ugrađenu u konzolu. Za to postoji posebna komanda. pomozi, što pomaže u razumijevanju upotrebe uslužnog programa MySQL.

Osnovne komande konzole

Glatko prelazeći sa glavnih karakteristika, mogućnosti i prednosti, došli smo do liste osnovnih komandi. MySQL uslužni program u početku sadrži samo jednog korisnika, koji se koristi samo za učenje. Ovo je korisnik po imenu root, lozinka za koju je potpuno identična imenu.

Prvo i naredna pokretanja MySQL konzole će zahtijevati od korisnika da unese lozinku. root za dalji rad sa MySQL DBMS. Komande konzole će biti dostupne tek nakon autentifikacije.

Nakon uspješne verifikacije, zbog praktičnosti, možete prikazati postojeće komande pomoću naredbe pomozi. Nakon toga, konzola će prikazati sve postojeće komande i Kratki opis njima.

i prikaz

Sada morate ići na sljedeći korak. Da biste to učinili, morate odabrati postojeći ili kreirati nova baza podaci. Za odabir postojeće baze podataka koristite koristi komandu. I unesite ime baze podataka odvojeno razmakom. U početku, u uslužnom programu postoji samo jedan - sa imenom test. Dakle, zahtjev će izgledati ovako: koristiti test.

Za kreiranje baze podataka koristite naredbu stvoriti dajući mu ključnu riječ baza podataka i davanje odgovarajućeg imena. Struktura će izgledati ovako: kreirajte bazu podataka Ime_baze_podataka. Da biste radili sa kreiranom bazom podataka, morate joj pristupiti pomoću naredbe koristiti.

Okruženje pruža funkciju za prikaz postojeće baze podatke, tabele, primarne ključeve ili spoljne odnose i prikazivanje informacija o njima na MySQL konzoli. Naredbe u ovom slučaju uvijek moraju početi rečenicom show. Na primjer, da prikažete listu dostupnih baza podataka za trenutnog korisnika, samo unesite sljedeći upit: show baze podataka. Da biste prikazali tabelu, dovoljno je da ukucate objekat za prikaz posle ključne reči stolovi.

Komande za upravljanje tablicama

Pre nego što nastavimo dalje, vredi ponoviti da usklađivanje sa standardima SQL jezika pruža velike mogućnosti za programere, bez obzira na osnovni DBMS i operativne sisteme. Upiti razvijeni u bilo kojem okruženju koje podržava SQL standard će uspješno raditi (ako postoji baza podataka i tabele) u MySQL okruženju. Timovi Windows konzole se ne razlikuju od onih koje se koriste u drugim operativnim sistemima.

Postoji niz specifičnih komandi za rad sa tabelama, koje, ako se prevedu s engleskog, govore same za sebe. O timu stvoriti je gore spomenuto. Takođe se može koristiti za dodavanje tabela u prethodno kreiranu bazu podataka. Za brisanje objekata baze podataka, posebno tablica, koristite naredbu drop, kojem se dodaje ime objekta koji se uništava. primjer: drop ime_ of_ vaš_ sto.

Sintaksa poziva na server baze podataka uvijek ima ukupna struktura. Stoga će upit razvijen u Windows-u također uspješno raditi u MySQL Linux konzoli. Komande koje server obrađuje bez grešaka u jednoj operativni sistem, ne može uzrokovati greške kod drugih.

Odaberite Command

Ali najvažnija komanda za rad sa tabelama, čija je sintaksa prilično jednostavna, je naredba izaberite. Koristi se za odabir podataka iz baze podataka. Početna sintaksa ima sljedeću strukturu: izaberite * od sto_ ime. Slanjem takvog upita serveru baze podataka, klijent mora dobiti sve zapise pohranjene u tabeli.

Mnogi ljudi nikad ne razmišljaju o tome, ali prilikom pretraživanja interneta stalno se koriste MySQL komande. PHP upiti koriste sintaksu SQL jezika za prikaz sadržaja direktorija online prodavnica ili vijesti na društvenim mrežama. Umjesto "*" nakon rečenice izaberite, po pravilu se daje lista glavnih polja tabele ili nekoliko tabela iz kojih se podaci moraju obraditi. U slučaju odabira iz više tabela, koristi se posebna veza pridruži se, koji služi za njihovo povezivanje prema postojećim eksternim linkovima. Međutim, ovaj uvjet se može promijeniti specificiranjem na kojim poljima treba napraviti vezu.

Određivanje granica uzorkovanja

Ponekad se dogodi situacija kada odgovor primljen od poslužitelja baze podataka sadrži duple podatke. Kako bi se osiguralo da su samo jedinstveni zapisi vidljivi korisniku, koristi se posebna klauzula. Postavlja se ispred liste traženih polja i služi kao pomoć pri sakrivanju duplikata.

Top Related Articles