Arbeide med MySQL fra kommandolinjen. Automatisk installasjon av MySQL på Windows Kjør mysql fra linux-kommandolinjen

Starte og stoppe MySQL-serveren fra kommandolinjen

Du kan starte MySQL-serveren manuelt på en av to måter:

Dobbeltklikk på mysqld-nt.exe-filen i bin-underkatalogen til katalogen der MySQL er installert.

Åpne et Windows-ledetekstvindu. For å gjøre dette, klikk på Start-knappen, velg Kjør fra menyen, i Kjør et program-vinduet som vises, i Åpne-feltet, skriv inn cmd-kommandoen og klikk OK. Et kommandolinjevindu vil vises på skjermen (fig. 1.25).

Ris. 1,25. Kommandoprompt-vindu


Skriv inn kommandoen ved ledeteksten

mysqld-nt

og trykk Enter. MySQL-serveren vil starte.

Hvis banen til bin-underkatalogen ikke ble lagt til verdien til Path-systemvariabelen når du konfigurerte serveren, må du for å starte serveren ikke bare skrive inn filnavnet, men også hele banen til den, for eksempel :

C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt

Hvis du vil se diagnostiske meldinger om serveren i et ledetekstvindu, i stedet for mysqld-nt, skriv inn

mysqld-nt –konsoll

Merk følgende!

Hvis du ikke spesifiserte et root-brukerpassord da du satte opp MySQL-serveren, må du angi et passord første gang du starter serveren (ellers kan hvem som helst administrere serveren som root uten passord).

For å angi root-passordet, åpne et nytt ledetekst-vindu og skriv inn følgende kommando:

mysqladmin -u root-passord<пароль>

(eller C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root-passord<пароль>, hvis banen til bin-underkatalogen ikke ble lagt til Path-systemvariabelen når du satte opp serveren), og trykk Enter.

I fremtiden, hvis du trenger å endre root-brukerpassordet, kjør den samme kommandoen, bare bruk -r-alternativet:

mysqladmin -u root -p passord<новый пароль>

Når ledeteksten Enter passord vises, skriv inn ditt gamle passord og trykk Enter.

Til slutt, hvis du trenger å stoppe MySQL-serveren, kjør kommandoen

mysqladmin -u root -p avslutning

og ved ledeteksten Enter password skriver du inn root-brukerpassordet. Trykk enter. MySQL-serveren vil bli stoppet.

Du kan også bruke det grafiske MySQL Administrator-verktøyet til å starte og stoppe MySQL-serveren.

Starte og stoppe MySQL Server ved å bruke MySQL Administrator

For å starte MySQL-serveren ved å bruke det grafiske MySQL-administratorverktøyet, følg disse trinnene.

1. Start MySQL Administrator-programmet (Start → Alle programmer → MySQL → MySQL Administrator). Et servertilkoblingsvindu vises på skjermen (fig. 1.26).

Ris. 1,26.


2. Trykk og hold nede Ctrl-tasten og klikk på Hopp over-knappen som vises i nedre høyre hjørne av vinduet i stedet for Avbryt-knappen. Hovedvinduet for MySQL Administrator vil vises på skjermen (fig. 1.27).

Ris. 1,27. MySQL Administrator hovedvindu


4. Hvis MySQL-serveren ikke er konfigurert som en Windows-tjeneste, er knappen Start tjeneste i høyre rute i vinduet nedtonet. Følgende foreløpige skritt må tas:

1) Gå til kategorien Konfigurer tjeneste. Finn knappen Installer ny tjeneste nederst på fanen og klikk på den;

2) i dialogboksen som vises, spesifiser navnet på tjenesten og klikk OK;

3) i feltet Config Filename skriver du inn banen til my.ini-konfigurasjonsfilen (fig. 1.28), for eksempel C:\Program Files\MySQL\MySQL Server 5.0\my.ini. Rød skriftfarge betyr at filen ikke ble funnet; hvis fargen endres til normal, er banen riktig;

4) i feltet Path to binary, skriv inn banen til mysqld-nt.exe-filen, for eksempel C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt;

6) gå tilbake til fanen Start/Stopp-tjeneste.

Ris. 1,28. Konfigurer Tjeneste-fanen 5. Klikk på Start Tjeneste-knappen. MySQL-serveren vil starte.


Merk følgende!

Hvis du ikke spesifiserte et root-brukerpassord da du satte opp MySQL-serveren, må du angi det første gang du starter serveren (ellers kan hvem som helst administrere serveren som root uten passord). I den gjeldende versjonen av MySQL Administrator er det ikke tilgjengelig å angi root-passordet, og for å utføre denne operasjonen må du bruke kommandolinjeverktøyet mysqladmin (se underavsnittet "Starte og stoppe MySQL-serveren fra kommandolinjen").

Følg disse trinnene for å stoppe MySQL-serveren ved å bruke MySQL Administrator.

1. Start MySQL Administrator-programmet (Start → Alle programmer → MySQL → MySQL Administrator). Et servertilkoblingsvindu vil vises på skjermen (se figur 1.26).

Server Host – verdi localhost (lokal datamaskin);

Port – portnummer valgt ved oppsett av serveren (standard – 3306);

Bruksnavn – rotverdi;

Passord – root brukerpassord. Klikk OK.

3. I hovedvinduet for MySQL Administrator, i venstre rute, klikker du på Tjenestekontroll.

4. Klikk på Stopp tjeneste-knappen i høyre rute i vinduet. MySQL-serveren vil bli stoppet.

I neste underavsnitt vil du lære hvordan du starter en MySQL-server ved å bruke Windows Administrative Tools.

Starte og stoppe MySQL-serveren fra kontrollpanelet

Hvis MySQL-serveren ble konfigurert som en Windows-tjeneste ved å bruke oppsettsveiviseren (se underavsnittet "Konfigurere MySQL-serveren") eller bruke MySQL-administratorverktøyet (se underavsnittet "Starte og stoppe MySQL-serveren ved hjelp av MySQL-administratoren"), start og stopp it Du kan bruke Tjenester-komponenten i kontrollpanelet.

For å få tilgang til Tjenester-komponenten, klikk Start-knappen, velg Kontrollpanel fra menyen, dobbeltklikk deretter Administrative verktøy i Kontrollpanel, og dobbeltklikk til slutt Tjenester i vinduet Administrative verktøy. Tjenester-vinduet vises på skjermen (fig. 1.29) med en liste over alle lokale tjenester.

Ris. 1,29. MySQL-tjeneste i kontrollpanel


I Tjenester-vinduet klikker du på navnet på MySQL-tjenesten (navnet bestemmes når du oppretter tjenesten i konfigurasjonsveiviseren eller i MySQL Administrator). Klikk deretter på ønsket lenke under tjenestenavnet: Start Service, Stop Service, eller Restart Service.

Når MySQL-serveren kjører, kan du koble til den. I de følgende underavsnittene lærer du hvordan du gjør dette.

Kobler til serveren fra kommandolinjen

Følg disse trinnene for å koble til MySQL-serveren fra kommandolinjen.

1. Åpne et Windows-ledetekstvindu. For å gjøre dette, klikk på Start-knappen, velg Kjør fra menyen, i Kjør et program-vinduet som vises, skriv inn cmd i Åpne-feltet og klikk OK.

2. Skriv inn kommandoen på kommandolinjen (se figur 1.25).

