Računalniki Windows Internet

Prijavite se v ukazno vrstico mysql. Samodejna namestitev MySQL v sistemu Windows. Kaj morate preučiti

Dober dan, kolegi :)

Da, točno kolegi, ker za navadnega smrtnika ukazna vrstica MySQL (ali MySQL Shell, kot jo radi imenujejo tudi razvijalci), kot tudi delo z MySQL v konzoli, verjetno ne bo uporabna.

Da bi bila ta tema zanimiva, morate biti vsaj sistemski administrator začetnik, ki načeloma ne uporablja phpMyAdmin in drugih vmesnikov.

Zagon konzole v različnih OS

Ker bom pokazal, kako uporabljati ukazno vrstico MySQL v konzoli strežnika, bi bilo dobro, da najprej začnete z njo.

Dejanje je preprosto, znano mnogim, za kar zadostuje poznavanje "vročih tipk".

Zagon konzole v sistemu Windows:

  • Win + R, da odprete ukazni poziv Windows s skrbniškimi pravicami;
  • Vnesemo ukaz cmd
  • Kliknite Vnesite na tipkovnici

Zagon konzole v distribucijah Linuxa (terminal): v Ubuntuju, s katerim sem delal, zadostuje sistemska kombinacija tipk Ctrl+Alt+T. O drugih operacijskih sistemih, ki temeljijo na Linuxu, ne morem reči ničesar.

Zagon konzole v sistemu MacOS: Sam tega nisem naredil, ker ... Nisem še dobil Maca in verjetno ga ne bom dobil, ker ga ne potrebujem, a kolikor sem uspel ugotoviti, v tem OS ni "vročih tipk" za klicanje terminala. Torej, če ste uporabnik izdelkov Apple, potem zaženite konzolo prek vmesnika OS, na srečo je na internetu veliko priročnikov.

Malo nerodno je celo objaviti takšne informacije, če kakšen profesionalni sistemski skrbnik z bogatimi izkušnjami slučajno naleti na ta članek, ker pomislil bo: "Avtor ima svoje bralce za programerje, hkrati pa uči, kako zagnati konzolo ... Nekakšen psiho :-)."

Ja, čisto logično :) Ampak samo upoštevam situacijo, da lahko poleg profesionalnih razvijalcev pridejo tudi začetniki. Zato se trudim, da so informacije popolne in dostopne vsem kategorijam uporabnikov, kot sem že omenil.

Osnovni ukazi konzole MySQL

Torej, najprej moramo dostopati do ukazne vrstice MySQL v konzoli. Če želite to narediti, odprite strežniško konzolo in, če imate MySQL nameščen globalno kot storitev, potem za "preverjanje povezave" napišemo naslednje:

Mysql -V

Konzolni ukaz mysql nam omogoča zagon istoimenskega pripomočka, ki je ukazna vrstica MySQL.

Tako bomo lahko ugotovili, katera različica MySQL je nameščena v računalniku, in se prepričali, ali je sploh nameščena kot storitev. Če je temu tako, boste v konzoli videli nekaj podobnega naslednjemu besedilu: .

Ja, nisem "nori koder", ker uporabljam Windows :) Ampak to ni bistvo. V sistemih Unix bo postopek enak.

Če MySQL nenadoma ni nameščen globalno v vašem računalniku ali morate delati z več različicami MySQL, v katerih so samo imeniki z datotekami in knjižnicami MySQL, bo zagon MySQL prek konzole videti tako.

V konzoli pojdite v imenik, kjer se nahaja izvedljiva datoteka MySQL (v sistemu Windows je to vsaj mysql.exe) z naslednjim ukazom:

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

Seveda je lahko vaša pot do distribucije drugačna. Kot primer sem se odločil zagnati eno od različic MySQL, vključenih v OpenServer.

In zaženemo MySQL in spotoma preverimo njegovo različico:

Mysql.exe -V

Posledično bi moralo biti na konzoli prikazano sporočilo, podobno prvemu primeru mysql različica 14.14 distrib 5.7.16, za Win64 (x86_64).

To je to, uredili smo zagon MySQL iz ukazne vrstice prek strežniške konzole, zdaj se bomo neposredno povezali s strežnikom MySQL.

Povezovanje s strežnikom MySQL v konzoli

Ni nujno, da je strežnik MySQL na istem računalniku, na katerem poskušate dostopati do njega v konzoli. Da bi omogočili povezovanje z oddaljenim strežnikom MySQL prek konzole, ima pripomoček mysql veliko parametrov, s katerimi lahko določite potrebne nastavitve.

Če želite zagnati ukazno vrstico MySQL v konzoli, moramo v strežniško konzolo napisati naslednje:

Vendar boste v tem primeru prejeli naslednjo napako: NAPAKA 1045 (28000): dostop zavrnjen za uporabnika 'ODBC'@'localhost' (uporaba gesla: NE). Tako je videti sporočilo o napaki v mojem sistemu Windows. Če uporabljate Linux, bo namesto ODBC ime vašega sistemskega uporabnika, pod katerim izvajate dejanja v sistemu.

Vse to zato, ker konzola pri povezovanju s strežnikom MySQL privzeto uporablja uporabnika ODBC v sistemu Windows brez gesla in sistemskega uporabnika v sistemu Linux z istim geslom. Privzeti gostitelj je localhost, tj. Ta uporabnik se lahko poveže le z lokalnega računalnika.

Zato imate dve možnosti: uporabite drugega uporabnika za prijavo v ukazno vrstico MySQL ali ustvarite uporabnika MySQL z zahtevanim računom. Toda pri drugi metodi še vedno ne moremo brez prve :) Zato se najprej povežemo s strežnikom MySQL pod standardnim uporabnikom korenina, ki se ustvari ob namestitvi MySQL na računalnik in za katerega je privzeto dovoljen dostop z lokalnega gostitelja:

Mysql -u root -p

Ko boste pozvani k vnosu gesla, preprosto pritisnite Enter (če ga seveda niste vnesli pri namestitvi MySQL). Nato boste povezani s strežnikom MySQL, dodeljen ID povezave in dostop do ukazne vrstice MySQL.

Če se želite povezati s strežnikom MySQL, ki ima določeno ime gostitelja ali IP, ali se želite prijaviti kot drug uporabnik, uporabite naslednjo obliko ukaza:

Mysql -u uporabniško_ime -p uporabniško_geslo -h MySQL_strežnik_gostitelj_ali_IP

Namesto cirilice s podčrtajem seveda morate svoje podatke vnesti v latinici. Mimogrede, če želite, lahko ta ukaz napišete v nekoliko drugačni obliki:

Mysql --user=uporabniško_ime --password=uporabniško_geslo --host=gostitelj_ali_IP_strežnika_MySQL

Če iz nekega razloga ne želite, da se vaše geslo za povezavo MySQL prikaže v konzoli (kar je pravzaprav pravilno), lahko uporabite naslednji ukaz:

Mysql -u uporabniško_ime -h MySQL_strežnik_gostitelj_ali_IP -p

Ker geslo ni izrecno določeno, boste pozvani, da ga vnesete v naslednjem koraku. Poleg tega znaki, ki jih vnesete, ne bodo prikazani niti v obliki zvezdic (nadomestnih znakov), namesto tega bo le prazna vrstica.

Poleg navedenih nastavitev povezave je mogoče uporabiti naslednje parametre, katerih vrednosti bodo podane na podoben način kot zgoraj:

  1. --port ali -P - za določitev vrat za povezavo s strežnikom MySQL;
  2. —protokol — protokol, prek katerega bo vzpostavljena povezava (možne možnosti: TCP za Windows in Linux, SOCKET za Linux, PIPE in MEMORY za Windows);
  3. --socket ali -S - ta parameter je uporaben, če se želite povezati prek vtičnic, zato bo vrednost parametra socket;
  4. --pipe ali -W - parameter je potreben, če želite za povezave uporabiti imenovane "cevovode" ali "cevi";
  5. --shared-memory-base-name - ta parameter bo uporaben za povezave MEMORY prek skupnega pomnilnika v sistemu Windows;

