MySQL databaser spiller en integrert del i mange datasystemer, spesielt når det gjelder web hosting og internettjenester. Med alle de verdifulle dataene som blir betrodd til databasen, er det viktig å lage sikkerhetskopier, og det er viktig å vite hvordan man administrerer databaseserveren. MySQL inneholder to kraftige verktøy for disse oppgavene: "mysqldump" og "mysqladmin." Som deres navn antyder, er den første til sikkerhetskopiering og den andre er for administrasjon. Mastering av disse to kommandoene er viktig hvis du vil bli en kompetent MySQL admin.

sikkerhetskopier

Kommandoen mysqldump lager en fil med SQL-setninger som når de kjøres, vil gjenskape de samme tabellene og dataene som er i databasen. Den kan brukes som en metode for sikkerhetskopiering eller som en enkel måte å kopiere en database fra en server til en annen. Det kan også skape utdata som kommaseparerte verdier (CSV), eller til og med i XML. Siden den resulterende produksjonen er en tekstfil av SQL-setninger, har administratorer fleksibiliteten til visning og endring av dumpfilen.

For å dumpe et enkelt bord i en database, bruk mysqldump som følger:

 mysqldump -u root -p testdb tabellenavn 

Hvor "testdb" er navnet på databasen og "tabellenavn" er navnet på tabellen du ønsker å dumpe. Alternativet "-u" angir hvilken MySQL-bruker du skal bruke under dumpen, og "-p" forteller mysqldump å få passordet interaktivt (dvs. du må skrive inn passordet når du blir bedt om det). Brukeren må ha leseadgang til databasen som blir dumpet (teknisk brukeren trenger SELECT, SHOW VIEW, TRIGGER og LOCK TABLES privilegier). Brukeren "root" er vanligvis konfigurert (sammen med et passord) under MySQL-serverinstallasjonen.

Utgangen sendes direkte til konsollen. For å sende utgangen til en fil, og for å angi passordet på kommandolinjen (nyttig for backup-skript), bruk så:

 mysqldump -u root --password = 'hemmelig' testdb tabellenavn> testdb_table_backup.sql 

Hvor "hemmelig" er passordet for brukerroten, og tabellnavn er navnet på tabellen du vil sikkerhetskopiere. Du bør erstatte "_table_" i filnavnet med det riktige tabellnavnet. Den resulterende filen "testdb_table_backup.sql" vil inneholde alle SQL-setningene som er nødvendige for å gjenopprette tabellen.

Du kan levere flere enn én tabellparameter for å sikkerhetskopiere flere tabeller, eller hvis du slipper det helt ut, blir hele databasen dumpet. For eksempel:

 mysqldump -u root --password = 'secret' testdb> testdb_backup.sql 

Den resulterende filen "testdb_backup.sql" vil inneholde en dump av alle tabellene i databasen.

Hvis du vil dumpe mer enn en database, må du bruke alternativet - databaser. For eksempel:

 mysqldump -u root --password = 'secret' - databaser testdb testdb2> testbd_testdb2_backup.sql 

For å sikkerhetskopiere alle tabellene fra alle databasene på MySQL-serveren, bruk alternativet " --all-databases ":

 mysqldump -u root --password = 'secret' --all-databaser> all_dbs.sql 

admin

Mysqladmin-verktøyet brukes til å utføre administrative oppgaver, inkludert kontroll av serverens konfigurasjon og nåværende status, og å lage og slette databaser, etc. For å opprette en database som heter "testdb" bruk:

 mysqladmin -u root -p lage testdb 

Alternativene "-u" og "-p" fungerer på samme måte som med kommandoen mysqldump.

For å slette en database sammen med alle sine tabeller, bruk "drop" sub-kommandoen:

 mysqladmin -u root -p drop testdb 

Etter at du har bekreftet slettingen av databasen, vil den, sammen med alle dens tabeller, bli fjernet fra serveren.

Kommandoen mysqadmin kan også hente ulike statistikker fra MySQL-serveren. Prøv delkommandoene "status" og "utvidet status". Den enkleste statusforespørselen er "ping" -kommandoen som kontrollerer for å se om serveren er i live. Her er et eksempel på hvordan du bruker det:

 mysqladmin -u root --password = 'hemmelig' ping 

Du kan få detaljert informasjon om mysqldump-kommandoen fra MySQL-dokumentasjonssiden Et databasekoblingsprogram, og på samme måte for mysqladmin-kommandoen fra klienten for administrasjon av en MySQL Server-side.

Hvis du har spørsmål angående eksemplene ovenfor, vennligst spør i kommentarfeltet nedenfor.