mysql -h<Имя компьютера>-u<Имя пользователя>-s

(Hvor<Имя компьютера>er navnet på datamaskinen som serveren kjører på) og trykk Enter. Når du blir bedt om å angi passord, skriv inn brukerens passord.

Hvis du trenger å koble til en MySQL-server som kjører på samme datamaskin, kan datamaskinnavnet (localhost) utelates, for eksempel

mysql -u rot -s

Etter at du har koblet til serveren, vil ledeteksten endres til mysql> (Figur 1.30). Nå kan du begynne å jobbe med databasen: legg til tabeller, skriv inn og spør etter data, registrer nye brukere osv.

Ris. 1.30. Kobler til MySQL-serveren fra kommandolinjen


For å koble fra serveren, skriv ganske enkelt kommandoen på kommandolinjen

og trykk Enter.

En alternativ måte å koble til MySQL-serveren på er gitt av det grafiske MySQL Query Browser-verktøyet.

Koble til serveren ved hjelp av MySQL Query Browser

MySQL Query Browser-verktøyet er et grensesnitt for å lage, redigere og utføre SQL-setninger. Det er mer praktisk enn kommandolinjen. Hvis du bestemmer deg for å bruke MySQL Query Browser til å jobbe med databasen, følg disse trinnene for å koble til serveren.

1. Start programmet MySQL Query Browser (Start → Alle programmer → MySQL → MySQL Query Browser). Et servertilkoblingsvindu vises på skjermen (fig. 1.31).

Ris. 1.31. MySQL-servertilkoblingsvindu


2. I feltene i servertilkoblingsvinduet skriver du inn tilkoblingsparametrene:

Server Host – navnet på datamaskinen som MySQL-serveren kjører på;

Port – portnummer valgt ved oppsett av serveren (standard – 330 6);

Brukernavn – brukernavn;

Passord – brukerpassord;

Standardskjema - Navnet på databasen du skal jobbe med (dette kan være en eksisterende database eller en ny).

3. Klikk OK. Hvis du skrev inn et navn for den nye databasen, klikker du Ja i dialogboksen som vises for å opprette denne databasen.

Etter tilkobling til serveren vil hovedvinduet for MySQL Query Browser vises på skjermen (fig. 1.32). I den kan du utføre alle operasjoner med databasen: legge til tabeller, angi og spørre data, registrere nye brukere, etc.

Ris. 1,32. MySQL Query Browser hovedvindu


Merk følgende!

Standardfonten som brukes i MySQL Query Browser for å vise SQL-spørringer, støtter ikke russiske bokstaver. For å skrive inn russiske bokstaver i spørringstekster, må du velge en annen font (for eksempel Arial eller Book Antiqua). For å gjøre dette, i hovedvinduet for MySQL Query Browser, åpne Verktøy-menyen og velg Alternativer. I Alternativer-vinduet som vises, i venstre område, klikk Generelle alternativer og i høyre område, i Kodefont-feltet, velg ønsket font fra listen. Klikk på Bruk-knappen.

For å koble fra serveren, lukk ganske enkelt MySQL Query Browser-vinduet.

Dette avslutter vår introduksjon til MySQL og går videre til å oppsummere resultatene.

1.6. Sammendrag

Dette kapittelet undersøkte MySQL DBMS og de grafiske verktøyene MySQL Administrator og MySQL Query Browser. Du har mestret en ganske kompleks prosedyre for å installere og konfigurere en MySQL-server, lært hvordan du administrerer serveren og kobler til den. Du lærte også hvordan en relasjonsdatabase fungerer og hvordan du kan designe din egen database.

Så neste trinn er å bygge en database i MySQL. Det andre kapittelet er viet dette. Den vil vise deg hvordan du lager tabeller, legger inn informasjon i dem og finner informasjonen du trenger i databasen.

Kapittel 2
Databasehåndtering med SQL

I dette kapittelet lærer du hvordan du arbeider med data i MySQL DBMS, hvordan du bestemmer strukturen og hvordan du legger til, endrer og sletter data. Disse operasjonene utføres av SQL, et universelt strukturert spørrespråk som er en standard måte å få tilgang til relasjonsdatabaser på.

Du kan bruke hvilken som helst av de mange MySQL-serverklientapplikasjonene til å utføre SQL-kommandoer. Dette kapittelet dekker ikke tredjepartsapplikasjoner. Du vil bare bli introdusert for applikasjoner som er opprettet av MySQL AB: mysql-kommandolinjeverktøyet og det grafiske MySQL Query Browser-verktøyet.

Alle dataoperasjoner er tilgjengelige i begge verktøyene. MySQL Query Browser er praktisk å jobbe med databasen: komponentene er tydelig presentert, du kan redigere data direkte (uten å bruke SQL UPDATE-operatøren), jobbe med spørringer, for eksempel bygge dem ved hjelp av et spesielt verktøy (og du trenger ikke for å legge inn navn på tabeller og kolonner manuelt ), lagre spørringer i en fil, eksportere søkeresultater og mye mer. Du kan lære om alle funksjonene til MySQL Query Browser ved å referere til dokumentasjonen på russisk, som finnes på http://dev.mysql.com/doc/query-browser/ru/index.html.

Du vil først lære hvordan du kjører SQL-kommandoer i MySQL Query Browser og kommandolinjen, og deretter dekker vi bare syntaksen til SQL-kommandoene.

2.1. Utføre SQL-kommandoer

Før du utfører SQL-kommandoer, må du koble til en kjørende MySQL-server (hvordan du gjør dette ble beskrevet i kapittel 1). I denne delen lærer du hvordan du oppretter SQL-kommandoer og sender dem til serveren for kjøring.

Hvis du bruker kommandolinjen, for å utføre SQL-kommandoen, skriv inn teksten i kommandolinjevinduet og trykk Enter-tasten for å sende kommandoen til serveren. For å unngå problemer med koding av russiskspråklige data, kjør kommandoen før du begynner å jobbe med dataene

SETNAVN cp866;

Du kan se resultatet av å utføre denne kommandoen i fig. 2.1.

Ris. 2.1. Stille inn kodingen på kommandolinjen


Kommandoen SET NAMES må gjentas når alle koble til serveren ved hjelp av kommandolinjen. Denne kommandoen forteller serveren at denne klientapplikasjonen (mysql-verktøyet) bruker CP-866-koding (dette er Windows-kommandolinjekodingen), og serveren vil automatisk utføre kodingskonvertering når den kommuniserer med klientapplikasjonen.

Etter å ha endret kodingen, kan du skrive inn alle SQL-kommandoer på kommandolinjen. En melding om resultatet av kommandoen, samt de forespurte dataene, vises direkte i kommandolinjevinduet (fig. 2.2).

Ris. 2.2. Utføre en SQL-spørring på kommandolinjen


Mysql-verktøyet lar deg legge inn flerlinjekommandoer (i fig. 2.3 ble kommandoen SHOW DATABASES lagt inn på denne måten). Hvis et semikolon ikke er angitt som et tegn på slutten av kommandoen, vil ikke verktøyet sende kommandoen til serveren når du trykker på Enter-tasten, men ber deg fortsette å skrive inn kommandoen. Hvis du vil avbryte en flerlinjekommando, skriv \c (Figur 2.3).

Ris. 2.3. Flerlinjekommando