Jasno je, da seznam vseh parametrov za povezavo s strežnikom MySQL ni omejen na to. V resnici jih je veliko več.

Če vam iz nekega razloga standardna možnost, ki navaja gostitelja, uporabnika in gesla, ne ustreza, vam bodo naslednje informacije koristne, če želite izvedeti celoten seznam parametrov povezave - https://dev.mysql.com/doc/ refman/5.7/en/connecting.html

Kako ustvariti bazo podatkov v konzoli MySQL

Ko smo se povezali s strežnikom MySQL in zagnali ukazno vrstico MySQL, je čas, da začnemo življenjski cikel baze podatkov našega spletnega mesta, ki se začne z njenim ustvarjanjem. Če želite ustvariti bazo podatkov MySQL prek ukazne vrstice, morate vnesti naslednji ukaz:

CREATE DATABASE ime_podatkov;

Enako dejanje lahko izvedete s posebnim pripomočkom MySQL mysqladmin. Deluje ločeno od ukazne vrstice MySQL, tj. Če ga želite uporabiti, ga boste morali zapustiti ali odpreti novo strežniško konzolo.

In nato pokličite naslednji ukaz:

Mysqladmin ustvari ime baze podatkov;

Mimogrede, z uporabo pripomočka mysqladmin ne morete samo ustvarjati in brisati podatkovnih baz, ne da bi se prijavili v konzolo MySQL, ampak tudi upravljati konfiguracijo strežnika, procese MySQL, upravljati replikacije, ping strežnike in narediti veliko drugih zanimivih stvari.

Kako ustvariti uporabnika MySQL v ukazni vrstici

Ne pogosto, a včasih morate ustvariti novega uporabnika MySQL. Še več, v konzolnem načinu.

V ukazni vrstici MySQL se to naredi na naslednji način:

USTVARI UPORABNIKA "user_name"@"host_or_machine_IP" IDENTIFICIRAN Z "user_password";

Uporabnik je ustvarjen. Parameter host_ali_IP_stroj pomeni, da morate pri ustvarjanju uporabnika določiti IP, s katerega se lahko poveže s strežnikom, ali ime gostitelja (primerno je ime domene delovnega stroja v omrežju).

Mimogrede, pri določanju gostitelja za povezavo s strežnikom MySQL lahko uporabite simbol za odstotek - % , kar pomeni, da se lahko ustvarjeni uporabnik poveže s strežnikom MySQL s katerega koli naslova IP ali gostitelja.

Upoštevati je treba, da v tem primeru localhost ni vključen na seznam naslovov, določenih z %, ker localhost označuje povezavo prek vtičnice UNIX namesto standardnega TCP/IP. Tisti. Če se bo ustvarjeni uporabnik MySQL povezal s strežnikom brez vtičnic, ampak z uporabo drugega protokola, določenega pri povezovanju s strežnikom MySQL v konzoli, bo moral ustvariti dva uporabniška računa:

USTVARI UPORABNIKA "uporabniško ime"@"%" IDENTICIRAN Z "geslom"; USTVARI UPORABNIKA "uporabniško ime"@"lokalni gostitelj", IDENTICIRAN Z "geslom";

Ugotovili smo, kako ustvariti uporabnika MySQL v konzoli. Zdaj pa nastavimo uporabniške pravice za izvajanje kakršnih koli dejanj z našo novo ustvarjeno bazo podatkov z naslednjim ukazom:

PODELI VSE PRIVILEGIJE ZA ime_baze podatkov.* TO "uporabniško_ime"@"IP_gostitelja_ali_naprave";

Možnost VSE, kot razumete, samo označuje, da so uporabniku dovoljena kakršna koli dejanja z določeno bazo podatkov. Celoten seznam pravic, ki jih je mogoče podeliti uporabnikom z ukazom GRANT, lahko najdete tukaj (čeprav je opis parametrov v angleščini) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Mimogrede, lahko uporabite več parametrov privilegijev, ki jih določite pri klicu ukaza, ločenih z vejicami.

Če želite ustvariti superuporabnika, tj. ima globalne privilegije za izvajanje različnih dejanj z vsemi zbirkami podatkov na strežniku, nato uporabite naslednji klic ukaza:

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

Mimogrede, po nastavitvi privilegijev bi bilo dobro počistiti predpomnilnik strežnika MySQL. Če jih spremenite, tega ne pozabite storiti s klicem naslednjega ukaza:

PRIVILEGIJE ODPLIVANJA;

In če želite spremeniti uporabniške pravice, najprej uporabite naslednji ukaz za ponastavitev vseh pravic:

PREKLIC VSE PRIVILEGIJE NA *.* IZ "user_name"@"host_or_machine_IP";

In nato namestite tiste, ki jih potrebuje GRANT, kot je opisano prej.

Če boste v prihodnosti morali spremeniti uporabniško geslo MySQL, potem za to zaženite naslednje ukaze v MySQL Shell:

NASTAVI GESLO ZA "user_name"@"host_or_machine_IP" = GESLO("novo_geslo"); PRIVILEGIJE ODPLIVANJA;

Ponastavitev predpomnilnika privilegijev strežnika MySQL je potrebna za isti namen kot pri spreminjanju pravic - brez tega dejanja se sprememba uporabniškega gesla MySQL morda ne bo štela, zato ne bodite leni, da ga uporabite :)

Mimogrede, internet je poln primerov uporabe naslednjega ukaza za ponastavitev uporabniškega gesla MySQL:

UPDATE mysql.user SET Password=PASSWORD("geslo") WHERE Uporabnik="uporabniško ime";

Vendar ta možnost zame ni delovala na MySQL 5.7, kar je povzročilo napako NAPAKA 1054 (42S22): Neznan stolpec »Geslo« v »seznamu polj«. Razlog se je izkazal za odsotnost polja Geslo v tabeli mysql.user.

Iz česar lahko domnevamo, da ta možnost deluje samo za starejše različice MySQL, kjer je to polje obstajalo v uporabniški tabeli. Zato, da se prepričate, uporabite mojo prvo možnost, razen če seveda niste prisiljeni delati s predpotopno programsko opremo brez možnosti posodabljanja različic :)

S tem je končana izdelava novega uporabnika MySQL in pregled dejanj z njegovimi pravicami in gesli. Gremo naprej.

Izbira baze podatkov pri delu z MySQL prek ukazne vrstice

Zdaj, ko smo ustvarili uporabnika v MySQL Shell in mu dodelili pravice za delo z bazo podatkov, moramo izbrati prav to bazo podatkov, da bomo lahko delovali s samo bazo in podatki, ki so v njej shranjeni.

Če želite to narediti, uporabite naslednji ukaz v konzoli MySQL:

USE ime_baze podatkov;

Če je šlo vse v redu, bo na konzoli prikazano sporočilo zbirka podatkov spremenjena, kar bo signaliziralo, da smo se preko konzole prijavili v bazo MySQL. Mimogrede, pri povezovanju s strežnikom MySQL lahko na začetku določite bazo podatkov, s katero boste morali delati. Če želite to narediti, morate v strežniško konzolo vnesti naslednji ukaz:

Mysql --user=uporabniško_ime --password=uporabniško_geslo --host=MySQL_server_host_or_IP --database=database_name

Ali ista stvar, samo zahteva uporabniško geslo MySQL:

Mysql -u uporabniško_ime -h gostitelj_ali_IP_MySQL_strežnik_ime_baze_podatkov -p

To je vse. Mislim, da zdaj ne boste imeli težav pri povezovanju z bazo podatkov MySQL prek konzole :)

Delo z MySQL tabelami preko MySQL konzole

Tako smo prek konzole ustvarili bazo podatkov MySQL. Zdaj bi se bilo dobro naučiti delati z njim za primer, ko bo ukazna vrstica MySQL edino sredstvo za dostop do podatkov, shranjenih na strežniku (kot je bilo zame, o čemer sem govoril na začetku Članek).

Kot veste, je sestavljen iz tabel, znotraj katerih so informacije že shranjene v obliki zapisov z več polji. Zato se bomo po hierarhiji umestitve informacij najprej naučili izvajati tipične operacije CRUD s tabelami.

