Sikkerhetskopier og administrer MySQL-databaser fra kommandolinjer
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.