Hvis du bruker MySQL Query Browser, trenger du ikke stille inn kodingen - dette programmet fungerer i UTF-8-koding og selv rapporterer dette til serveren. I MySQL Query Browser er det imidlertid et problem med å vise russiske bokstaver i spørringsområdet (området der teksten til SQL-kommandoer legges inn, fig. 2.4). For å løse dette problemet må du endre fonten som brukes i spørringsområdet (hvordan du gjør dette ble beskrevet på slutten av forrige kapittel). Du trenger bare å endre fonten én gang.

Ris. 2.4. Utføre en SQL-spørring i MySQL Query Browser


I spørringsområdet kan du skrive inn flere SQL-kommandoer samtidig, som vist i figuren. 2.4. Den gjeldende kommandoen (markøren er på en av linjene) er uthevet med hvit bakgrunn, de resterende kommandoene vises på en lysegrå bakgrunn. For å utføre gjeldende kommando, kan du enten klikke på Utfør-knappen til høyre for ledetekstområdet eller Ctrl+Enter-tastekombinasjonen. Etter å ha utført kommandoen, vises de forespurte dataene i resultatområdet, og en melding om resultatet av kommandoen vises nederst i dette området.

Nå som du har lært hvordan du legger inn SQL-kommandoer, la oss begynne å administrere data ved å bruke disse kommandoene. Først av alt vil vi se på kommandoer designet for å fungere med databasen som helhet.

2.2. Database opprettelse

I denne delen vil du lære hvordan du oppretter og sletter en database, endrer standardkodingen for den, velger gjeldende database og viser også en liste over alle databaser på en gitt MySQL-server.

For å opprette en database, kjør kommandoen

LAG DATABASE<Имя базы данных>;

For eksempel kommandoen

LAG DATABASE Salgsavdeling;

oppretter en database kalt SalesDept.

Hvis du av en eller annen grunn må angi en standardkoding for en ny database som er forskjellig fra kodingen som er spesifisert ved oppsett av MySQL, kan du når du oppretter databasen spesifisere ønsket koding (tegnsett) og/eller sammenligning (sorterings)regel for tegnverdier:

LAG DATABASE<Имя базы данных>

KARAKTERSETT<Имя кодировки>

SORTERE<Имя правила сравнения>;

For eksempel, hvis du importerer data til en ny database som er i CP-1251-kodingen, vil vi indikere denne kodingen når du oppretter databasen på denne måten:

LAG DATABASE Salgsavd

CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Råd

For å se listen over kodinger som brukes i MySQL, kjør kommandoen SHOW CHARACTER SET; og for å se en liste over regler for sammenligning av symbolske verdier, bruk kommandoen SHOW COLLATION;. I dette tilfellet kan du bruke LIKE-operatoren: for for eksempel å se alle sammenligningsregler for CP-1251-kodingen, kjør kommandoen SHOW COLLATION LIKE %1251%;. Endelsen "_ci" (uavhengig av store og små bokstaver) i sammenligningsreglenes navn betyr at når man sammenligner og sorterer store og små bokstaver, tas det ikke hensyn til endingen "_cs" (skiller mellom store og små bokstaver) – det tas hensyn til store og små bokstaver, slutten "_bin" (binær) – sammenligning og sortering utføres av numeriske tegnkoder. For de fleste sammenligningsregler kan du finne en beskrivelse (det vil si rekkefølgen på tegnene som tekstverdiene vil bli sortert etter) på nettsiden http://www.collation-charts.org/mysql60/.

Kodingen som ble spesifisert ved opprettelse av databasen vil bli brukt som standard for tabeller i denne databasen, men du kan spesifisere en annen koding.

Du kan endre kodings- og/eller sammenligningsregelen for tegnverdier for databasen ved å bruke kommandoen

ENDRE DATABASE<Имя базы данных>

KARAKTERSETT<Имя кодировки>

SORTERE<Имя правила сравнения>;

I dette tilfellet forblir kodingen som brukes i eksisterende databasetabeller den samme; Bare standardkodingen for nyopprettede tabeller endres.

For å fjerne en unødvendig eller feil opprettet database, kjør kommandoen

DROPPE DATABASE<Имя базы данных>;

Merk følgende!

Å slette en database er en veldig viktig operasjon fordi den sletter alle tabellene i databasen og dataene som er lagret i tabellene. Det anbefales å lage en sikkerhetskopi av databasen før sletting.

Du kan velge en av databasene som er opprettet på denne MySQL-serveren som gjeldende database ved å bruke kommandoen

BRUK<Имя базы данных>;

For eksempel,:

BRUK Salgsavdeling;

Du kan deretter utføre operasjoner på tabeller i den databasen uten å prefiksere tabellnavnet med databasenavnet. For å få tilgang til tabellen Kunder i SalesDept-databasen, kan du for eksempel ganske enkelt skrive Customers i stedet for SalesDept.Customers. Ved å spesifisere gjeldende database kan du få tilgang til tabeller i andre databaser, men du må bruke databasenavnet som et prefiks. Valget av gjeldende database lagres til du kobler fra serveren eller til du velger en annen gjeldende database.

For å se en liste over alle databaser som finnes på en gitt MySQL-server, kjør kommandoen

VIS DATABASER;

Selv om du ikke har opprettet noen databaser ennå, vil du se tre systemdatabaser i den resulterende listen.

INFORMATION_SCHEMA er en informasjonsdatabase hvorfra du kan hente informasjon om alle andre databaser, datastrukturen i dem og alle slags objekter: tabeller, kolonner, primær- og fremmednøkler, tilgangsrettigheter, lagrede prosedyrer, kodinger osv. Denne databasen er tilgjengelig Den er skrivebeskyttet og virtuell, noe som betyr at den ikke er lagret som en katalog på disken: all informasjon som forespørres fra denne databasen leveres dynamisk av MySQL-serveren.

Mysql er en verktøydatabase som brukes av MySQL-serveren. Den lagrer informasjon om registrerte brukere og deres tilgangsrettigheter, referanseinformasjon osv.

Test er en tom database som kan brukes til å prøve ting ut eller rett og slett slettes.

Så du har mestret de grunnleggende operasjonene som utføres med databasen som helhet: kommandoene CREATE DATABASE (oppretting), ALTER DATABASE (endre), DROP DATABASE (slett), BRUK (velg gjeldende database) og VIS DATABASES (se en liste) av databaser). Deretter skal vi se på tabelloperasjoner. I dette tilfellet vil vi anta at du har valgt en database som gjeldende og jobber med dens tabeller.

2.3. Arbeid med tabeller

I denne delen lærer du hvordan du oppretter, endrer og sletter en tabell, hvordan du viser tabellinformasjon og en liste over alle tabellene i gjeldende database. La oss starte med den vanskeligste kommandoen - å lage en tabell.

Opprette en tabell

For å lage en tabell, kjør kommandoen vist i Listing 2.1.

Oppføring 2.1. Opprett tabellkommando

LAG BORD<Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> [<Свойства столбца 1>],

<Имя столбца 2> <Тип столбца 2> [<Свойства столбца 2>],

[<Информация о ключевых столбцах и индексах>])

[<Опциональные свойства таблицы>];