CRUD operacije, če se kdo ne spozna, so operacije ustvarjanja, branja, posodabljanja in brisanja podatkov iz angleščine. »Ustvari, preberi, posodobi, izbriši« (to boste morda potrebovali med razgovori).

Naj vas spomnim, da se morate za izvajanje dejanj s tabelami najprej povezati z bazo podatkov MySQL z ukazom UPORABA.

Torej, prva stvar na našem dnevnem redu je ukaz za ustvarjanje tabele MySQL v bazi podatkov prek ukazne vrstice, ki izgleda takole:

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

Kot razumete, je lahko poljubno veliko polj, njihove vrste so lahko različne, prisotnost indeksov in ključev pa ni obvezna.

Mimogrede, če želite kopirati tabelo v drugo bazo podatkov ali preprosto ustvariti kopijo v trenutni, vam bodo v pomoč naslednji ukazi:

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

Ti ukazi vam omogočajo kopiranje strukture tabele in njenih podatkov skupaj z indeksi tabele in sprožilci. Če potrebujete samo podatke in strukturo (imena polj in njihove podatkovne vrste), potem lahko opravite s klicem enega ukaza:

CREATE TABLE new_table_name AS SELECT * FROM old_table_name;

Naslednja operacija iz bloka CRUD je branje. V primeru tabel bo branje prikazalo njihovo strukturo. Če želite to narediti, obstajajo naslednji štirje ukazi:

PRIKAŽI CELE STOLPCE IZ table_name; DESCRIBE ime_tabele; RAZLOŽI ime_tabele; SHOW CREATE TABLE ime_tabele;

Prvi prikaže informacije o poljih tabele baze podatkov v tabelarični obliki na konzoli MySQL, ki označuje ime polja, vrsto podatkov, prisotnost ključev, privzeto vrednost itd. Pri uporabi ključne besede POLN lahko dobite razširjene informacije, vključno s privilegiji za vsako polje za trenutnega uporabnika, komentarje za vsakega od njih in vrednost kodiranja.

Drugi in tretji ukaz sta preprosto skrajšani obliki prvega ukaza brez razširjenih informacij. Zakaj jih je bilo treba izdelovati - sploh si ne predstavljam ... Ali zato, da bi bilo kaj vprašati na razgovorih za službo? 🙂

Četrti ukaz vam poleg imena, vrst polj in njihovih privzetih vrednosti omogoča pridobitev vrednosti ključev tabele, mehanizmov tabel (InnoDB, MyISAM), kodiranja itd.

Operacija posodobitve v primeru tabel predstavlja spremembo njihove strukture, t.j. različna dejanja s polji tabele MySQL:

ALTER TABLE ime_tabele DROP COLUMN ime_polja; ALTER TABLE ime_tabele ADD COLUMN ime_polja VARCHAR(20); ALTER TABLE table_name CHANGE old_field_name new_field_name VARCHAR(50); ALTER TABLE ime_tabele MODIFY ime_polja VARCHAR(3);

Prvi ukaz vam omogoča, da izbrišete določeno polje tabele, drugi vam omogoča, da ga dodate, tretji vam omogoča, da preimenujete polje in hkrati spremenite vrsto podatkov, ki so v njem shranjeni, in četrti vam omogoča, da spremenite samo tip podatkov .

Enako je mogoče storiti z indeksi tabel z uporabo zelo podobnih ukazov:

ALTER TABLE ime_tabele ADD UNIQUE INDEX ime_indeksa (ime_polja_1, ...); ALTER TABLE ime_tabele preimenuj INDEX staro ime_indeksa v novo ime_indeksa; ALTER TABLE ime_tabele DROP INDEX ime_indeksa;

Naslednji ukazi vam omogočajo dodajanje, preimenovanje in odstranjevanje indeksov iz tabel MySQL prek ukazne vrstice. Mimogrede, za dodajanje in odstranjevanje indeksov obstaja druga alternativna možnost za uporabo neodvisnih ukazov, namesto da bi to storili prek SPREMENI TABELO. Torej, če želite, jih lahko uporabite:

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

Podani ukazi so enakovredni prvemu in zadnjemu iz prejšnjega bloka. Na žalost ni ločenega ukaza za preimenovanje indeksa. In za spremembo vrste indeksa na žalost v MySQL sploh ni možnosti. Edina rešitev je, da izbrišete indeks in ga znova ustvarite z želeno vrsto.

No, končno smo prišli do zadnje operacije iz bloka CRUD - brisanja. Odstranjevanje tabel MySQL iz baze podatkov je zelo enostavno. Samo zaženite naslednji ukaz v konzoli MySQL:

DROP TABLE ime_tabele;

Včasih se v praksi pojavijo situacije, ko tabele ni mogoče izbrisati ali spremeniti njene strukture. Praviloma je to posledica uporabe tujih ključev v bazi podatkov za medsebojno povezovanje tabel. Osebno sem večkrat naletel na to situacijo, o kateri sem govoril na začetku članka.

Torej, če vam je MySQL pri brisanju ali posodabljanju strukture tabele ali njenih podatkov vrnil napako z besedilom Nadrejene vrstice ni mogoče izbrisati ali posodobiti: omejitev tujega ključa ne deluje, potem vam bodo naslednje informacije prišle prav.

Za uresničitev našega načrta moramo začasno onemogočiti preverjanje obstoja tujih ključev, izvesti potrebno operacijo in nato znova omogočiti preverjanje, ker resnično je potrebno in vam v večini primerov omogoča zaščito pred kršitvami celovitosti podatkov.

Pravzaprav so za ta namen potrebni tuji ključi MySQL.

Torej, če želite izbrisati podatke, ki jih motijo ​​tuji ključi, morate izvesti naslednje korake v konzoli MySQL:

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

Mimogrede, če želite izbrisati tuji ključ, bo postopek enak kot pri brisanju indeksa:

ALTER TABLE ime_tabele DROP FOREIGN KEY ime_tujega_ključa;

Če želite izvedeti ime tujega ključa MySQL tabele, uporabite že znani ukaz konzole MySQL PRIKAŽI USTVARJANJE TABELE.

Delo s podatki tabele MySQL prek ukazne vrstice

Za tabele CRUD smo si ogledali operacije v konzoli MySQL. Za popolno sliko tej goljufalici manjkajo le ukazi za delo s samimi podatki, shranjenimi v tabelah zbirke podatkov. Mislim, da veliko ljudi pozna te ukaze in jih je že uporabljalo v praksi, a vseeno vas bom še enkrat spomnil nanje.

Operacije CRUD za delo s podatki tabele MySQL bodo videti takole:

INSERT INTO table_name (field1, field2, ...) VALUES (field_1 value, field_2 value, ...); IZBERI polje1, polje2, ... FROM ime_tabele; UPDATE table_name SET field1 = field_1 value, field2 = field_2 value; DELETE FROM table_name WHERE field1 = field_1 value;

Zgornji ukazi ustrezajo operacijam ustvarjanja, branja, posodabljanja in brisanja podatkov iz tabel baze podatkov MySQL. Pri uporabi SELECT in UPDATE je mogoče uporabiti tudi kvalificirajočo klavzulo WHERE, ki jo je mogoče uporabiti za podajanje izbire podatkov na enak način, kot je opisano pri uporabi DELETE.

Tudi pri pridobivanju podatkov iz baze podatkov z uporabo SELECT lahko uporabite naslednjo možnost za pridobitev vrednosti vseh polj tabele:

SELECT * FROM table_name;

Seveda lahko te operacije poleg WHERE uporabljajo tudi druge operatorje. Še posebej veliko jih je pri pridobivanju podatkov s pomočjo SELECT: tukaj je UNION za združevanje rezultatov več poizvedb in različne vrste JOIN. Naštevanje vsega je zelo dolgo in tako zame kot za vas bo dolgočasno brati.

Zato se strinjamo: če želite izvedeti več o nečem, samo napišite o tem v komentarjih in poskušal vam bom odgovoriti. Ali pa bodo to storili drugi dobro obveščeni člani naše skupnosti. V REDU? 😉

