Sikkerhedskopier og administrer MySQL-databaser fra kommandolinjerne
MySQL databaser spiller en integreret del i mange computersystemer, især når det kommer til web hosting og internet tjenester. Med alle de værdifulde data, der overlades til databasen, er det vigtigt at lave sikkerhedskopier, og det er vigtigt at vide, hvordan man administrerer databaseserveren. MySQL indeholder to kraftfulde værktøjer til disse opgaver: "mysqldump" og "mysqladmin." Som deres navne antyder, er den første til sikkerhedskopiering, og den anden er til administration. Mastering af disse to kommandoer er afgørende, hvis du vil blive en kompetent MySQL-administrator.
Backups
Kommandoen mysqldump
opretter en fil med SQL-sætninger, som når du kører, vil genskabe de samme tabeller og data, der er i databasen. Det kan bruges som en metode til backup eller som en nem måde at kopiere en database fra en server til en anden. Det kan også skabe output som kommaseparerede værdier (CSV), eller endda i XML. Da den resulterende output er en tekstfil af SQL-sætninger, har administratorer mulighed for at se og ændre dumpfilen.
Hvis du vil dumpe en enkelt tabel i en database, skal du bruge mysqldump som følger:
mysqldump -u root -p testdb tablename
Hvor "testdb" er navnet på databasen og "tablename" er navnet på tabellen, du ønsker at dumpe. Indstillingen "-u" angiver, hvilken MySQL-bruger der skal bruges under dumpen, og "-p" fortæller mysqldump at få adgangskoden interaktivt (dvs. du skal indtaste adgangskoden, når du bliver bedt om det). Brugeren skal have læseadgang til den database, der bliver dumpet (teknisk brug har brug for SELECT, SHOW VIEW, TRIGGER og LOCK TABLES privilegier). Brugeren "root" er normalt konfigureret (sammen med en adgangskode) under MySQL-serverinstallationen.
Udgangen sendes direkte til konsollen. For at sende output til en fil og til at angive adgangskoden på kommandolinjen (nyttig til backup scripts) skal du bruge:
mysqldump -u root --password = 'hemmelige' testdb tablename> testdb_table_backup.sql
Hvor "hemmeligt" er adgangskoden til brugerens rod, og tablenavn er navnet på det bord, du vil sikkerhedskopiere. Du skal erstatte "_table_" i filnavnet med det rigtige tabelnavn. Den resulterende fil "testdb_table_backup.sql" indeholder alle de SQL-sætninger, der er nødvendige for at genskabe tabellen.
Du kan levere mere end en tabelparameter for at sikkerhedskopiere flere tabeller, eller hvis du udelader det helt, bliver hele databasen dumpet. For eksempel:
mysqldump -u root --password = 'secret' testdb> testdb_backup.sql
Den resulterende fil "testdb_backup.sql" vil indeholde et dump af alle tabeller i databasen.
Hvis du vil dumpe mere end en database, skal du bruge indstillingen - --databases
. For eksempel:
mysqldump -u root --password = 'secret' - databaser testdb testdb2> testbd_testdb2_backup.sql
Hvis du vil sikkerhedskopiere alle tabellerne fra alle databaserne på MySQL-serveren, skal du bruge indstillingen " --all-databases
":
mysqldump -u root --password = 'secret' --all-databaser> all_dbs.sql
Admin
Mysqladmin-værktøjet bruges til at udføre administrative opgaver, herunder kontrol af serverens konfiguration og nuværende status samt oprettelse og sletning af databaser mv. For at oprette en database kaldet "testdb" -brug:
mysqladmin -u root -p skabe testdb
Indstillingerne "-u" og "-p" virker på samme måde som med kommandoen mysqldump.
For at slette en database sammen med alle dens tabeller brug underkommandoen "drop":
mysqladmin -u root -p drop testdb
Når du har bekræftet sletningen af databasen, vil den sammen med alle dens tabeller blive fjernet fra serveren.
Kommandoen mysqadmin kan også hente forskellige statistikker fra MySQL-serveren. Prøv underkommandoerne "status" og "udvidet status". Den enkleste statusforespørgsel er "ping" kommandoen, der kontrollerer for at se om serveren er i live. Her er et eksempel på, hvordan man bruger det:
mysqladmin -u root --password = 'hemmelig' ping
Du kan få detaljerede oplysninger om kommandoen mysqldump fra MySQL dokumentationssiden Et databasebackup-program og ligeledes for mysqladmin-kommandoen fra klienten til administration af en MySQL Server-side.
Hvis du har spørgsmål vedrørende eksemplerne ovenfor, så spørg i kommentarfeltet nedenfor.