Som du kan se, kan kommandoen create table inkludere mange parametere, men mange av dem er valgfrie (i Listing 2.1 er disse parameterne omsluttet av firkantede parenteser). Faktisk, for å lage en tabell, trenger du bare å spesifisere navnet og navnene og typene for alle kolonnene; andre parametere brukes om nødvendig.

La oss først se på noen få eksempler som vil hjelpe deg å mestre CREATE TABLE-kommandoen og umiddelbart, uten å studere de mange parameterne, begynne å lage dine egne (enkle i strukturen) tabeller.

La oss anta at vi bygger databasen som vi designet i kapittel 1. Ved å bruke kommandoene fra forrige seksjon opprettet vi en tom SalesDept-database og valgte den som gjeldende. La oss nå lage tre tabeller: kunder, produkter og bestillinger. Oppføring 2.2 viser kommandoen for å lage kundetabellen.

Oppføring 2.2. Kommando for å opprette Kunder-tabellen

LAG TABELL-kunder

(ID SERIE,

navn VARCHAR(100),

telefon VARCHAR(20),

adresse VARCHAR(150),

vurdering INT,

PRIMÆR NØKKEL (id))


Denne kommandoen brukte parametere: for det første navnet på tabellen og for det andre navnene og typene på kolonnene som tabellen vil bestå av (se også Tabell 1.1 i kapittel 1).

ID – postidentifikator. Du tilordnet typen SERIE til denne kolonnen, som lar deg nummerere tabellradene automatisk. Nøkkelordet SERIAL står for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. Dette betyr at store heltall (BIGINT) positive (UNSIGNED) tall kan legges inn i kolonnen, mens fraværet av udefinerte og dupliserte verdier (IKKE NULL UNIQUE) blir automatisk kontrollert. Hvis du, når du legger til en rad i en tabell, ikke spesifiserer en verdi for denne kolonnen, vil MySQL-programmet legge inn neste sekvensnummer (AUTO_INCREMENT) i denne kolonnen.

Merk

NULL er en konstant som indikerer fravær av en verdi. Hvis en kolonne inneholder en NULL-verdi, antas det at det ikke er noen definert verdi for den kolonnen (det er derfor vi også kaller NULL en null-verdi). NULL skal ikke forveksles med den tomme strengen ("") eller tallet 0. NULL-verdier behandles annerledes: de fleste funksjoner og operatorer returnerer NULL hvis ett av argumentene er NULL. For eksempel er sammenligningsresultatet 1 = 1 en sann verdi (TRUE), og sammenligningsresultatet NULL = NULL er en udefinert verdi (NULL), det vil si at to udefinerte verdier ikke anses som like.

Nam er kundens navn, telefon er telefonnummeret og adressen er adressen. Du tilordnet typen VARCHAR til disse kolonnene fordi de vil inneholde tegnverdier. Maksimalt tillatt antall tegn i kolonneverdien er angitt i parentes.

For det tredje spesifiserte du at id-kolonnen skulle være tabellens primærnøkkel ved å inkludere en PRIMARY KEY (id)-klausul i kommandoen for tabelloppretting.

For det fjerde har du spesifisert to valgfrie parametere for denne tabellen. ENGINE-parameteren spesifiserer tabelltypen. Du tildelte Kunder-tabellen InnoDB-typen, siden bare denne typen sikrer opprettholdelse av integriteten til relasjoner mellom tabeller (mer detaljer om tabelltyper vil bli diskutert i delen "Valgfrie tabellegenskaper"). CHARACTER SET-parameteren spesifiserer standardkodingen for dataene i tabellen. Fordi du ikke har angitt kodingen separat for navn-, telefon- og adressekolonnene, vil dataene i disse kolonnene bli lagret i UTF-8, som er standardkodingen for Kunder-tabellen.

Det neste eksemplet vi skal se på er kommandoen Produkttabelloppretting vist i Listing 2.3.

Oppføring 2.3. Kommando for opprettelse av produkttabeller

LAG TABELL Produkter

(ID SERIE,

beskrivelse VARCHAR(100),

detaljer TEXT,

pris DESIMAL(8;2),

PRIMÆR NØKKEL (id))

MOTOR InnoDB KARAKTERSETT utf8;


Denne kommandoen er veldig lik kommandoen for å lage Kunder-tabellen og skiller seg bare i navnet på tabellen og settet med kolonner. Kolonnene ID (produktnummer) og beskrivelse (produktnavn) i produkttabellen har typer som allerede er kjent for oss. Detaljkolonnen er av typen TEKST. Denne typen er praktisk å bruke i stedet for VARCHAR-typen hvis kolonnen vil inneholde lange verdier: den totale lengden på verdiene til alle VARCHAR-kolonner er begrenset til 65 535 byte for hver tabell, og det er ingen begrensning på den totale lengden på TEKST-kolonnene. Ulempen med TEXT-typen er manglende evne til å inkludere slike kolonner i en tabells fremmednøkkel, det vil si å skape et forhold mellom tabeller basert på disse kolonnene.

Priskolonnen er av typen DESIMAL, designet for å lagre pengebeløp og andre verdier som det er viktig å unngå avrundingsfeil for. Vi har angitt to tall i parentes: det første av dem bestemmer det maksimale antallet sifre i kolonneverdien, det andre - det maksimale antallet sifre etter desimalskilletegnet. Med andre ord kan prisen på et produkt inneholde opptil seks sifre i heltallsdelen (6 = 8–2) og opptil to sifre i brøkdelen.

Og til slutt, det siste eksemplet er kommandoen for å lage ordretabellen, vist i oppføring 2.4.

Oppføring 2.4. Kommando for oppretting av ordretabeller

OPPRETT BORDORDRE

(ID SERIE,

dato DATE,

product_id BIGINT UNSIGNED NOT NULL,

antall INT USIGNERT,

beløp DESIMAL(10;2),

kunde_id BIGINT USIGNERT,

PRIMÆR NØKKEL (id),

FOREIGN KEY (product_id) REFERANSER Produkter (id)

PÅ SLETTEBEGRENSNING PÅ OPPDATERING AV CASCADE,

FOREIGN KEY (customer_id) REFERANSER Kunder (id)

PÅ SLETTEBEGRENSNING PÅ OPPDATERING CASCADE)

MOTOR InnoDB KARAKTERSETT utf8;


Et spesielt trekk ved Ordretabellen er tilstedeværelsen av fremmednøkler: produkt_id-kolonnen inneholder produktnumre fra produkttabellen, og kunde_id-kolonnen inneholder kundenumre fra kundetabellen (se også tabell 1.2 i kapittel 1). Fordi produkt- og kundenummer er store positive heltall, tildelte vi kolonnene product_id og customer_id til å skrive BIGINT UNSIGNED.

Deretter, for å sikre at integriteten til relasjoner opprettholdes automatisk (vi snakket om integritet i kapittel 1), fortalte vi MySQL hvilken primærnøkkel hver fremmednøkkel tilsvarer. Dermed betyr FOREIGN KEY (customer_id) REFERANSES Kunder (id)-konstruksjonen at kunde_id-kolonnen bare kan inneholde verdier fra id-kolonnen i Kundetabellen og nullverdier, og andre verdier er forbudt. For produkt_id-kolonnen satte vi en lignende begrensning og tildelte NOT NULL-egenskapen til denne kolonnen for å forhindre registrering av bestillinger med et udefinert produkt. I tillegg indikerte vi reglene for å opprettholde integritet for hver av forbindelsene (vi diskuterte dem også i kapittel 1). ON DELETE RESTRICT-regelen betyr at du ikke kan slette en kundepost hvis den kunden har en registrert bestilling, og du kan ikke slette en produktpost hvis det produktet er bestilt av noen. ON UPDATE CASCADE-regelen betyr at når et kundenummer i Kunder-tabellen eller et varenummer i Produkt-tabellen endres, gjøres tilsvarende endringer i Order-tabellen.