Zato se za zdaj ne bomo zadrževali na tem bloku.

Če morate izbrisati vse podatke iz tabele, lahko uporabite naslednji ukaz MySQL:

TRUNCATE ime_tabele;

Preden ga pokličete, kot je bilo že omenjeno, boste morda morali onemogočiti preverjanje tujega ključa, če obstajajo povezane tabele MySQL, kar lahko prepreči izvedbo zahtevanega dejanja.

Še ena zanimiva točka, ki jo je treba omeniti, je, da ta ukaz ne ponastavi števca AUTO_INCREMENT, za katerega je znano, da se uporablja za samodejno ustvarjanje vrednosti polja, ne da bi ga bilo treba ročno nastaviti.

Polja te vrste se najpogosteje uporabljajo za ustvarjanje vrednosti za id glavnega ključnega polja, ki se uporablja za vzpostavljanje odnosov med podatki iz različnih tabel.

To pomeni, če pred brisanjem podatkov tabele uporabite OKRAJ največja vrednost števca je bila 1200, potem bo imel prvi zapis po tem postopku identifikatorsko vrednost 1201. Načeloma je v redu. Če ste za to polje nastavili zadostno velikost, potem ne boste v nevarnosti, da bi kmalu presegli vrednosti.

Vendar pa lahko v nekaterih primerih, ko ima koda aplikacije neke vrste vezavo na vrednost polja, to vedenje povzroči nevšečnosti.

Da bi se temu izognili, uporabite to možnost namesto zgornjega ukaza:

TRUNCATE TABLE someTable RESTART IDENTITY;

Ta možnost klica ukaza OKRAJ vam bo omogočil ponastavitev vrednosti števca polja iz SAMODEJNO POVEČANJE. Zato bo vrednost polja prvega dodanega zapisa po tem brisanju 1 namesto 1201, kot v zgornjem primeru.

Kako izbrisati bazo podatkov MySQL prek ukazne vrstice

Življenjski cikel dela z bazo se izteka in konča povsem logično – z izbrisom. Če želite izvesti to operacijo v konzoli MySQL, morate zagnati naslednji ukaz (v tem primeru baza podatkov, ki jo želite izbrisati, morda ne bo izbrana z ukazom UPORABA):

DELETE DATABASE database_name;

Enako dejanje lahko izvedete s pripomočkom MySQL mysqladmin, ki sem ga že omenil na začetku članka pri ustvarjanju baze podatkov:

Mysqladmin drop database_name;

Ko pokličete ukaz, se na konzoli strežnika prikaže naslednje sporočilo:

Opustitev baze podatkov je potencialno zelo slaba stvar.
Vsi podatki, shranjeni v bazi podatkov, bodo uničeni.

Ali res želite opustiti zbirko podatkov »ime_baze_podatkov«.

Skratka, to je opozorilo, da je brisanje podatkovne baze MySQL zelo slaba ideja. Zahtevana je tudi potrditev dejanja. Če se strinjate, pišite l in pritisnite Vnesite na tipkovnici, nato pa se na zaslonu izpiše naslednje sporočilo (če je seveda vse potekalo dobro):

Zbirka podatkov "ime_baze_podatkov" je padla

to je to :)

Kako izbrisati uporabnika MySQL v konzoli

Zdaj bo enaka usoda doletela uporabnika MySQL, ki smo ga ustvarili, da vam pokažemo, kako se to naredi. Najprej pa bi bilo dobro preveriti, ali zahtevani uporabnik dejansko obstaja, preden ga izbrišete.

Od MySQL 5.7 obstaja en ukaz za obe dejanji:

DROP USER IF EXISTS uporabniško ime;

Prejšnje različice MySQL so zahtevale dva ločena ukaza:

ODOBI UPORABO NA *.* TO "user_name"@"host_or_IP_address"; DROP USER "user_name"@"host_or_IP_address";

Na žalost je v tem primeru sporočilo o izvedbi operacije v konzoli MySQL tradicionalno neinformativno 🙁 Če želite izvedeti, da je bil uporabniški uporabnik MySQL izbrisan, lahko uporabite naslednji ukaz, ki prikaže seznam vseh uporabnikov obstaja na trenutnem strežniku MySQL:

IZBERI uporabnika IZ mysql.user;

Ta možnost ukaza bo prikazala samo uporabniška imena. Če želite videti gostitelje, s katerih se lahko uporabniki povežejo s strežnikom, in seznam privilegijev, lahko pokličete ukaz v naslednji obliki:

IZBERI Uporabnik, Gostitelj, Grant_priv FROM mysql.user;

Tudi v tabeli mysql.user je veliko drugih polj, ki shranjujejo druge vrste privilegijev in druge informacije, katerih celoten seznam lahko najdete tukaj - https://mariadb.com/kb/en/library/mysqluser- miza/

Naj vas ne zmede, da je to dokumentacija za MariaDB DBMS. Tehnično je to enako kot MySQL, ker ... MariaDB je le njena veja ali razcep iz angleške "fork" - veja, vilice.

Zakaj je bilo to storjeno – spet nimam pojma 🙂 Morda zato, da vsem ponosno izjavim, da “imam svoj DBMS”?.. Ampak, če sem iskren, se ne zavedam natančnih motivov in razlik med MySQL in MariaDB. Zato, če veste kaj o tem, bi bilo zanimivo prebrati o tem v komentarjih.

Izhod iz konzole MySQL

To je vse, življenjski cikel baze in uporabnika, ki se je začel z njunim ustvarjanjem in končal z njunim izbrisom, se je končal. Zato ukazna vrstica MySQL, s katero smo delali v strežniški konzoli s pomočjo pripomočka mysql, ne potrebujemo ga več.

Vse, kar ostane, je, da se rešimo iz tega ...

Zdi se, da je dejanje nepomembno, vendar mnogi v situaciji, ko morajo zapustiti ukazno vrstico MySQL, preprosto zaprejo strežniško konzolo in jo znova odprejo. Seveda se lahko tako obnašate, vendar vam to vzame dodatne sekunde delovnega časa in vas razdraži vsakič, ko morate to storiti.

Pravilno vedenje v tej situaciji je samo klic ukaza izhod v ukazni vrstici MySQL, nakar se bo storitev vljudno poslovila od nas :)

In to je vse 🙂 Tako vam naslednjič ne bo treba ustvariti več konzol in jih znova odpreti vsakič, ko morate zapustiti MySQL v konzoli in znova dostopati do njega za upravljanje strežnika.

To je vse, kar sem ti hotel danes povedati. Upam, da bo moj goljuf za delo z ukazno vrstico MySQL prek konzole koristen ne samo meni, ampak tudi vam.

Ko že govorimo o praktični uporabi informacij, predstavljenih v članku, bi vas rad spomnil, da se zgornji konstrukti lahko uporabljajo ne samo v ukazni vrstici MySQL in konzoli strežnika, temveč tudi v konzoli phpMyAdmin in drugi programski opremi, ki omogoča taka priložnost.

Ali ga uporabljate ali ne, je vaša stvar. Toda, kot sem rekel na samem začetku članka, obstajajo situacije, ko vam lahko uporaba konzole MySQL prihrani čas in stres. Ali boste ukazno vrstico uporabljali vsak dan ali ne, je izključno stvar okusa in osebnih preferenc.

V komentarje zapišite, katere ukaze najpogosteje uporabljate. Ali morda poznate kakšne druge trike. V vsakem primeru delite svoje mnenje z drugimi in nadaljujte pogovor v komentarjih drugih uporabnikov.

Obljubim, da se boste ob tem naučili veliko novega, tako kot jaz pri pisanju vsakega svojega članka :)

To je vse! Srečno in se spet vidimo :)

P.S.: če potrebujete spletno stran ali želite spremeniti obstoječo, pa za to ni časa ali želje, lahko ponudim svoje storitve.

Več kot 5 let izkušenj profesionalni razvoj spletnih strani. Delo z PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reagiraj, Kotni in druge tehnologije spletnega razvoja.