Merk

Merk at vi opprettet Ordretabellen sist fordi primærnøklene i Kunder- og Produkter-tabellene må opprettes før fremmednøklene i Ordretabellen som refererer til dem. Det ville imidlertid være mulig å lage tabeller uten fremmednøkler i hvilken som helst rekkefølge, og deretter legge til fremmednøkler ved å bruke ALTER TABLE-kommandoen, som vi vil se på i underavsnittet "Endre tabellstrukturen."

I eksemplene våre så vi bare på noen av parameterne for kommandoen for oppretting av tabeller. Nå vil vi liste opp alle hovedparametrene som kan være nyttige for deg når du lager tabeller. I delen "Datatyper i MySQL" vil vi snakke om kolonnetyper, i delen "Kolonneegenskaper" vil vi snakke om å sette opp nøkkelkolonner, og til slutt i delen "Nøkkelkolonner og indekser" vil vi snakke om valgfrie tabellegenskaper .

Datatyper i MySQL

Som du allerede vet, når du oppretter en tabell, må du spesifisere en datatype for hver kolonne. MySQL gir mange datatyper for å lagre tall, datoer/klokkeslett og tegnstrenger (tekster). I tillegg finnes det datatyper for lagring av romlige objekter, som ikke vil bli diskutert i denne boken.

La oss se på numeriske datatyper.

BIT[(<Количествобитов>)].

Et bitnummer som inneholder et spesifisert antall biter. Hvis antall biter ikke er spesifisert, består antallet av én bit.

Et heltall i området enten -128 til 127, eller (hvis UNSIGNED-egenskapen er angitt) 0 til 255.

BOOL eller BOOLEAN.

De er synonymer for datatypen TINYINT(1) (tallet i parentes er antall sifre som skal vises, se merknad nedenfor). I dette tilfellet anses en verdi som ikke er null som sann (TRUE), en nullverdi anses som usann (FALSE).

Et heltall i området enten -32 768 til 32 767, eller (hvis UNSIGNED-egenskapen er spesifisert) 0 til 65 535.

Et heltall i området enten -8 388 608 til 8 388 607, eller (hvis UNSIGNED-egenskapen er spesifisert) 0 til 16 777 215.

INT eller INTEGER.

Et heltall i området enten -2.147.483.648 til 2.147.483.647, eller (hvis UNSIGNED-egenskapen er spesifisert) 0 til 4.294.967.295.

Et heltall i området enten -9,223,372,036,854,775,808 til 9,223,372,036,854,775,807, eller (hvis UNSIGNED-egenskapen er spesifisert) fra 0 til 18,446,744,073 510,

Synonymt med BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (et stort usignert heltall som godtar automatisk økte unike verdier; NULL-verdier er ikke tillatt). Brukes til automatisk å generere unike verdier i en primærnøkkelkolonne. Du finner en beskrivelse av UNSIGNED- og AUTO_INCREMENT-egenskapene i denne underseksjonen, og NOT NULL- og UNIQUE-egenskapene i delen "Kolonneegenskaper".

Merk

For alle heltallsdatatyper, unntatt BOOL (BOOLEAN) og SERIAL, kan du spesifisere i parentes antall viste sifre, som brukes sammen med ZEROFILL-parameteren: hvis tallet inneholder færre sifre, blir det utfylt på igjen med nuller. For eksempel, hvis en tabellkolonne er definert som INT(5) ZEROFILL, så vises verdiene "1234567" og "12345" som de er, og verdien "123" vises som "00123". For BIT-datatypen er størrelsen på antallet, det vil si maksimalt antall lagrede biter, angitt i parentes.

Nedenfor er en liste over de mest nyttige og mest brukte kommandoene MySQL med eksempler.

mysql på begynnelsen av linjen betyr at kommandoen utføres etter innlogging MySQL.

Symbolet # eller $ på begynnelsen av linjen betyr at kommandoen utføres fra kommandolinjen.

For å sjekke serverstatusen MYSQL gjøre:

Til FreeBSD:

# tjeneste mysql-server status

V CentOS/RHEL:

# tjeneste mysqld-status

MySQL fra konsollen hvis serveren MySQL er på samme vert:

For å koble til serveren MySQL fra konsollen hvis serveren MySQL er plassert på den eksterne verten db1.example.com:

$ mysql -u brukernavn -p -h db1.example.com

Arbeide med databaser og tabeller - vise, slette, redigere poster. Konsoll

Opprett en database på MySQL server:

Mysql opprette database

Vis en liste over alle databasene på serveren MySQL:

mysql bruk;

Vis alle tabeller i databasen:

Mysql vise tabeller;

Se tabellformatet i databasen:

mysql beskrive ;

Slett database:

Mysql slipp database ;

Slett en tabell fra databasen:

Mysql drop table ;

Vis alt tabellinnhold:

Mysql SELECT * FROM ;

Vis kolonner og kolonneinnhold i den valgte tabellen:

Mysql viser kolonner fra ;

Vis rader i en spesifikk tabell som inneholder " whatever ":

Mysql SELECT * FROM WHERE = "hva som helst";

Vis alle poster i en spesifikk tabell som inneholder "Bob" og telefonnummeret "3444444:

Mysql SELECT * FRA HVOR navn = "Bob" OG telefonnummer = "3444444";

Vis alle oppføringer, IKKE som inneholder navnet "Bob" og telefonnummeret "3444444", sortert etter telefonnummerfeltet:

Mysql SELECT * FROM WHERE navn != " Bob " AND phone_number = " 3444444 " bestill etter telefonnummer;

Vis alle oppføringer som begynner med bokstavene "bob" og telefonnummeret "3444444" i en bestemt tabell:

Mysql SELECT * FRA HVOR navn som "Bob %" OG phone_number = "3444444";

Vis alle oppføringer som begynner med bokstavene "bob" og telefonnummeret "3444444", og begrense oppføringene 1 til 5:

Mysql SELECT * FRA HVOR navn som "Bob %" OG phone_number = "3444444" grense 1,5;

Bruke regulære uttrykk ("REGEXP BINARY") for å søke etter poster. For et søk som ikke skiller mellom store og små bokstaver, finner du for eksempel alle poster som begynner med bokstaven A:

Mysql SELECT * FRA HVOR rec RLIKE "^a";

Vis alle unike oppføringer:

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

Vis antall rader i tabellen:

Mysql VELG ANTALL(*) FRA ;

Mysql VELG SUM(*) FRA ;

Fjerne en kolonne:

Mysql alter table drop kolonne ;

Legge til en kolonne i databasen:

Mysql endre tabell legg til kolonne varchar(20);

Endre kolonnenavnet:

Mysql endre tabell endring varchar(50);

Lag en kolonne med et unikt navn for å unngå dupliserte navn:

Mysql alter table add unique();

Endre størrelsen på en kolonne:

Mysql endre tabell endre VARCHAR(3);