Možno je ne samo prek PHP. MySQL je opremljen s konzolnim odjemalcem za povezavo s strežnikom MySQL. Konzola – to pomeni, da program nima okenskega vmesnika, ampak le vmesnik ukazne vrstice, v kateri se do podatkovnih baz dostopa s pomočjo SQL poizvedb.

Ukazi za povezavo z MySQL v ukazni vrstici, še bolj pa same poizvedbe SQL, so enaki za . V nadaljevanju bom zaradi jedrnatosti napisal "MySQL", vseskozi pa mislim na "MySQL ali MariaDB", saj v tem primeru med njima ni razlike.

Če se prek ukazne vrstice povežete z MySQL DBMS, lahko izvajate različne naloge: ogledujete baze podatkov in njihove tabele, pošiljate poizvedbe v baze podatkov in prejemate rezultate izvajanja teh poizvedb.

Za povezavo s strežnikom MySQL uporabite ukaz odjemalskega programa, imenovan mysql.exe. Zagnati ga je treba, vendar ne z dvojnim klikom, kot običajni program, ampak iz ukazne vrstice.

Začnimo s pritiskom na bližnjico na tipkovnici Win+r in naredimo to

Odpre se ukazni poziv.

Zdaj moramo iti v mapo z datoteko mysql.exe. Ta mapa koš v imeniku, kjer je nameščen vaš MySQL DBMS. Na primer, imam MariaDB, ki je nameščen v mapi C:\Server\bin\mariadb\. Zato se datoteka, ki nas zanima, nahaja v imeniku C:\Server\bin\mariadb\bin\. Za obisk tega imenika uporabite ukaz cd na naslednji način:

Cd C:\Server\bin\mariadb\bin\

V tem ukazu zamenjajte C:\Server\bin\mariadb\bin\ s pravilno potjo za vaš sistem

Zdaj pa zaženimo datoteko mysql.exe. Datotečne pripone.exe ni treba navesti - sistem bo sam uganil, kaj mislimo. Uporabiti moramo tudi možnost -u in -str. Po prvi možnosti morate določiti uporabniško ime - korenina. Za drugo možnostjo je geslo za uporabnika. V mojem primeru geslo ni nastavljeno, zato tečem brez možnosti -str:

Mysql -u root

Morda se zdi, da se ni veliko spremenilo, a nova ukazna vrstica

MariaDB [(brez)]>

označuje, da smo povezani s strežnikom MySQL. Natančneje, v mojem primeru smo povezani s strežnikom MariaDB.

Za ogled seznama baz podatkov vnesite ukaz:

PRIKAŽI PODATKOVNE BAZE;

Če želite poslati nadaljnje poizvedbe v določeno bazo podatkov (na primer test), uporabite ukaz UPORABA:

USE test;

Za ogled tabel v izbrani bazi podatkov zaženite ukaz:

RAZSTAVITE MIZICE;

Ustvarimo nekaj tabele:

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

Poglejmo še enkrat vsebino testne baze.

Priljubljen sistem za upravljanje baz podatkov MySQLširoko uporablja za različne potrebe, predvsem kot de facto standard na področju internetnega gostovanja. Nič manj razširjen je paket za upravljanje tega DBMS - phpMyAdmin. Brez dvoma je to dober, priročen izdelek, vendar se zelo pogosto zgodi, da veščine za delo s tem izdelkom popolnoma nadomestijo veščine za delo s samim DBMS. Zato smo se v tem gradivu odločili, da našim bralcem predstavimo, kako izvajati osnovna skrbniška opravila MySQL iz ukazne vrstice.

Kot so morda opazili naši redni bralci, dosledno nasprotujemo uporabi različnih vrst nadzornih plošč pri začetnikih, ne glede na to, kako priročne in razširjene so. Hkrati pa ne zanikamo njihovega obstoja in jih tudi sami z veseljem uporabljamo pri vsakodnevnih opravilih.

Vendar obstaja ena velika razlika: strokovnjak, ki zna delati z ukazno vrstico s pomočjo plošče, ne nadomesti sposobnosti dela z izdelkom, ampak si le olajša opravljanje vsakodnevnih opravil. In začetnik, navajen izvajanja vseh dejanj na plošči, če je nedostopna, pade v tiho paniko, ker mora zdaj vnesti nekaj "čarovnij" v to nerazumljivo črno konzolo ...

Pravzaprav delo z DBMS na ravni ukazne vrstice sploh ni težko, nekatere skrbniške naloge pa je lažje in bolj priročno izvajati v njej. Takoj rezervirajmo: z administracijo mislimo na administracijo strežnika DBMS in ne na same baze podatkov. Seveda lahko z njimi delate tudi iz ukazne vrstice, vendar je za to bolje uporabiti primernejša orodja.

Upravljanje baz podatkov in uporabnikov v MySQL

Če bi morali začeti plesati od štedilnika, potem se mora delo z DBMS začeti z ustvarjanjem baz podatkov in uporabnikov teh baz. Naloge so v bistvu preproste in jih je mogoče odlično, predvsem preprosto, rešiti s konzole. Pripomoček z istim imenom je zasnovan za delo s strežnikom MySQL mysql, s katerim se dela v interaktivnem načinu, zato se najprej povežemo s strežnikom:

Mysql -u root -p

Če stikalo -u podaja uporabniško ime in -p določa preverjanje pristnosti gesla, sintaksa ukaza omogoča podajanje gesla tako, da ga vnesete brez presledkov takoj za ključem, vendar bo v tem primeru shranjeno v zgodovini ukazov, kar je ni povsem dobro, zato je bolje, da geslo vnesete interaktivno. Po izvedbi tega ukaza se bomo znašli v okolju MySQL, na kar nakazuje spremenjen poziv ukazne vrstice.

Delo v tem okolju ima svoje značilnosti: vsak ukaz se mora končati s simbolom ; oz \g, o čemer mimogrede piše v prvi vrstici voščila. Ta način se izstopi z ukazom:

Pogovorimo se o eni zelo pogosti napaki: pozabiti postaviti podpičje na koncu ukaza. Kaj storiti? Nič hudega, le vnesite manjkajoče znake v naslednjo vrstico.

Najprej si oglejmo seznam baz podatkov:

Prikaži baze podatkov;

Kot pravijo, brez nepotrebnih podrobnosti, vendar je za večino administrativnih nalog to dovolj:

Iskanje seznama uporabnikov je nekoliko težje, shranjen je v obliki tabele podatkovne baze storitev mysql, zato napišemo majhno prošnjo:

Izberite uporabnika, gostitelja iz mysql.user;

Ekipa izberite izbere določene stolpce uporabnik, gostitelj, možnost od nakazuje, od kod jih izbiramo, in sicer iz uporabniške tabele baze podatkov mysql.

Prvi stolpec označuje uporabnika, drugi - gostitelja, na katerem se ta uporabnik lahko poveže, % - označuje katero koli vrednost. Upoštevajte, da če ivanov ima v nastavitvah lokalni gostitelj, potem ko je povezan z mysql po naslovu 127.0.0.1 ne bo mogel pridobiti dostopa, to morate upoštevati, ko v svojih aplikacijah podajate podatke o povezavi s strežnikom DBMS.

Lastnike baze podatkov si lahko ogledate z naslednjo poizvedbo:

Izberite host,db,user iz mysql.db;

Tukaj niso potrebni posebni komentarji. na primer ivanov ima pravice do baz podatkov s predpono ivanov_ ko je povezan prek lokalni gostitelj, in andrey na osnove s predpono andrej_ na katerem koli gostitelju. Uporabniške privilegije si lahko ogledate z ukazom:

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

Uporabniško ime in gostitelja zavijemo v enojne narekovaje.

Prva vrstica poroča, da navedeni uporabnik nima privilegijev ( UPORABA) v katero koli tabelo katere koli zbirke podatkov ( *.* ), druga vrstica govori o vseh glavnih privilegijih za vse tabele vseh baz podatkov s predpono ivanov_.