Fjerne en kolonne fra en tabell:

Mysql alter table drop index ;

Mysql LOAD DATA INFILE " /tmp/filename.csv " replace INTO TABLE FELT TERMINATED BY "," LINES TERMINATED BY "n" (field1,field2,field3);

MySQL-serverbrukere, passord - legge til, endre brukere og passord. Konsoll

Opprette en ny bruker - koble til serveren MySQL som root, bytt til database, legg til bruker, oppdater privilegier:

# mysql -u rot -p mysql bruk mysql; mysql INSERT INTO bruker (Vert, Bruker, Passord) VERDIER("%"," brukernavn ", PASSORD(" passord ")); mysql flush privilegier;

Endre brukerpassordet fra konsollen på den eksterne verten db1.example.org:

# mysqladmin -u brukernavn -h db1.example.org -p passord " nytt-passord "

Endre brukerpassordet fra konsollen MySQL- koble til som root, oppdater passord, oppdater privilegier:

# mysql -u root -p mysql SETT PASSORD FOR " bruker "@" vertsnavn " = PASSORD(" passordher "); mysql flush privilegier;

Gjenopprette/endre passordet til rotserveren MySQL- Stoppe MySQL, start uten rettighetstabeller, koble til som root, angi et nytt passord, avslutt og start på nytt MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql bruk mysql; mysql oppdatering brukersett passord=PASSORD(" nytt rotpassord ") hvor Bruker="root"; mysql ; skyllerettigheter; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Angi et root-passord hvis det er et root-passord.

# mysqladmin -u root passord nytt passord

Oppdater root-passord:

# mysqladmin -u root -p gammelt passord nytt passord

Sette rettigheten til å koble til serveren fra vertslokalverten med passordet "passwd" - koble til subroot, bytte til databasen, sette privilegier, oppdatere privilegier:

# mysql -u rot -p mysql bruk mysql; mysql gi bruk på *.* til bob @localhost identifisert av " passwd "; mysql flush privilegier;

Angi brukerrettigheter for å bruke databasen - koble til som root, bytte til databasen, angi privilegier, oppdatere privilegier:

# mysql -u rot -p mysql bruk mysql; mysql INSERT INTO db (Vert,Db,Bruker,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VERDIER ("%","databasenavn","brukernavn","Y","Y","Y"," Y", "Y", "N"); mysql flush privilegier;

Mysql gi alle privilegier på databasenavn .* til brukernavn @localhost; mysql flush privilegier;

Oppdatering av informasjon i databasen:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" hvor = bruker";

Slette en rad i en tabell:

Mysql DELETE from where = "whatever";

Oppdatering av rettigheter i databasen:

Mysql flush-privilegier;

Sikkerhetskopier - opprette, gjenopprette databaser. Konsoll

Lag en sikkerhetskopi (dump) av alle databaser i alldatabases.sql-filen:

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

Sikkerhetskopier én database til filen databasename.sql:

# mysql dump -u brukernavn -p passord -databaser databasenavn ; /tmp/databasenavn.sql

Sikkerhetskopier én tabell til filen databasename.tablename.sql:

# mysql dump -c -u brukernavn -p passord databasenavn tabellnavn ; /tmp/databasenavn.tabellnavn.sql

Gjenopprette en database (eller tabell) fra en sikkerhetskopi:

# mysql -u brukernavn -p passord databasenavn< /tmp/databasename.sql

Oppretting av databasetabeller. Konsoll

kolonnenavn er angitt med små bokstaver;
STORE bokstaver - typer og attributter til kolonner;
i (parentes) - verdien av kolonnetypen.

Lag en tabell, eksempel 1:

mysql CREATE TABLE (fornavn VARCHAR(20), mellominitial VARCHAR(3), etternavn VARCHAR(35), suffiks VARCHAR(3), kontorid VARCHAR(10), brukernavn VARCHAR(15), brukernavn VARCHAR(8), e-post VARCHAR(35) ), telefon VARCHAR(25), grupper VARCHAR(15), datostempel DATO, tidsstempel TID, pgpemail VARCHAR(255));

Lag en tabell, eksempel 2:

Mysql create table (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, fornavn VARCHAR(35), mellomnavn VARCHAR(50), etternavn VARCHAR(50) standard "bato");

Fra forfatteren: jente, vil ikke bilen din starte? Kanskje vi kan prøve det "fra pusheren"? Jeg skal hjelpe! Vet ikke hvordan det er? Startet du kun DBMS-serveren via cmd? Dette betyr at du vet hvordan du starter MySQL via kommandolinjen, men du vet ikke engang hvordan du starter en bil. Mademoiselle, du er en "rar" blondine!

Merkeligheter i MySQL-beskrivelsen

Når jeg forbereder hver artikkel, må jeg "grunne" søke på Internett på jakt etter referansemateriale om en eller annen "sidebyggings"-disiplin. For det meste er det mange detaljerte guider og opplæringsprogrammer publisert på Internett, men ikke for MySQL.

Selvfølgelig er det verdige pedagogiske, men hoveddelen på DBMS gir bare eksempler på å skrive kommandoer, og til og med uten å indikere syntaksen. I en slik situasjon er det nesten umulig for noen "dummies" å forstå, for eksempel hvordan man kobler til MySQL via kommandolinjen.

For å finne et svar for en nybegynner, må du søke gjennom et dusin tematiske fora, der profesjonelle utviklere (som utgir seg som nesten "akademikere") vil nedlate seg til å forklare i det minste noe normalt for en nybegynner.

Det er verdt å forstå at en ekte administrator bør vite alle måtene å starte og jobbe med en databaseserver på. Det er klart at programvareskall er den mest praktiske metoden, men de er kanskje ikke alltid tilgjengelig. Derfor vil det å vite hvordan du aktiverer MySQL via kommandolinjen mer enn en gang lagre både nettstedsdata og ditt rykte som spesialist (hvis du planlegger å engasjere deg i webutvikling profesjonelt).

La oss se på dette emnet mer detaljert. Og vær så snill å ikke lage ansikter hvis noe som er sagt i dette materialet virker like enkelt for deg som å starte en bil "fra en pushrod".

Start cmd

For å starte MySQL fra kommandolinjen, aktiver først selve verktøyet (cmd), som er inkludert i standard Windows-settet. Du kan gjøre dette på flere måter:

Tastatursnarvei Win + R, og deretter i "Kjør"-dialogen som vises, skriv inn cmd

Gjennom Start-panelet.

I tillegg kan MySQL komme med et naturlig skall. For eksempel, hvis du installerer en databaseserver på en lokal maskin som en frittstående "applikasjon" som ikke er inkludert i "gentlemen's"-pakken.

Den opprinnelige MySQL-kommandolinjen lanseres akkurat som en vanlig cmd. Forskjellene i driften av begge verktøyene vil vises senere. Vi skal snakke om dette i neste avsnitt.

Arbeider med kommandolinjen

La oss først ta for oss verktøyet som er innebygd i operativsystemet. La oss se på hvordan du starter MySQL fra Windows-kommandolinjen. For å gjøre dette trenger du:

Banen til mappen i PC-filsystemet der du installerte databaseserveren.

Brukerkonto – pålogging og passord.

Hvis du jobber med Denver, er den kjørbare filen plassert på den virtuelle disken som ble opprettet etter å ha startet den lokale serveren, langs denne banen: Z:\usr\local\mysql-5.5\bin

Som jeg allerede har sagt, er MySQL-kommandolinjen i Denwer lansert via cmd OC. Det vil si at vi først starter den, og deretter spesifiserer banen til den kjørbare DBMS-filen. Passordet og påloggingen for tilgang kan spesifiseres først eller senere etter aktivering av MySQL-verktøyet. For meg er det mer praktisk å registrere alt på en gang: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Vi logget på DBMS-serveren med administratorrettigheter. Jeg har ikke angitt et passord for root, så verdien er ikke spesifisert. Etter at vi har startet MySQL fra kommandolinjen, vil hjelpeinformasjon om versjonen av verktøyet, server og tilkoblings-ID vises nedenfor.

La oss nå sjekke riktigheten av prosedyren og "styrken" av rettighetene våre. La oss for eksempel vise en liste over alle tabeller som for øyeblikket brukes på serveren:

VIS ÅPNE TABELLER;

VIS ÅPNE TABELLER ;

MySQL i Windows-kommandolinjen ga oss bare tabellene som er en del av systemdatabasen. Dette er fordi alle dataene som er lagret i den, brukes i den kjørende forekomsten av DBMS. På denne måten visste vi at serveren kjørte og at vi var logget på den med administratorrettigheter, som planlagt.

Ordningen for å jobbe med skallet installert sammen med databasestyringssystemet er litt annerledes. For å "oppleve" alt dette selv, la oss aktivere MySQL gjennom denne kommandolinjen.

Etter å ha startet det, vises et vindu der du umiddelbart må angi et passord. Ellers er hele prosessen med å samhandle med verktøyet den samme.

Arbeide med andre applikasjoner

Sammensetningen av et standard sett med DBMS-verktøy er ikke begrenset til én kjørbar server. Sortimentet deres kan sees ved å se i samme mappe der databaseserveren er plassert. La oss for eksempel kjøre MySQL dump-verktøyet via kommandolinjen.

Gå først til den virtuelle disken, og bruk deretter cd-kommandoen til mappen der verktøyet er lagret. La meg minne deg på at den er ment for å lage sikkerhetskopier av databaser.

I neste trinn, før vi logger på MySQL via kommandolinjen, må vi spesifisere en konto og et passord for det. Eksempel på bruk av mysqldump-kommandoen:

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

For at kommandoen skal fungere riktig, må den angitte katalogen opprettes på tidspunktet for utførelse. Ellers vil verktøyet returnere en melding om at en slik bane ikke eksisterer.

Det er også verdt å merke seg at den angitte MySQL-brukeren på kommandolinjen må ha rettigheter til å endre databasen eller en administratorkonto.

Andre verktøy inkludert i standardsettet lanseres på lignende måte. Med deres hjelp kan du utføre alle grunnleggende DBMS-administrasjonsoperasjoner: administrere roller, lage sikkerhetskopier, redigere innholdet i lagring. Og installer også MySQL-tjenesten fra kommandolinjen. Generelt, alt uten hvilket databaseserveren ikke vil starte "fra pusheren".

For Win 32, velg distribusjonen: Windows (x86, 32-bit), Zip-arkiv.

For Win 64: Windows (x86, 64-bit), Zip-arkiv.

Etter å ha klikket på Last ned-knappen, vil du se et registreringsskjema, du kan hoppe over det ved å klikke på lenken nedenfor - Nei takk, bare ta meg til nedlastingene.

2. Opprett en installasjonsmappe. For eksempel . Og pakk ut innholdet i arkivet inn i det slik at mappene bin, data, dokumenter og andre var i roten til installasjonsmappen.

3. La oss gå videre til å lage en konfigurasjonsfil (my.ini). Vi tar en av standardfilene som grunnlag:

  • my-small.ini - passer for de som bruker MySQL fra tid til annen og ikke vil at serveren skal ta opp mye ressurser.
  • my-medium.ini er også en lavressurskonfigurasjon, men passer for de som bruker MySQL regelmessig (et godt valg for en hjemmenettserver).
  • my-large.ini og my-huge.ini - for systemer som brukes som en dedikert MySQL-server. My-large.ini kan imidlertid brukes til en hjemmeserver hvis du trenger ekstra MySQL-ytelse (512 MB RAM er ikke så mye i disse dager).
  • my-innodb-heavy-4G - for dedikerte servere med minst 4 GB RAM og som kun bruker InnoDB-tabeller.

I dette eksemplet valgte jeg my-medium.ini som grunnlag. Gi det nytt navn til my.ini og plasser det i roten til installasjonsmappen ( C:\Program Files\MySQL\MySQL Server 5.5).

Åpne for redigering (i vanlig Notisblokk) og umiddelbart etter linjen legg til to parametere:

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

Legg merke til at stier bruker skråstreker fremover (/) i stedet for baklengs (\).

basedir er banen til installasjonsmappen.

datadir - bane til datamappen (der alle databaser er lagret). Noen ganger er det fornuftig å legge data på en separat disk for å forbedre ytelsen eller sikre påliteligheten.

Bare i tilfelle, her er et fragment av konfigurasjonsfilen etter å ha gjort endringene:

# MySQL-serveren basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/dataport = 3306 socket = /tmp/mysql.sock skip-external-locking key =_buffer_size 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M

4. Det neste trinnet er å legge til banen C:\Program Files\MySQL\MySQL Server 5.5\bin til PATH-miljøvariabelen for å gjøre det enklere å starte MySQL fra kommandolinjen. For å gjøre dette, åpne Systemegenskaper -> Ytterligere systeminnstillinger -> på Avansert-fanen, helt nederst, "Miljøvariabler..."-knappen. I vinduet som åpnes, bla gjennom systemvariablene til vi finner Path. Velg denne linjen og klikk "Endre...". På slutten av linjen legger vi til banen vår, og beholder de eksisterende parameterne:

Merk at stier er atskilt med semikolon. Sørg for at det er et semikolon på begynnelsen og slutten av banen.

5. Før du utfører en testkjøring, åpne den innkommende TCP-porten 3306 i Windows-brannmuren:

Hvis du har en ekstra brannmur installert på systemet ditt, må du også åpne TCP-port 3306 for innkommende tilkoblinger.

6. Nå gjennomfører vi en prøvekjøring. På kommandolinjen som ble lansert som administrator (dette er nødvendig hvis UAC er aktivert på Seven eller Vista), kjør:

Mysqld --konsoll

Flere linjer vil vises på skjermen. Hvis lanseringen var vellykket, vil den siste linjen se omtrent slik ut:

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

La dette vinduet være åpent, og åpne et annet kommandolinjevindu, der vi skriver inn:

Mysql -u rot

Hvis tilkoblingen var vellykket, vil du se en ledetekst: mysql>

La oss se hvilke databaser vi har:

Vis databaser;

Semikolonet på slutten av SQL-spørringen er OBLIGATORISK!

Teamets svar:

Nå er vi endelig overbevist om at serveren fungerer.

7. La oss gå videre til neste trinn - du må angi MySQL-administratorpassordet (root-bruker). Det er ikke angitt noe passord som standard, og dette må fikses. I samme MySQL-vindu skriver du inn følgende kommandoer:

Bruk mysql UPDATE user SET passord = PASSWORD("ditt_passord") WHERE user = "root";