Recimo, da podrobna analiza sistema pravic MySQL daleč presega obseg tega članka VSE PRIVELEGIJE daje uporabniku vse pravice do svojih baz podatkov, ne dovoljuje pa mu upravljanja pravic dostopa za druge uporabnike. Za to se uporablja niz pravic VSE PRIVELEGIJEZ MOŽNOSTJO DOBIVANJA, ki ima privzeto korenina. Za preprostega uporabnika je ta niz pravic odveč.

Poskusimo ustvariti novega uporabnika:

Ustvarite uporabnika "petrov"@"localhost", označenega z "geslom";

Sintaksa ukaza je preprosta, podamo uporabniško ime in gostitelja ter identifikacijske podatke v obliki gesla. Vse posredovane vrednosti so zavite v enojne narekovaje. Ko ustvarite uporabnika, mu morate dodeliti pravice, to storite z ukazom GRANT. Najprej mu bomo izrecno odvzeli privilegije do podatkovnih baz drugih ljudi:

Dodeli uporabo na *.* za "petrov"@"localhost";

Nato lahko nastavimo pravice po lastni presoji, na primer izdajo polnih pravic bazam podatkov s predlogo imena petrov_:

Podeli vse privilegije na `petrov\_%`.* za "petrov"@"localhost";

Upoštevajte, da mora biti vzorec ovit z znaki gravis (` ), ki se nahajajo na ključu z rusko črko E.

Pravice za ločeno zbirko podatkov lahko podelite na naslednji način:

Podeli vse privilegije na andrey_drupal8.* "petrov"@"localhost";

Za izbiro pravic uporabite samo ukaz REVOKE, ki ima podobno sintakso do (komu), ga nadomestite z od (WHO). Na primer:

Prekliči vse privilegije na andrey_drupal8.* od "petrov"@"localhost";

Če želite, da strežnik MySQL uporabi pravice, ga morate prisiliti, da znova naloži predpomnilnik pravic z ukazom:

Privilegiji za izpiranje;

Morda boste morali spremeniti tudi uporabniško geslo:

Nastavite geslo za "petrov"@"localhost" = geslo("novogeslo");

Preimenujte ga in preimenovanje ne pomeni nujno spremembe uporabniškega imena; spremenite lahko tako ime kot gostitelja v poljubni kombinaciji:

Preimenuj uporabnika "petrov"@"localhost" v "petr"@"127.0.0.1";

In končno izbrišite račun:

Izbrišite uporabnika "petr"@"127.0.0.1";

Preidimo od uporabnikov k bazam podatkov, v najpreprostejšem primeru je za ustvarjanje nove baze dovolj ukaz:

Ustvari bazo petrov_newdb;

To bo ustvarilo bazo podatkov s privzeto kodno stranjo in primerjalnim kodiranjem. Če strežnik DBMS ni bil konfiguriran ločeno, bo to kodiranje najverjetneje latin1_swedish_ci, kar lahko v nekaterih primerih povzroči težave, če ne zdaj, pa v prihodnosti, zato je dobro pravilo, da pri ustvarjanju baze podatkov izrecno navedete kodiranje. Za UTF-8 bi bilo takole:

Ustvari bazo podatkov petrov_newdb privzeti nabor znakov utf8 primerjanje utf8_general_ci;

Za Windows-1251:

Ustvari bazo podatkov petrov_newdb privzeti nabor znakov cp1251 primerjanje cp1251_general_ci;

Če želite odstraniti bazo podatkov, uporabite:

Izbrišite podatkovno bazo petrov_newdb;

Preverjanje, optimizacija, odpravljanje napak v podatkovnih bazah MySQL

Ker MySQL aktivno deluje, lahko baze podatkov postanejo razdrobljene in lahko vsebujejo napake v podatkih tabel. Zdaj ne govorimo o resnih napakah, takšne situacije je treba obravnavati posamično, ampak o najpreprostejših napakah, ki jih je mogoče uspešno odpraviti s samim DBMS. Za preverjanje, popravilo in optimizacijo je priročno uporabiti pripomoček mysqlcheck.

Če želite preveriti bazo podatkov, naredite kje andrey_drupal8- ime baze podatkov:

mysqlcheck -u root -p --check andrey_drupal8

Vse podatkovne baze lahko preverite hkrati z ukazom:

mysqlcheck -u root -p --check --all-databases

In ker celoten izpis najverjetneje ne bo ustrezal zaslonu, je smiselno, da ga preusmerite na ukaz manj:

mysqlcheck -u root -p --check --all-databases | manj

Upoštevajte to manj omogoča pomikanje po izhodu navzdol in navzgor s puščicami, pritisnite za izhod q.

Če so bile v kateri koli od zbirk podatkov odkrite napake, jih poskusite popraviti, za to navedite:

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

Za optimizacijo uporabite ključ - -optimizirati, lahko optimizirate posamezno bazo podatkov ali več; za to jih navedite za ključem --baze podatkov:

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

in vse naenkrat:

mysqlcheck -u root -p --optimize --all-databases

Nalaganje in nalaganje izpisov baze podatkov MySQL

Druga pogosta naloga pri skrbništvu katerega koli DBMS so izpisi baze podatkov, ki se uporabljajo tako za varnostno kopiranje kot za prenos ali ustvarjanje kopij. Če je varnostno kopiranje avtomatiziran proces, potem je treba ustvarjanje kopij za prenos na drug strežnik ali pred kakršnimi koli večjimi posegi v strukturo baze opraviti ročno.

In če gre za velike baze podatkov, potem tukaj phpMyAdmin slab pomočnik, vpliva na čas izvajanja skriptov, velikost prenesene datoteke, razpoložljiv pomnilnik itd. In čeprav lahko z njim še vedno naložite velik izpis, ga morda ne boste mogli naložiti nazaj.

Začnimo z ustvarjanjem odlagališč; pripomoček se uporablja za te namene mysqldump, katerega sintaksa sledi sintaksi mysqlcheck. Za prenos izpisa uporabite ukaz:

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

Če želite odstraniti več baz podatkov hkrati, uporabite ključ --baze podatkov oz --vse baze podatkov ustvariti izpis vseh baz podatkov hkrati. Izhod ukaza je treba poslati v datoteko in navesti njeno lokacijo, v našem primeru je to datoteka drupal8.sql v domačem imeniku. Izhod lahko tudi posredujete arhivatorju in takoj prejmete arhiv:

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

Na splošno ne priporočamo uporabe enega odlagališča za več baz podatkov hkrati; najboljša možnost bi bila lastna odlagališča za vsako bazo podatkov, hkrati z uporabo ključa --vse baze podatkov upravičeno v primerih, ko morate hitro narediti varnostno kopijo celotnega strežnika, na primer pri posodabljanju ali ponovni namestitvi DBMS, tako da lahko hitro obnovite podatke, če gre kaj narobe.

Če želite obnoviti bazo podatkov, morate poslati izpis na vhod pripomočka mysql; za posamezne izpise morate vedno določiti ciljno bazo podatkov, na primer:

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

Ni nujno, da je cilj izvorna zbirka podatkov, vendar upoštevajte, da če baza podatkov že obstaja, bo vsa njena vsebina nadomeščena z vsebino izpisa.

Za izpise, ki vsebujejo več kot eno bazo podatkov, preprosto določite:

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

V tem primeru bo vsaka baza podatkov naložena v svoj vir, če izvorna baza podatkov ne obstaja, pa bo ustvarjena.

Kot lahko vidite, se ustvarjanje in obnavljanje odlagališč z uporabo ukazne vrstice zgodi dobesedno v eni vrstici in je veliko lažje in hitreje kot uporaba phpMyAdmin ali podobnih orodij.

Obnovitev pozabljenega korenskega gesla MySQL

Še ena zelo priljubljena naloga. Recimo takoj, da je nemogoče obnoviti geslo superuporabnika MySQL, tako kot kateri koli drug uporabnik, vendar ga lahko spremenite. Če želite to narediti, morate imeti pravice superuporabnika za operacijski sistem. Najprej ustavimo storitev DBMS:

Storitev mysql stop

Nato ga zaženemo v varnem načinu, pri čemer preskočimo tabele privilegijev:

mysqld_safe --skip-grant-tables &

Upoštevajte, da bo po izvedbi tega ukaza ukazna vrstica izginila, ostal bo le utripajoč kazalec. Prav tam pišemo:

Mysql -u root

in se znajdemo v okolju mysql s korenskimi pravicami brez vnosa gesla.

Zdi se nam, da so mnogi že ugibali, kaj storiti naprej, vendar nastavi geslo v tem načinu ne bo delovalo, zato morate iti na drugo pot. Ne pozabite, da so podatki o uporabnikih shranjeni v tabeli uporabnik storitveno bazo podatkov mysql. Nato izvedemo naslednjo poizvedbo:

Posodobite mysql.user nastavite geslo = geslo ("novo geslo"), kjer je uporabnik="root";

Pomembno! V novih različicah MySQL namesto stolpca geslo mize uporabnik uporablja se stolpec niz_avtentikacije, torej namesto tega nastavi geslo je treba navesti nastavite authentication_string.

Ta zahteva bo nastavila novo geslo novo geslo za vse vrstice v stolpcu uporabnik ki so navedene korenina.

Posodobimo predpomnilnik pravic:

Privilegiji za izpiranje;

Zapustimo način:

Ustavimo storitev in jo zaženimo v običajnem načinu:

Storitev mysql stop
storitev mysql start

Upamo, da boste po branju tega članka pridobili začetne veščine pri delu z MySQL iz ukazne vrstice in se boste lahko počutili samozavestni tudi, ko phpMyAdmin ni na voljo, in morda celo cenili priročnost konzolnih ukazov in boste manj verjetno vstopili ploščo, raje neposredno upravlja strežnik.

  • Oznake:

Za ogled omogočite JavaScript

Od avtorja: punca, tvoj avto noče vžgati? Mogoče lahko poskusimo "iz potiskača"? Jaz bom pomagal! Ne veste, kako je? Ste strežnik DBMS zagnali samo preko cmd? To pomeni, da znate zagnati MySQL prek ukazne vrstice, ne veste pa niti, kako zagnati avtomobila. Mademoiselle, vi ste "čudna" blondinka!

Nenavadnosti v opisu MySQL

Pri pripravi vsakega članka moram "temeljito" prebrskati internet v iskanju referenčnih materialov o eni ali drugi disciplini "gradnje spletnih mest". Večinoma je na internetu objavljenih veliko podrobnih vodnikov in vaj, vendar ne za MySQL.

Seveda obstajajo vredni izobraževalni, vendar glavni del DBMS ponuja le primere pisanja ukazov in celo brez navedbe sintakse. V takšnih razmerah je skoraj nemogoče, da bi kakšni "teleki" razumeli, na primer, kako se povezati z MySQL prek ukazne vrstice.

Če želite najti odgovor za začetnika, boste morali brskati po ducatu tematskih forumov, kjer bodo profesionalni razvijalci (ki se predstavljajo skoraj kot "akademiki") popustili, da bi začetniku vsaj nekaj normalno razložili.

Vredno je razumeti, da mora pravi skrbnik poznati vse načine za zagon in delo s strežnikom baz podatkov. Jasno je, da so programske lupine najprimernejša metoda, vendar morda niso vedno pri roki. Zato boste z znanjem, kako omogočiti MySQL prek ukazne vrstice, več kot enkrat prihranili podatke o spletnem mestu in svoj ugled kot strokovnjaka (če se nameravate poklicno ukvarjati s spletnim razvojem).

Oglejmo si to temo podrobneje. In prosim, ne delajte obrazov, če se vam karkoli od tega gradiva zdi tako preprosto kot zagon avtomobila "s potisne palice".

Zaženite cmd

Za zagon MySQL iz ukazne vrstice najprej aktivirajte sam pripomoček (cmd), ki je vključen v standardni nabor Windows. To lahko storite na več načinov:

Bližnjica na tipkovnici Win + R in nato v pogovornem oknu »Zaženi«, ki se prikaže, vnesite cmd

Skozi ploščo Start.

Poleg tega ima lahko MySQL domačo lupino. Na primer, če namestite strežnik baze podatkov na lokalni računalnik kot samostojno "aplikacijo", ki ni vključena v "gentlemen's" paket.

Izvorna ukazna vrstica MySQL se zažene tako kot običajni cmd. Razlike v delovanju obeh pripomočkov se bodo pokazale kasneje. O tem bomo govorili v naslednjem razdelku.

Delo z ukazno vrstico

Najprej se lotimo pripomočka, vgrajenega v operacijski sistem. Poglejmo, kako zagnati MySQL iz ukazne vrstice Windows. Za to potrebujete:

Pot do mape v datotečnem sistemu računalnika, kjer ste namestili strežnik baze podatkov.

Uporabniški račun – prijava in geslo.

Če delate z Denverjem, se izvršljiva datoteka nahaja na navideznem disku, ki je ustvarjen po zagonu lokalnega strežnika, po tej poti: Z:\usr\local\mysql-5.5\bin

Kot sem že rekel, se ukazna vrstica MySQL v Denwerju zažene prek cmd OC. To pomeni, da ga najprej zaženemo in nato določimo pot do izvršljive datoteke DBMS. Geslo in prijavo za dostop lahko določite najprej ali pozneje po aktiviranju pripomočka MySQL. Kar se mene tiče, je bolj priročno registrirati vse naenkrat: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

V strežnik DBMS smo se prijavili z administratorskimi pravicami. Nimam nastavljenega gesla za root, zato njegova vrednost ni navedena. Ko zaženemo MySQL iz ukazne vrstice, se spodaj prikažejo informacije o pomoči o različici pripomočka, strežniku in ID-ju povezave.

Sedaj pa preverimo pravilnost postopka in »moč« naših pravic. Na primer, prikažimo seznam vseh tabel, ki se trenutno uporabljajo na strežniku:

PRIKAŽI ODPRTE MIZE;

PRIKAŽI ODPRTE MIZE ;

MySQL nam je v ukazni vrstici Windows dal samo tabele, ki so del sistemske baze podatkov. To je zato, ker se vsi podatki, shranjeni v njem, uporabljajo v delujočem primerku DBMS. Tako smo vedeli, da strežnik deluje in da smo vanj prijavljeni z skrbniškimi pravicami, kot je bilo načrtovano.

Shema za delo z lupino, nameščeno skupaj s sistemom za upravljanje baz podatkov, je nekoliko drugačna. Da bi vse to »izkusili« sami, aktivirajmo MySQL prek te ukazne vrstice.

Po zagonu se prikaže okno, v katerem morate takoj vnesti geslo. V nasprotnem primeru je celoten postopek interakcije s pripomočkom enak.

Delo z drugimi aplikacijami

Sestava standardnega nabora orodij DBMS ni omejena na eno strežniško izvršljivo datoteko. Njihov izbor si lahko ogledate tako, da pogledate v isto mapo, kjer se nahaja strežnik baze podatkov. Na primer, zaženimo pripomoček MySQL dump prek ukazne vrstice.

Najprej pojdite na virtualni disk, nato pa z ukazom cd pojdite v mapo, kjer je shranjen pripomoček. Naj vas spomnim, da je namenjen ustvarjanju varnostnih kopij baz podatkov.

V naslednjem koraku bomo morali pred prijavo v MySQL prek ukazne vrstice določiti račun in geslo zanj. Primer uporabe ukaza mysqldump:

mysqldump -uroot world>C:\Users\home\Desktop\dump\copy.sql

Za pravilno delovanje ukaza mora biti določen imenik ustvarjen v času izvajanja. V nasprotnem primeru bo pripomoček vrnil sporočilo, da taka pot ne obstaja.

Omeniti velja tudi, da mora imeti določen uporabnik MySQL v ukazni vrstici pravice za spreminjanje baze podatkov ali skrbniški račun.

Drugi pripomočki, vključeni v standardni nabor, se zaženejo na podoben način. Z njihovo pomočjo lahko izvajate vse osnovne operacije upravljanja DBMS: upravljate vloge, ustvarjate varnostne kopije, urejate vsebino shramb. Prav tako namestite storitev MySQL iz ukazne vrstice. Na splošno vse, brez česar se strežnik baz podatkov ne bo zagnal "iz potisne naprave".

Spodaj je seznam najbolj uporabnih in pogosto uporabljenih ukazov MySQL s primeri.

mysql na začetku vrstice pomeni, da se ukaz izvede po prijavi MySQL.

Simbol # ali $ na začetku vrstice pomeni, da se ukaz izvede iz ukazne vrstice.

Za preverjanje stanja strežnika MYSQL narediti:

Za FreeBSD:

# storitev stanje strežnika mysql

V CentOS/RHEL:

# status storitve mysqld

MySQL iz konzole, če strežnik MySQL je na istem gostitelju:

Za povezavo s strežnikom MySQL iz konzole, če strežnik MySQL se nahaja na oddaljenem gostitelju db1.example.com:

$ mysql -u uporabniško ime -p -h db1.example.com

Delo z bazami podatkov in tabelami – pregledovanje, brisanje, urejanje zapisov. Konzola

Ustvari bazo podatkov na MySQL strežnik:

Mysql ustvari bazo podatkov

Prikaži seznam vseh baz podatkov na strežniku MySQL:

uporaba mysql;

Prikaži vse tabele v bazi podatkov:

Mysql pokaži tabele;

Oglejte si obliko tabele v bazi podatkov:

mysql opiši ;

Izbriši zbirko podatkov:

baza podatkov Mysql drop;

Brisanje tabele iz baze podatkov:

Mysql drop table ;

Prikaži vse vsebine tabele:

Mysql IZBERI * IZ ;

Prikaz stolpcev in vsebine stolpcev v izbrani tabeli:

Mysql pokaži stolpce iz ;

Prikaži vrstice v določeni tabeli, ki vsebuje » karkoli «:

Mysql SELECT * FROM WHERE = "kar koli";

Prikažite vse zapise v določeni tabeli, ki vsebuje »Bob« in telefonsko številko »3444444:

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

Prikaži vse vnose, NE ki vsebuje ime "Bob" in telefonsko številko "3444444", razvrščeno po polju phone_number:

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

Prikaži vse vnose, ki se začnejo s črkama "bob" in telefonsko številko "3444444" v določeni tabeli:

Mysql SELECT * FROM WHERE ime, kot je "Bob %" AND phone_number = "3444444";

Pokaži vse vnose, ki se začnejo s črkama "bob" in telefonsko številko "3444444", omejitev vnosov od 1 do 5:

Mysql SELECT * FROM WHERE ime, kot je "Bob %" IN phone_number = "3444444" omejitev 1,5;

Uporaba regularnih izrazov ("REGEXP BINARY") za iskanje zapisov. Na primer, za iskanje brez upoštevanja velikih in malih črk poiščite vse zapise, ki se začnejo s črko A:

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

Prikaži vse edinstvene vnose:

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

Pokažite število vrstic v tabeli:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Odstranjevanje stolpca:

Mysql spremeni tabelo, spusti stolpec;

Dodajanje stolpca v bazo podatkov:

Mysql spremeni tabelo dodaj stolpec varchar(20);

Spreminjanje imena stolpca:

Mysql spremeni tabelo spremeni varchar(50);

Ustvarite stolpec z edinstvenim imenom, da se izognete podvojenim imenom:

Mysql alter table add unique();

Spreminjanje velikosti stolpca:

Mysql spremeni tabelo spremeni VARCHAR(3);

Odstranjevanje stolpca iz tabele:

Mysql spremeni indeks padca tabele;

Mysql NALOŽI PODATKOVNO DATOTEKO " /tmp/imedatoteke.csv " zamenjaj V POLJA TABELE, KI SE KONČAJO Z "," VRSTICE, KI SE KONČAJO Z "n" (polje1,polje2,polje3);

Uporabniki strežnika MySQL, gesla - dodajanje, spreminjanje uporabnikov in gesel. Konzola

Ustvarjanje novega uporabnika - povezava s strežnikom MySQL kot root, preklop na bazo podatkov, dodaj uporabnika, posodobi privilegije:

# mysql -u root -p mysql uporabi mysql; mysql INSERT INTO uporabnik (gostitelj, uporabnik, geslo) VALUES ("%"," uporabniško ime ", PASSWORD(" geslo ")); privilegiji izpiranja mysql;

Spreminjanje uporabniškega gesla s konzole na oddaljenem gostitelju db1.example.org:

# mysqladmin -u uporabniško ime -h db1.example.org -p geslo " novo-geslo "

Spreminjanje uporabniškega gesla iz konzole MySQL- povežite se kot root, posodobite geslo, posodobite privilegije:

# mysql -u root -p mysql NASTAVI GESLO ZA " uporabnik "@" ime gostitelja " = GESLO(" geslotukaj "); privilegiji izpiranja mysql;

Obnovitev/spreminjanje gesla korenskega strežnika MySQL- ustavi se MySQL, zaženite brez tabel privilegijev, povežite se kot root, nastavite novo geslo, zapustite in znova zaženite MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") kjer je User="root"; mysql; privilegiji za izpiranje; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Nastavite root geslo, če obstaja root geslo.

# mysqladmin -u root geslo novo geslo

Posodobite korensko geslo:

# mysqladmin -u root -p staro geslo novo geslo

Nastavitev pravice za povezavo s strežnikom iz lokalnega gostitelja gostitelja z geslom "passwd" - povezovanje s subroot, preklop na bazo podatkov, nastavitev privilegijev, posodabljanje privilegijev:

# mysql -u root -p mysql uporabi mysql; mysql odobri uporabo na *.* za bob @localhost, ki ga identificira " passwd "; privilegiji izpiranja mysql;

Nastavitev uporabniških privilegijev za uporabo baze podatkov - povezovanje kot root, preklop na bazo podatkov, nastavitev privilegijev, posodobitev privilegijev:

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

Mysql dodeli vse privilegije za databasename .* uporabniškemu imenu @localhost; privilegiji izpiranja mysql;

Posodabljanje podatkov v bazi:

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

Brisanje vrstice v tabeli:

Mysql DELETE from where = "kar koli";

Posodabljanje privilegijev v bazi podatkov:

Privilegiji izpiranja Mysql;

Varnostne kopije - ustvarjanje, obnavljanje baz podatkov. Konzola

Ustvarite varnostno kopijo (dump) vseh baz podatkov v datoteko alldatabases.sql:

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

Varnostno kopirajte eno bazo podatkov v datoteko databasename.sql:

# mysql dump -u uporabniško ime -p geslo -databases ime baze podatkov; /tmp/imebaze podatkov.sql

Varnostno kopirajte eno tabelo v datoteko ime baze podatkov.ime tabele.sql:

# mysql dump -c -u uporabniško ime -p geslo ime baze podatkov ime tabele ; /tmp/databasename.tablename.sql

Obnovitev baze podatkov (ali tabele) iz varnostne kopije:

# mysql -u uporabniško ime -p geslo ime baze podatkov< /tmp/databasename.sql

Izdelava tabel baze podatkov. Konzola

imena stolpcev so navedena z malimi črkami;
VELIKE tiskane črke - vrste in lastnosti stolpcev;
v (oklepajih) - vrednost vrste stolpca.

Ustvari tabelo, primer 1:

mysql CREATE TABLE (ime VARCHAR(20), začetnica srednjega imena VARCHAR(3), priimek VARCHAR(35), pripona VARCHAR(3), officeid VARCHAR(10), ID uporabnika VARCHAR(15), uporabniško ime VARCHAR(8), e-pošta VARCHAR(35) ), telefon VARCHAR(25), skupine VARCHAR(15), datumski žig DATE, časovni žig TIME, pgpemail VARCHAR(255));

Ustvarite tabelo, primer 2:

Mysql ustvari tabelo (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, ime VARCHAR(35), srednje ime VARCHAR(50), priimek VARCHAR(50) privzeto "bato");