La oss sjekke resultatet:

VELG bruker, vert, passord FRA bruker;

Som du kan se på skjermbildet, er passordkolonnen fylt, noe som betyr at passordet er satt.

Før du avslutter, kjør kommandoen:

SPILLE PRIVILEGIER;

Nå, når du kobler til, må du angi et passord. For å gjøre dette, bruk -p-bryteren:

Mysql -u root -s

For å slå av MySQL kjøring:

Mysqladmin -u root -p avslutning

8. Det siste trinnet er å starte MySQL som en Windows-systemtjeneste.

Sørg for at det ikke er noen aktive MySQL-prosesser på systemet.

På kommandolinjen som kjører som administrator, kjør:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --installer

Banen til mysqld må spesifiseres i sin helhet (selv om den er oppført i PATH)!

For å starte tjenesten, åpne "Computer Management" og start MySQL-tjenesten manuelt:

Eller enklere via kommandolinjen:

Net start mysql

For å fjerne en tjeneste, stopp den først:

Nettstopp mysql

og utfør:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --fjern

Fra forfatteren: Er du tapt igjen og vet ikke hvordan du logger på MySQL? Du er ikke den første! Samle alle de som er borte, og la oss nå gå rett for å besøke henne. Til hvem "til henne"? Til den mest populære DBMS på World Wide Web!

Hvor ligger MySQL i Denver?

Dette betyr ikke hovedstaden i delstaten Colorado i USA, men en programvarepakke for å lage og teste applikasjoner i PHP. Settet for "herrer" inkluderer en lokal Apache-server, en MySQL-server og et phpMyAdmin-skall. Det er ved hjelp av denne programvarepakken at "nybegynnere" oftest lærer alle vanskelighetene ved å jobbe med dette databasestyringssystemet.

Før du logger på MySQL gjennom en nettleser, må du starte en lokal server, deretter skrive localhost i adressefeltet, og i vinduet som vises, "Hurra, det fungerer!" I verktøydelen velger du phpMyAdmin.

Deretter vil du finne deg selv der (i phpMyAdmin).

Vi går til databasene gjennom "labyrinten"

Du og jeg vil gå inn i den "tette" skogen og prøve å "komme gjennom" den til databaseserveren. Ikke tro at vi gjemmer oss for noen, akkurat nå vil vi oppføre oss som... Gå!

Før du logger på MySQL via kommandolinjen, bør du finne ut hvor hoveddatabaseserverkatalogen ligger. Hvis du bruker DBMS i sin "rene" form uten "urenheter" (utenfor "gentleman's"-settet), ligger serverrotmappen her: C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe

Hvis du bruker Denver, ligger filen du leter etter i denne banen: Z:\usr\local\mysql-5.5\bin\mysql.exe,

der Z er den virtuelle disken som opprettes etter å ha startet den lokale webserveren. Du kan ha det under et annet navn (mer presist, en bokstav).

Vi er interessert i mysql.exe-filen. La oss kjøre det ved å spesifisere navnet på databaseserveren, passordet og brukeren som vi skal logge på MySQL under.

Slik aktiverer du MySQL via kommandolinjen: gå til "Start", velg "Ledetekst" fra standardprogrammene. Vi lanserer verktøyet, og fra nå av vil vi beskrive hele prosedyren med å "gå" i den tette skogen trinn for trinn, slik at hele gruppen av "tapt" mennesker ikke går seg vill igjen. La oss starte:

I det svarte CMD-vinduet (kommandolinje) skriver du inn banen der den kjørbare MySQL-filen er lagret, og ved siden av den angir du DBMS-brukernavnet og -passordet. Siden vi har en lokal server, skriver vi inn brukernavnet root uten passord etter identifikatoren u.

Dette er faktisk feil, og hver MySQL-serverbruker må ha et passord satt. Vi vil vurdere alle DBMS-sikkerhetsproblemer mer detaljert i en av våre neste publikasjoner.

Her er hele "koden": Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Hvis alt gikk bra, bør informasjon om versjonen av den kjørende tjenesten, utgivelsesåret og annen "unødvendig" informasjon for oss vises nedenfor i kommandolinjevinduet.

Nå, for å sjekke riktigheten av tilkoblingen, vil vi legge inn en spørring etter mysql>-operatøren som vil vise alle databasene som er lagret på serveren. Forespørselskode:

vise databaser;

Ikke glem å sette semikolon på slutten av forespørselen, ellers vil systemet vise en feilmelding. Etter å ha skrevet inn spørringen og trykket på "Enter"-tasten, mottok vi en liste over alle databaser som er lagret på DBMS-serveren:

Men dette er ikke nok for oss. La oss grave enda dypere inn i strukturen. La oss se på hvordan du logger på en MySQL-database og får en liste over alle dens tabeller. La meg minne deg på at vi nå allerede er autorisert på serveren, så vi trenger bare å legge inn en forespørsel til:

vis tabeller fra db1;

vis tabeller fra db1;

db1 er navnet på databasen vi trenger.

På skjermbildet ser vi at den forespurte databasen inneholder kun én tabell.

La oss grave dypere!

Som de sier, "appetitten" kommer etter å ha mottatt resultatene av å utføre koden. Derfor vil vi prøve å grave enda dypere for å få dataene som er lagret i tabellen. Før du logger på MySQL igjen, her er et eksempel på en SQL-spørring som vi kan gjennomføre planene våre med:

VELG * FRA dyr;

VELG * FRA dyr ;

Vi legger inn forespørselen, starter den for utførelse og... Av en eller annen grunn ga serveren oss en feil.

Og alt fordi vi glemte å fortelle MySQL hvilken database vi er interessert i. Så serveren "sverger" at ingen av databasene er tildelt. Dette beviser nok en gang at å jobbe med en DBMS gjennom kommandolinjen er veldig forskjellig fra å samhandle med den gjennom et programvareskall.

I phpMySQL vil denne spørringen bli utført vellykket, og serveren vil returnere et utvalg av alle radene i den forespurte tabellen.

La oss rette opp vår vanlige utelatelse (det er alltid vanskelig å innrømme sin skyld), og før vi logger på MySQL gjennom konsollen igjen, vil vi forberede en "spesifikk" spørring som vi vil peke systemet til ønsket database med:

BRUK db1 ;

Etter å ha skrevet inn denne linjen og utført den, vil serveren vise en melding som bekrefter at den ønskede databasen er tildelt.

Og la oss nå gå inn og kjøre en spørring for å hente alle data fra dyretabellen igjen. "La det være data!" - sa administratoren, og startet SELECT. Vi kom til bunnen av db1 og fikk med oss ​​innholdet i dyretabellen. Det er ikke for ingenting at før vi gikk inn i MySQL-databasen, utførte vi et helt "ritual" og skrev riktig "trollformel" i SQL.

Hva annet kan du grave opp?

Vi gravde dypt til bunnen av MySQL. La oss nå grave litt til siden. Hvilken annen informasjon kan fås gjennom kommandolinjen ved å spørre MySQL? Vil du vite tabellstrukturen, datatyper for alle kolonner, primærnøkkel? Vær så snill! Kjør denne spørringen:

beskrive dyr;

beskrive dyr;

Noen ganger, for å vite hvordan du aktiverer MySQL-serveren, må du få en liste over alle registrerte brukere av DBMS. Følgende spørring brukes til dette.